Timeline



Mar 26, 2021:

9:47 PM Changeset in webkit [275131] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

WebFeature class fails to copy/retain its instance variables
<https://webkit.org/b/223823>

Reviewed by Sam Weinig.

  • WebView/WebFeature.m:

(-[WebFeature initWithKey:preferenceKey:name:details:defaultValue:hidden:]):

  • Copy (and thereby retain) instance variables, fulfilling the promise of its @property declarations and preventing use-after-release issues.

(-[WebFeature dealloc]): Add.

  • Release the instance variables copied in the constructor.
9:24 PM Changeset in webkit [275130] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

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

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

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

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleEndOfLine):

8:52 PM Changeset in webkit [275129] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Avoid heap allocation on the audio thread in BaseAudioContext::scheduleNodeDeletion()
https://bugs.webkit.org/show_bug.cgi?id=223825

Reviewed by Darin Adler.

Avoid heap allocation on the audio thread in BaseAudioContext::scheduleNodeDeletion()
for performance. Stop calling appendVector() on m_nodesToDelete since m_nodesToDelete
is always empty. We can use std::exchange() instead of appendVector() and clear() to
avoid the heap allocation.

The reason m_nodesToDelete is always empty is that BaseAudioContext::scheduleNodeDeletion()
relies on the m_isDeletionScheduled flag to avoid adding to m_nodesToDelete until
m_nodesToDelete is cleared on the main thread and the m_isDeletionScheduled gets reset.

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::clear):
(WebCore::BaseAudioContext::scheduleNodeDeletion):

8:27 PM Changeset in webkit [275128] by Patrick Angle
  • 5 edits in trunk/Source

Web Inspector: Grid layout labels can be drawn outside the viewport
https://bugs.webkit.org/show_bug.cgi?id=221972

Reviewed by BJ Burg.

Source/WebCore:

Added logic for a best-effort attempt to make sure that layout labels are drawn within the document's bounds, or
at least within the grid itself. Labels are measured and adjusted so that if they would be drawn outside the
document's bounds, they will be pulled inside the grid. This does not guarantee that all labels will be visible
all the time. It is still possible an entire side of a grid will be outside the document's bounds, and this does
not attempt to correct for this case, as the desired anchor points for labels will be outside of the visible
area of the document.

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::fontForLayoutLabel):

  • Added helper that creates the FontCascade for layout labels, which is done in a few different places.

(WebCore::InspectorOverlay::backgroundPathForLayoutLabel):

  • Added helper to create the Path for the background of layout labels, which is now used in WebKit::WKInspectorHighlightView.

(WebCore::expectedSizeForLayoutLabel):

  • Gets the expected size of the label based on the text and arrow direction, and does so without needing to

create the entire label background's path.
(WebCore::InspectorOverlay::drawLayoutLabel):

  • Support new LabelArrowEdgePosition property

(WebCore::InspectorOverlay::drawGridOverlay):
(WebCore::buildLabel):
(WebCore::InspectorOverlay::buildGridOverlay):

  • inspector/InspectorOverlay.h:

(WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::Label::encode const):
(WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::Label::decode):

Source/WebKit:

Add support for the new WebCore::InspectorOverlay::LabelArrowEdgePosition property to grid overlays on iOS.

  • UIProcess/Inspector/ios/WKInspectorHighlightView.mm:

(createLayoutLabelLayer):

  • Support the new WebCore::InspectorOverlay::LabelArrowEdgePosition.
  • Use new helpers in WebCore::InspectorOverlay to reduce code duplication.

(-[WKInspectorHighlightView _createGridOverlayLayer:scale:]):

8:09 PM Changeset in webkit [275127] by Lauro Moura
  • 4 edits in trunk

REGRESSION(r275111) [GLIB] Fix build with new derived sources and forwarding headers scheme
https://bugs.webkit.org/show_bug.cgi?id=223834

Unreviewed build fix.

.:

Buildfix for now. Actual removal of older scheme will come in the
future.

  • Source/cmake/OptionsWPE.cmake: Add some missing variables with the

per framework source and header dirs.

Tools:

  • TestWebKitAPI/glib/CMakeLists.txt: Add some missing variables with

needed include headers.

6:37 PM Changeset in webkit [275126] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[RenderTreeBuilder] No need to update the counters when the renderer is moved internally
https://bugs.webkit.org/show_bug.cgi?id=223801
<rdar://75835208>

Reviewed by Ryosuke Niwa.

When the renderer re-parenting is initiated by an "internal move" (e.g. anonymous block parent is not needed anymore so all the descendants
are moved "one level" up), we don't need to re-compute the counters. Their state should not be any different after this re-parenting.

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::attachToRenderElementInternal):
(WebCore::RenderTreeBuilder::move):

  • rendering/updating/RenderTreeBuilder.h:
6:00 PM Changeset in webkit [275125] by Chris Dumez
  • 2 edits in trunk/Source/WTF

REGRESSION (r275038?): Perf test IndexedDB/stress/large-binary-keys.html failing with logging about memory pressure events
https://bugs.webkit.org/show_bug.cgi?id=223826
<rdar://problem/75906134>

Reviewed by Darin Adler.

Use RELEASE_LOG() instead of WTFLogAlways() to log memory pressure events, so that they don't
show on stdout in the performance tests and make them fail.

  • wtf/cocoa/MemoryPressureHandlerCocoa.mm:

(WTF::MemoryPressureHandler::install):

5:56 PM Changeset in webkit [275124] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS ] inspector/debugger/csp-exceptions.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223830

Unreviewed test gardening.

  • platform/mac/TestExpectations: Updated test expectations to Pass Failure Timeout while test is being reviewed. I added Timeout to the expectation because while the failure is a text failure, the text failure indicates that it's a timeout.
5:02 PM Changeset in webkit [275123] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Fix TypeError: Can't mix strings and bytes in path components in Tools/Scripts/dump-class-layout
https://bugs.webkit.org/show_bug.cgi?id=223819

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-03-26
Reviewed by Jonathan Bedard.

Prior to this patch, I received this error when trying to run the
dump-class-layout script. This happens because webkit_build_dir() returns
bytes rather than a string.

$ dump-class-layout -c Release WebCore Pair
Traceback (most recent call last):

File "/home/twilco/projects/webkit/Tools/Scriptsdump-class-layout", line 88, in <module>

main()

File "/home/twilco/projects/webkit/Tools/Scriptsdump-class-layout", line 80, in main

target_path = os.path.join(build_dir, args.config, args.framework + ".framework", args.framework);

File "/usr/lib/python3.9/posixpath.py", line 90, in join

genericpath._check_arg_types('join', a, *p)

File "/usr/lib/python3.9/genericpath.py", line 155, in _check_arg_types

raise TypeError("Can't mix strings and bytes in path components") from None

TypeError: Can't mix strings and bytes in path components

  • Scripts/dump-class-layout:

Update webkit_build_dir() to decode its output into a UTF-8 string.

4:47 PM Changeset in webkit [275122] by Jonathan Bedard
  • 7 edits in trunk/Tools

System installing webkitcorepy can break certain scripts
https://bugs.webkit.org/show_bug.cgi?id=223822
<rdar://problem/75905163>

Rubber-stamped by Alan Coon.

  • Scripts/libraries/resultsdbpy/resultsdbpy/example/environment.py:
  • Scripts/test-lldb-webkit: Replace sys.path.append with sys.path.insert.
  • Scripts/webkitpy/init.py: Only put webkitcorepy path into sys.path if it isn't already there.
  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:

Replace sys.path.append with sys.path.insert.

  • Scripts/webkitpy/common/system/executive_unittest.py: Ditto.
  • Scripts/webkitpy/port/config_standalone.py: Ditto.
4:32 PM Changeset in webkit [275121] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: crash at aom.apple.WebCore: WebCore::AccessibilityProgressIndicator::element const
https://bugs.webkit.org/show_bug.cgi?id=223800
rdar://75861367

Reviewed by Zalan Bujtas.

Prevent unintended renderer access.
No steps to reproduce were available, so a test was not able to be created.

  • accessibility/AccessibilityProgressIndicator.cpp:

(WebCore::AccessibilityProgressIndicator::element const):

4:12 PM Changeset in webkit [275120] by Wenson Hsieh
  • 10 edits
    2 adds in trunk

Use PUICQuickboardController for text input when HAVE(QUICKBOARD_CONTROLLER) is defined
https://bugs.webkit.org/show_bug.cgi?id=223809
<rdar://problem/56730407>

Reviewed by Tim Horton.

Source/WebKit:

Enable PUICQuickboardController by default, and remove a runtime preference that previously disabled this
feature by default when HAVE(QUICKBOARD_CONTROLLER) is defined.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _updateTextInputTraits:]):

Add a couple of missing selector checks before attempting to configure smart quotes and smart dash editing
behaviors.

(-[WKContentView _createQuickboardController:]):

Additionally opt into a quickboard controller API to bypass the interstitial Quickboard view controller when
using PUICQuickboardController.

(-[WKContentView presentViewControllerForCurrentFocusedElement]):

Remove a check for the (now-removed) preference.

Source/WTF:

Remove the QuickboardControllerForTextInputEnabled WebKit preference, now that the feature is enabled by
default behind a build-time flag.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

LayoutTests:

Remove some extraneous instancees of QuickboardControllerForTextInputEnabled=true from watch-specific layout
tests, now that the feature is enabled by default.

  • fast/forms/watchos/delete-content-in-text-field.html:
  • fast/forms/watchos/edit-text-field-calls-injected-bundle.html:
  • fast/forms/watchos/enter-text-with-spellcheck-disabled-expected.txt: Added.
  • fast/forms/watchos/enter-text-with-spellcheck-disabled.html: Added.

Add a new test to exercise the missing selector checks in -[WKContentView _updateTextInputTraits:].

  • fast/forms/watchos/form-control-label-text.html:
  • fast/forms/watchos/time-picker-value-change.html:
  • fast/forms/watchos/username-text-content-type.html:
4:10 PM Changeset in webkit [275119] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkit-patch] Use commit.webkit.org instead of remote SVN to compute identifier
https://bugs.webkit.org/show_bug.cgi?id=223820
<rdar://problem/75902125>

Reviewed by Dewei Zhu.

  • Scripts/webkitpy/tool/commands/download_unittest.py:

(DownloadCommandsTest.mock_svn_remote): Replace mock Svn with mock requests.

  • Scripts/webkitpy/tool/commands/upload_unittest.py:
  • Scripts/webkitpy/tool/comments.py:

(bug_comment_from_svn_revision): Use commits.webkit.org instead of svn.webkit.org.

  • Scripts/webkitpy/tool/steps/closebugforlanddiff_unittest.py:

(CloseBugForLandDiffTest.test_empty_state): Replace mock Svn with mock requests.

3:41 PM Changeset in webkit [275118] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Source/WebCore/editing/cocoa/HTMLConverter.mm:1278:44: runtime error: member call on null pointer of type 'WebCore::ArchiveResource'
https://bugs.webkit.org/show_bug.cgi?id=223696

Reviewed by Alex Christensen.

Fix bug found by UBSan.

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverter::_addAttachmentForElement):

  • Drop duplicate call to dataSource->subresource(url) as it doesn't seem it can return something else than null if it returned null the first time around.
  • Make sure resource is null-checked before we dereference it to get the MIME type.
3:18 PM Changeset in webkit [275117] by Alan Coon
  • 1 copy in tags/Safari-612.1.8

Tag Safari-612.1.8.

3:05 PM Changeset in webkit [275116] by beidson@apple.com
  • 25 edits in trunk/Source/WebKit

Refactor NetworkSessionCocoa to prepare for per-WebPageProxy sessions
https://bugs.webkit.org/show_bug.cgi?id=223776

Reviewed by Alex Christensen.

No new tests (No behavior change refactor)

A NetworkSessionCocoa has (n) NSURLSessions associated with it.

When a network load needs to happen - based on the context for that load - the appropriate
NSURLSession is chosen (or created).

In a future patch, there will be an additional bit of context used for choosing the appropriate
NSURLSession - The WKWebView the load was triggered from.

This patch takes those (n) NSURLSessions and wraps them in a SessionSet object.
It also adds the concept of looking up the appropriate SessionSet based on the WebPageProxyIdentifier
triggering the load.

This patch by itself should not be a behavior change, but allows the followup to be much simpler.

  • NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:

(WebKit::Download::resume):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::createSocketChannel):
(WebKit::NetworkConnectionToWebProcess::establishSWContextConnection):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::create):

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::createWebSocketTask):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::removeWebSocketTask):
(WebKit::NetworkSession::addWebSocketTask):

  • NetworkProcess/NetworkSocketChannel.cpp:

(WebKit::NetworkSocketChannel::create):
(WebKit::NetworkSocketChannel::NetworkSocketChannel):
(WebKit::NetworkSocketChannel::~NetworkSocketChannel):

  • NetworkProcess/NetworkSocketChannel.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::hstsStorage const):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
(WebKit::NetworkSessionCocoa::initializeStandardSessionsInSet):
(WebKit::NetworkSessionCocoa::sessionSetForPage):
(WebKit::NetworkSessionCocoa::sessionSetForPage const):
(WebKit::NetworkSessionCocoa::initializeEphemeralStatelessSessionIfNeeded):
(WebKit::NetworkSessionCocoa::SessionSet::initializeEphemeralStatelessSessionIfNeeded):
(WebKit::NetworkSessionCocoa::sessionWrapperForTask):
(WebKit::NetworkSessionCocoa::appBoundSession):
(WebKit::NetworkSessionCocoa::hasAppBoundSession const):
(WebKit::NetworkSessionCocoa::clearAppBoundSession):
(WebKit::NetworkSessionCocoa::isolatedSession):
(WebKit::NetworkSessionCocoa::SessionSet::isolatedSession):
(WebKit::NetworkSessionCocoa::hasIsolatedSession const):
(WebKit::NetworkSessionCocoa::clearIsolatedSessions):
(WebKit::NetworkSessionCocoa::invalidateAndCancelSessionSet):
(WebKit::NetworkSessionCocoa::invalidateAndCancel):
(WebKit::NetworkSessionCocoa::createWebSocketTask):
(WebKit::NetworkSessionCocoa::addWebSocketTask):
(WebKit::NetworkSessionCocoa::removeWebSocketTask):
(WebKit::NetworkSessionCocoa::hostNamesWithAlternativeServices const):
(WebKit::NetworkSessionCocoa::deleteAlternativeServicesForHostNames):
(WebKit::NetworkSessionCocoa::clearAlternativeServices):
(WebKit::NetworkSessionCocoa::initializeEphemeralStatelessSession): Deleted.

  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::NetworkSessionSoup::createWebSocketTask):

  • NetworkProcess/soup/NetworkSessionSoup.h:
  • Shared/AuxiliaryProcess.cpp:

(WebKit::AuxiliaryProcess::initialize):

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::create):
(WebKit::WebSocketChannel::WebSocketChannel):
(WebKit::WebSocketChannel::connect):

  • WebProcess/Network/WebSocketChannel.h:
  • WebProcess/Network/WebSocketProvider.cpp:

(WebKit::WebSocketProvider::createWebSocketChannel):

  • WebProcess/Network/WebSocketProvider.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::establishConnection):
(WebKit::WebSWContextManagerConnection::installServiceWorker):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_lastNavigationWasAppBound):

3:00 PM Changeset in webkit [275115] by ysuzuki@apple.com
  • 5 edits
    1 add in trunk

[JSC] Use AppleICU SPI for canonicalization
https://bugs.webkit.org/show_bug.cgi?id=223552

Reviewed by Ryosuke Niwa.

JSTests:

  • stress/intl-canonical-locale-alias-mapping.js: Added.

(shouldBe):
(Intl.getCanonicalLocales):

Source/JavaScriptCore:

uloc_canonicalize does not perform alias mapping. This is different from ECMA402's canonicalization requirement.
ICU C++ icu::Locale can canonicalize locale ID with alias mapping, but this is not exposed to C API.

In this patch, we adopt AppleICU SPI "ualoc_canonicalForm" added in rdar://74314220. This canonicalization can perform
alias mapping too. We do not extend uloc_canonicalize since this API explicitly says "It does NOT map aliased names in any way."[1].
In [2], we are tracking upstreaming of this new SPI. Once it is upstreamed to the mainline ICU, we will switch to that.

[1]: https://unicode-org.github.io/icu-docs/apidoc/dev/icu4c/uloc_8h.html#a69b148194cf57ac40d4bb15c5b905260
[2]: https://unicode-org.atlassian.net/browse/ICU-21506

  • runtime/IntlLocale.cpp:

(JSC::LocaleIDBuilder::initialize):
(JSC::LocaleIDBuilder::toCanonical):

  • runtime/IntlObject.cpp:

(JSC::localeIDBufferForLanguageTagWithNullTerminator):
(JSC::canonicalizeLanguageTag):
(JSC::canonicalizeLocaleIDWithoutNullTerminator):
(JSC::localeIDBufferForLanguageTag): Deleted.

  • runtime/IntlObject.h:
2:28 PM Changeset in webkit [275114] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.32.0

WPE WebKit 2.32.0

2:27 PM Changeset in webkit [275113] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.32

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.32.0 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.32.0
2:23 PM Changeset in webkit [275112] by Wenson Hsieh
  • 12 edits
    4 adds in trunk

Allow some image overlay content to render in fully transparent image elements
https://bugs.webkit.org/show_bug.cgi?id=223781
<rdar://problem/75886351>

Reviewed by Tim Horton.

Source/WebCore:

Introduce ImageOverlayController, and use it to render selections in image overlay content when the image
overlay's host element is fully transparent.

Test: fast/images/image-extraction/mac/select-word-in-transparent-image-overlay.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::willBeRemovedFromFrame):

Add plumbing to allow ImageOverlayController to uninstall its PageOverlay when the document is about to be
detached. See ImageOverlayController:: below.

  • editing/SelectionRectGatherer.cpp:

(WebCore::SelectionRectGatherer::Notifier::~Notifier):

Have SelectionRectGatherer notify the image overlay controller as well, when selection rects change.

  • page/ChromeClient.h:

(WebCore::ChromeClient::needsImageOverlayControllerForSelectionPainting const):

Add a new client hook that returns whether or not we should use ImageOverlayController to paint selections.
If not (i.e. we're on iOS, where we use UIKit to draw selections in the UI process), then we'll never install
page overlays, since selectionRectsDidChange is effectively a no-op.

  • page/ImageOverlayController.cpp: Added.

(WebCore::ImageOverlayController::ImageOverlayController):
(WebCore::ImageOverlayController::selectionRectsDidChange):

When selection rects change, if the selection is inside an image overlay whose host is completely transparent
(or very close to being completely transparent), then remember the selection rects along with the renderer's
background color, and use this to render selection highlights separately, in a PageOverlay.

(WebCore::ImageOverlayController::documentDetached):

If the Document containing the current rendered overlay selection is detached, immediately uninstall the
current PageOverlay. This ensures that the overlays don't persist through navigation.

(WebCore::ImageOverlayController::installPageOverlayIfNeeded):
(WebCore::ImageOverlayController::uninstallPageOverlayIfNeeded):

Helper methods to add or remove the PageOverlay from the current Page.

(WebCore::ImageOverlayController::willMoveToPage):

Uninstall the current page overlay if needed.

(WebCore::ImageOverlayController::drawRect):

Use the information stored in ImageOverlayController::selectionRectsDidChange to render custom selection
rects.

  • page/ImageOverlayController.h: Added.
  • page/Page.cpp:
  • page/Page.h:

Add an ImageOverlayController to the Page.

(WebCore::Page::imageOverlayController):

Source/WebKit:

Implement a new chrome client hook. See WebCore ChangeLog for more information.

  • WebProcess/WebCoreSupport/WebChromeClient.h:

LayoutTests:

Adjust an existing layout test so that it actually checks what it was intended to check; add a new layout test
to cover the changes in this bug.

  • fast/images/image-extraction/mac/select-word-in-draggable-image-overlay.html:

Drive-by fix: remove some extraneous imported scripts from this layout test, and additionally simplify the test
so that it doesn't rely on event sender to select text.

  • fast/images/image-extraction/mac/select-word-in-transparent-image-overlay-expected-mismatch.html: Added.
  • fast/images/image-extraction/mac/select-word-in-transparent-image-overlay.html: Added.

Add a new layout test with a fully transparent image element that covers a div of the same size, with a
background image that is identical to the image element's image. This emulates the behavior of certain websites
that prompted this fallback image overlay rendering codepath in the first place.

1:37 PM Changeset in webkit [275111] by don.olmstead@sony.com
  • 27 edits in trunk

[CMake] Deprecate using DERIVED_SOURCES_DIR/FOWARDING_HEADERS_DIR directly
https://bugs.webkit.org/show_bug.cgi?id=223763

Reviewed by Michael Catanzaro.

.:

Remove any usages of DERIVED_SOURCES_DIR and FOWARDING_HEADERS_DIR. There are still some
uses in GTK/WPE but those should be phased out.

Sets the directory structure to look like an Apple build in terms of where headers and
derived sources are held. Rather than having one root derived sources and one root
header directory those directories are now per project. This helps catch any errors with
header includes.

Deletes some old Mac CMake code that is no longer relevant around creating forwarding
headers.

For AppleWin the old structure is used because of its internal build which assumes the
old structure.

  • Source/cmake/OptionsAppleWin.cmake:
  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsPlayStation.cmake:
  • Source/cmake/OptionsWPE.cmake:
  • Source/cmake/OptionsWinCairo.cmake:
  • Source/cmake/WebKitCommon.cmake:
  • Source/cmake/WebKitFS.cmake:
  • Source/cmake/WebKitMacros.cmake:

Source/JavaScriptCore:

Remove any usages of DERIVED_SOURCES_DIR and FOWARDING_HEADERS_DIR.

  • CMakeLists.txt:
  • PlatformMac.cmake:

Source/WebCore:

Remove any usages of DERIVED_SOURCES_DIR and FOWARDING_HEADERS_DIR.

  • PlatformFTW.cmake:
  • PlatformWin.cmake:

Source/WebKit:

Remove any usages of DERIVED_SOURCES_DIR and FOWARDING_HEADERS_DIR.

  • PlatformGTK.cmake:
  • PlatformMac.cmake: Remove creation of forwarding headers.

Source/WebKitLegacy:

Remove any usages of DERIVED_SOURCES_DIR and FOWARDING_HEADERS_DIR.

  • PlatformMac.cmake:

Tools:

Remove any usages of DERIVED_SOURCES_DIR and FOWARDING_HEADERS_DIR.

  • DumpRenderTree/PlatformMac.cmake:
  • MiniBrowser/gtk/CMakeLists.txt:
  • MiniBrowser/mac/CMakeLists.txt:
  • WebKitTestRunner/PlatformMac.cmake:
  • wpe/backends/CMakeLists.txt:
1:07 PM Changeset in webkit [275110] by Alan Bujtas
  • 5 edits in trunk/Tools

[MiniBrowser] Remove redundant "Disable Simple Line Layout" menu item
https://bugs.webkit.org/show_bug.cgi?id=223812

Reviewed by Simon Fraser.

SLL was replaced by IFC integration a while ago.

  • MiniBrowser/mac/SettingsController.h:
  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController initWithMenu:]):
(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController toggleSimpleLineLayoutEnabled:]): Deleted.
(-[SettingsController simpleLineLayoutEnabled]): Deleted.

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController didChangeSettings]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController didChangeSettings]):

1:05 PM Changeset in webkit [275109] by ysuzuki@apple.com
  • 6 edits in trunk/Source

[JSC] Use new Apple ICU APIs to avoid C++ ICU API usage
https://bugs.webkit.org/show_bug.cgi?id=223783
<rdar://problem/75060240>

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch adopts ICU 69's draft APIs to avoid using ICU C++ APIs in newer macOS build.
AppleICU adopts these draft APIs so that we can use it even in ICU 68 if ICU is AppleICU.
The API is ucal_getTimeZoneOffsetFromLocal, which is back-ported from ICU 69[1].
The purpose of this API is that calculating timezone offset and dst offset from *local* time.

[1]: https://github.com/unicode-org/icu/commit/53aa0505c5f95a8cebbd7b4421d474fd2a790b80

  • runtime/IntlDateTimeFormat.cpp:
  • runtime/JSDateMath.cpp:

(JSC::OpaqueICUTimeZoneDeleter::operator()):
(JSC::DateCache::calculateLocalTimeOffset):
(JSC::DateCache::defaultTimeZone):
(JSC::DateCache::timeZoneCacheSlow):

  • runtime/JSDateMath.h:

Source/WTF:

  • wtf/DateMath.h:

(WTF::LocalTimeOffset::LocalTimeOffset):

12:26 PM Changeset in webkit [275108] by pvollan@apple.com
  • 6 edits
    1 add in trunk/Source

Enforce notifyd message filtering
https://bugs.webkit.org/show_bug.cgi?id=223601
<rdar://75098580>

Reviewed by Brent Fulgham.

Source/WebCore/PAL:

Add Notify SPI file.

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/NotifySPI.h: Added.

Source/WebKit:

Enable Notify filtering by setting Notify options before entering sandbox.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::compileAndApplySandboxSlowCase):

Source/WTF:

Add ENABLE define for Notify filtering.

  • wtf/PlatformEnableCocoa.h:
12:16 PM Changeset in webkit [275107] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r274938.
https://bugs.webkit.org/show_bug.cgi?id=223811

Introduced perf regression

Reverted changeset:

"Add IOKit method filter telemetry"
https://bugs.webkit.org/show_bug.cgi?id=223652
https://trac.webkit.org/changeset/274938

12:14 PM Changeset in webkit [275106] by Kate Cheney
  • 16 edits
    7 adds in trunk

Implement PCM SQLite changes based on spec review
https://bugs.webkit.org/show_bug.cgi?id=223726
<rdar://problem/75818526>

Reviewed by Brent Fulgham.

Source/WebKit:

This patch makes 2 significant changes in the SQLite database for
PCM. First, it renames attributeOnSiteDomainID to destinationSiteDomainID
based on spec review. Second, it adds support for sending reports to
both click source and destination sites. This involved adding an
additional column to the AttributedPrivateClickMeasurement table to
store the earliest time to send a report to the destination, renaming
the earliestTimeToSend column to specify source, and removing the NOT NULL
constraint on earliestTimeToSend in order to mark in the database when
a report has been send to the source site.

Since we need to remove a NOT NULL constraint and update foreign keys
and unique constraints, this requires a full migration of data from
the PCM tables.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

earliestTimeToSendToDestination should be null for now until we
implement the rest of the PCM work in
https://bugs.webkit.org/show_bug.cgi?id=223615.

Remove semi-colons from create table queries. They don't matter in
this context and if we remove them we can use the create table
queries to check for a correct schema.

(WebKit::attributedPrivateClickMeasurementSchemaV1):
(WebKit::attributedPrivateClickMeasurementSchemaV1Alternate):
Capture the table info from AttributedPrivateClickMeasurement to check
if we need an update.

(WebKit::expectedUnattributedColumns):
(WebKit::expectedAttributedColumns):
Instead of storing outdated columns, we should store expected columns
and add any missing ones in addMissingColumnsToTable.

(WebKit::ResourceLoadStatisticsDatabaseStore::tableSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::needsUpdatedPrivateClickMeasurementSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::missingReferenceToObservedDomains):
Separate out some duplicated code.

(WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToNewTablesIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::columnsForTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::addMissingColumnsToTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::addMissingColumnsIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::renameColumnInTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::renameColumnsIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::openAndUpdateSchemaIfNecessary):
Simplify the way we update the schema by first adding columns, then
renaming, then migrating. This way we don't need to worry about a
mismatch in number of columns or column name when transferring data.

(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttribution):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::unattributedPrivateClickMeasurementSchemaV1): Deleted.
(WebKit::unattributedPrivateClickMeasurementSchemaV1Alternate): Deleted.
(WebKit::outdatedUnattributedColumns): Deleted.
(WebKit::outdatedAttributedColumns): Deleted.
(WebKit::columnsToCopy): Deleted.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::statisticsDatabaseColumnsForTable):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::statisticsDatabaseColumnsForTable):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _statisticsDatabaseColumnsForTable:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::statisticsDatabaseColumnsForTable):

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

(WebKit::WebsiteDataStore::statisticsDatabaseColumnsForTable):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

New function for testing.

Tools:

Add API test coverage to check that renaming and adding columns works.
Data migration was tested manually.

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

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutFraudPreventionDatabase.db: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutFraudPreventionDatabase.db-shm: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutFraudPreventionDatabase.db-wal: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutReportingColumns.db: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutReportingColumns.db-shm: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutReportingColumns.db-wal: Added.
11:11 AM Changeset in webkit [275105] by Jonathan Bedard
  • 2 edits in trunk/Tools

Unreviewed, reverting r275081.

Broke Apple Internal builds

Reverted changeset:

"Avoid calling xcodebuild -showsdks where possible."
https://bugs.webkit.org/show_bug.cgi?id=223727
https://commits.webkit.org/r275081

10:58 AM Changeset in webkit [275104] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

LayoutTests/imported/w3c:
Add interpolation for object-position CSS property
https://bugs.webkit.org/show_bug.cgi?id=223568

Patch by Tim Nguyen <ntim.bugs@gmail.com> on 2021-03-26
Reviewed by Antoine Quint.

  • web-platform-tests/css/css-images/object-position-interpolation.html: Added.

Source/WebCore:
Make the object-position CSS property animatable.
https://bugs.webkit.org/show_bug.cgi?id=223568

Patch by Tim Nguyen <ntim@apple.com> on 2021-03-26
Reviewed by Antoine Quint.

Test: imported/w3c/web-platform-tests/css/css-images/object-position-interpolation.html

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):
(WebCore::canInterpolateLengthPoints):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

10:08 AM Changeset in webkit [275103] by Said Abou-Hallawa
  • 17 edits
    1 copy in trunk/Source

Allow logging minimal info about uploading media files in the system diagnose
https://bugs.webkit.org/show_bug.cgi?id=223706

Reviewed by Alex Christensen.

Source/WebCore:

Give the WebKit client the ability to log info about the media files which
were submitted to a web server through an HTMLFormElement.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::submit):

  • loader/EmptyClients.cpp:
  • page/DiagnosticLoggingClient.h:
  • page/DiagnosticLoggingDomain.h: Copied from Source/WebKit/UIProcess/API/APIDiagnosticLoggingClient.h.

Source/WebKit:

Add the new method logDiagnosticMessageWithDomain to the modern ObjC API
WKDiagnosticLoggingDelegate and make it accessible from DiagnosticLoggingClient.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):

  • UIProcess/API/APIDiagnosticLoggingClient.h:

(API::DiagnosticLoggingClient::logDiagnosticMessageWithDomain):

  • UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:
  • UIProcess/Cocoa/DiagnosticLoggingClient.h:
  • UIProcess/Cocoa/DiagnosticLoggingClient.mm:

(WebKit::DiagnosticLoggingClient::setDelegate):
(WebKit::toWKDiagnosticLoggingDomain):
(WebKit::DiagnosticLoggingClient::logDiagnosticMessageWithDomain):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::logDiagnosticMessageWithDomain):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:

(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithDomain):

  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:
9:41 AM Changeset in webkit [275102] by imanol
  • 12 edits
    6 adds in trunk

Implement cachedPropertyValue for WebXR [SameObject] attributes
https://bugs.webkit.org/show_bug.cgi?id=223635

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Update WebXR [SameObject] related test expectations.

  • web-platform-tests/webxr/xrRigidTransform_sameObject.https-expected.txt: Added.
  • web-platform-tests/webxr/xrSession_sameObject.https-expected.txt: Added.
  • web-platform-tests/webxr/xrView_sameObject.https-expected.txt: Added.
  • web-platform-tests/webxr/xrViewerPose_views_sameObject.https-expected.txt: Added.

Source/WebCore:

[SameObject] is not currently implemented in WebKit. We need to implement custom getters.

Tested by WebXR WPT.

  • Modules/webxr/WebXRRigidTransform.h:

(WebCore::WebXRRigidTransform::cachedMatrix):

  • Modules/webxr/WebXRRigidTransform.idl:
  • Modules/webxr/WebXRView.h:

(WebCore::WebXRView::cachedProjectionMatrix):

  • Modules/webxr/WebXRView.idl:
  • Modules/webxr/WebXRViewerPose.h:

(WebCore::WebXRViewerPose::cachedViews):

  • Modules/webxr/WebXRViewerPose.idl:
  • Sources.txt:
  • bindings/js/JSWebXRRigidTransformCustom.cpp: Added.

(WebCore::JSWebXRRigidTransform::matrix const):

  • bindings/js/JSWebXRViewCustom.cpp: Added.

(WebCore::JSWebXRView::projectionMatrix const):

  • bindings/js/JSWebXRViewerPoseCustom.cpp: Added.

(WebCore::JSWebXRViewerPose::views const):

LayoutTests:

Update WebXR [SameObject] related test expectations.

  • platform/wpe/TestExpectations:
9:28 AM Changeset in webkit [275101] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebKit

[Cocoa] Enable the UseGPUProcessForMedia preference by default
https://bugs.webkit.org/show_bug.cgi?id=223771

Reviewed by Eric Carlson.

  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-watchos.plist:
8:58 AM Changeset in webkit [275100] by Devin Rousso
  • 5 edits in trunk/Source/WebCore

Adopt AVKit SPI for hiding touch bar seeking controls
https://bugs.webkit.org/show_bug.cgi?id=223773
<rdar://problem/68937617>

Reviewed by Jer Noble.

Source/WebCore:

  • platform/mac/WebPlaybackControlsManager.h:
  • platform/mac/WebPlaybackControlsManager.mm:

(-[WebPlaybackControlsManager setSeekableTimeRanges:]):
(-[WebPlaybackControlsManager canBeginTouchBarScrubbing]):
If the list of seekable time ranges is empty, we are unable to seek.

Source/WebCore/PAL:

  • pal/spi/cocoa/AVKitSPI.h:
8:50 AM Changeset in webkit [275099] by calvaris@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed.

  • platform/glib/TestExpectations: Unflag

media/encrypted-media/clearKey/clearKey-webm-video-playback-mse.html
and
media/encrypted-media/clearKey/clearKey-session-life-cycle.html

8:47 AM Changeset in webkit [275098] by calvaris@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed.

  • platform/gtk/TestExpectations: Unflag

http/tests/security/mixedContent/insecure-audio-video-in-main-frame.html.

8:34 AM Changeset in webkit [275097] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

GraphicsContextGLOpenGL should avoid calling into ANGLE MakeCurrent
https://bugs.webkit.org/show_bug.cgi?id=223511

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

Avoid calling ANGLE MakeCurrent for contexts that are already current. Cache the current context pointer into a
global variable. Currently the code adds no locking. For the forseeable future, ANGLE does not support
simultaneous access from multiple threads.

The optimization can be done when run in WebContent process or in GPU process, but not when in WK1. This is because in WK1,
the 3rd party client may run arbitrary code in WebKit thread. This includes code that changes EAGL or AGL state.
This code might change the current context underneath WebKit. In WK1 mode, we already use "volatile context" feature of
ANGLE to reset the platform context on every EGL command. The command we use for this for normal GL commands is EGL_MakeCurrent.
Makes in-process WebGL faster in MotionMark triangles by 6300 -> 9800 pts
Makes GPU process WebGL faster in MotionMark triangles by 5300 -> 7000 pts

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::isCurrentContextPredictable):
(WebCore::InitializeEGLDisplay):
(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::makeContextCurrent):
(WebCore::GraphicsContextGLOpenGL::clearCurrentContext):
(WebCore::GraphicsContextGLOpenGL::releaseCurrentContext):
(WebCore::GraphicsContextGLOpenGL::checkGPUStatus):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
8:34 AM Changeset in webkit [275096] by calvaris@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed.

  • platform/gtk/TestExpectations: Unflagging

media/track/track-remove-active-cue-crash.html.

8:29 AM Changeset in webkit [275095] by calvaris@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed.

  • platform/gtk/TestExpectations: Unflag

http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame.html

8:18 AM Changeset in webkit [275094] by calvaris@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed.

  • platform/gtk/TestExpectations: Unflagging

mediasource-endofstream-invaliderror.html.

4:18 AM Changeset in webkit [275093] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Use webrtc GPU Process feature flag for video capture on MacOS
https://bugs.webkit.org/show_bug.cgi?id=223683

Reviewed by Eric Carlson.

Manually tested.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCaptureVideoInGPUProcessEnabled):

4:16 AM Changeset in webkit [275092] by graouts@webkit.org
  • 10 edits in trunk

Fix interpolation of the caret-color CSS property
https://bugs.webkit.org/show_bug.cgi?id=223181
<rdar://problem/75687413>

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Add 64 PASS results for the caret-color interpolation test which now is passing completely.
The test css/css-ui/caret-color-021.html also progresses.

  • web-platform-tests/css/css-ui/animation/caret-color-interpolation-expected.txt:
  • web-platform-tests/css/css-ui/caret-color-021-expected.txt:

Source/WebCore:

Add support for the "auto" value for the "caret-color" CSS property. That value
is its initial value. We support it with a new boolean flag on StyleRareInheritedData
which we reset to false when setCaretColor() or setVisitedLinkCaretColor() is called.

Then, we can blend this property with the new CaretColorPropertyWrapper wrapper which is
required to correctly get and set the "auto" bit.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • css/CSSProperties.json: We can remove the initial value key since this property is entirely

custom.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setCaretColor):
(WebCore::RenderStyle::setHasAutoCaretColor):
(WebCore::RenderStyle::setVisitedLinkCaretColor):
(WebCore::RenderStyle::setHasVisitedLinkAutoCaretColor):
(WebCore::RenderStyle::hasAutoCaretColor const):
(WebCore::RenderStyle::hasVisitedLinkAutoCaretColor const):

  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):

  • rendering/style/StyleRareInheritedData.h:
  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInitialCaretColor):
(WebCore::Style::BuilderCustom::applyInheritCaretColor):
(WebCore::Style::BuilderCustom::applyValueCaretColor):

4:07 AM Changeset in webkit [275091] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk

Fix NowPlayingInfoArtwork operator== logic.
https://bugs.webkit.org/show_bug.cgi?id=223730
<rdar://problem/75822687>

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-26
Reviewed by Youenn Fablet.

Source/WebCore:

Gtest NowPlayingInfoArtworkTest added .

  • platform/audio/NowPlayingInfo.h:

(WebCore::NowPlayingInfoArtwork::operator== const):
(WebCore::NowPlayingInfoArtwork::operator!= const):

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/NowPlayingInfoTests.cpp: Added.

(TestWebKitAPI::testEmptyArtwork):
(TestWebKitAPI::TEST):

3:50 AM Changeset in webkit [275090] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.32.0

WebKitGTK 2.32.0

3:49 AM Changeset in webkit [275089] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.32

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.32.0 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.32.0
3:28 AM Changeset in webkit [275088] by dino@apple.com
  • 12 edits
    1 delete in trunk

Enable Metal ANGLE backend for WebGL
https://bugs.webkit.org/show_bug.cgi?id=220076
<rdar://problem/72565020>

Reviewed by Sam Weinig.

Source/WTF:

Turn the Metal backend for ANGLE on, moving the feature
from Internal to Experimental.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • Scripts/Preferences/WebPreferencesInternal.yaml:

LayoutTests:

Updated results for WebGL 2 content with the Metal ANGLE
backend. See https://bugs.webkit.org/show_bug.cgi?id=222239

  • platform/mac/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/wk2/TestExpectations:
3:16 AM Changeset in webkit [275087] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Remove ASSERT in RenderListItem::computeMarkerStyle
https://bugs.webkit.org/show_bug.cgi?id=222670

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-26
Reviewed by Ryosuke Niwa.

Source/WebCore:

Remove ASSERT in RenderListItem::computeMarkerStyle
since ::marker does not apply to all elements so
getCachedPseudoStyle can return null.

Test: fast/lists/list-item-compute-marker-style-crash.xhtml

  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::computeMarkerStyle const):

LayoutTests:

  • fast/lists/list-item-compute-marker-style-crash-expected.txt: Added.
  • fast/lists/list-item-compute-marker-style-crash.xhtml: Added.
2:42 AM Changeset in webkit [275086] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275085 - REGRESSION(r272301): [SOUP] default port attribute when persisting credential information with libsecret
https://bugs.webkit.org/show_bug.cgi?id=223782

Reviewed by Adrian Perez de Castro.

Use the default port instead of 0 when the URL omits the port.

  • platform/network/soup/AuthenticationChallengeSoup.cpp:

(WebCore::protectionSpaceFromSoupAuthAndURL):

2:37 AM Changeset in webkit [275085] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

REGRESSION(r272301): [SOUP] default port attribute when persisting credential information with libsecret
https://bugs.webkit.org/show_bug.cgi?id=223782

Reviewed by Adrian Perez de Castro.

Use the default port instead of 0 when the URL omits the port.

  • platform/network/soup/AuthenticationChallengeSoup.cpp:

(WebCore::protectionSpaceFromSoupAuthAndURL):

2:25 AM Changeset in webkit [275084] by ysuzuki@apple.com
  • 5 edits in trunk/Source/WebCore

Use ICUDeleter to encode ucnv_close/uenum_close call into type of deleter of std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=223503

Reviewed by Alex Christensen.

Use ICUDeleter<ucnv_close> instead of holding ucnv_close pointer in ICUConverterPtr.
This deleter encodes ucnv_close calls into type so that we do not need to hold a pointer
to ucnv_close.

We also use ICUDeleter<uenum_close> in place where we use UEnumeration.

  • Modules/applepay/PaymentRequestValidator.mm:

(WebCore::validateCurrencyCode):

  • platform/text/EncodingTables.cpp:

(WebCore::jis0208):
(WebCore::jis0212):
(WebCore::big5):
(WebCore::eucKR):
(WebCore::gb18030):

  • platform/text/TextCodecICU.cpp:

(WebCore::TextCodecICU::createICUConverter const):

  • platform/text/TextCodecICU.h:
1:08 AM Changeset in webkit [275083] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

[GTK][WPE] Wrong frame scrolled when view is horizontally scrolled with async scrolling enabled
https://bugs.webkit.org/show_bug.cgi?id=222900

Patch by Alejandro G. Castro <alex@igalia.com> on 2021-03-26
Reviewed by Carlos Garcia Campos.

We need to use the scrolling offset in the parent when collecting
the descendant layers at a point. We substract the boundsOrigin to
make sure we transform the point considering the scrolling offset.

  • page/scrolling/nicosia/ScrollingTreeNicosia.cpp:

(WebCore::collectDescendantLayersAtPoint):

12:54 AM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
12:14 AM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
12:02 AM Changeset in webkit [275082] by commit-queue@webkit.org
  • 37 edits in trunk/Source

Update the BEFORE/SINCE, SYSTEM_VERSION_PREFIX, and MACOSX_DEPLOYMENT_TARGET flags
https://bugs.webkit.org/show_bug.cgi?id=223779

Patch by Jessie Berlin <jberlin@webkit.org> on 2021-03-26
Reviewed by Tim Horton.

  • Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebCore:

  • Configurations/Version.xcconfig:
  • Configurations/WebCore.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebCore/PAL:

  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebInspectorUI:

  • Configurations/Version.xcconfig:

Source/WebKit:

  • Configurations/Version.xcconfig:
  • Configurations/WebKit.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Mar 25, 2021:

11:57 PM Changeset in webkit [275081] by Cameron McCormack
  • 2 edits in trunk/Tools

Avoid calling xcodebuild -showsdks where possible.
https://bugs.webkit.org/show_bug.cgi?id=223727

Reviewed by Sam Weinig.

run-minibrowser needs to know what port it's running on, since that
affects the build directory to look in to find the MiniBrowser binary.
On macOS, webkitdirs.pm's determinePortName ends up running
xcodebuild -showsdks to see if the current SDK has an internal
variant available, but this is slow. But we don't need to know the
exact SDK name here, just the SDK platform name, to determine the
port name.

So we shuffle some code around to avoid calling xcodebuild -showsdks
where we can. This reduces the time spent in run-minibrowser before
MiniBrowser is launched (crudely measured with `time run-minibrowser
--help`) from 2s to 0.6s on this machine.

  • Scripts/webkitdirs.pm:

(readXcodeUserDefault):
(determineArchitecture):
(argumentsForConfiguration):
(availableXcodeSDKs):
(isValidXcodeSDKPlatformName):
(determineXcodeSDKPlatformName):
(determineXcodeSDK):
(xcodeSDKPlatformName):
(determinePortName):

11:34 PM Changeset in webkit [275080] by Fujii Hironori
  • 3 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
10:25 PM Changeset in webkit [275079] by sbarati@apple.com
  • 16 edits in trunk/Source/JavaScriptCore

validate untagArrayPtr
https://bugs.webkit.org/show_bug.cgi?id=214953
<rdar://problem/66391434>

Reviewed by Mark Lam.

This patch adds validation to untagArrayPtr along paths where we don't
immediately store/load from the result.

This patch also changes the removeArrayPtrTag macro assembler function to
use a bitwise and instead of xpacd to strip the tag, because it's faster.

  • assembler/MacroAssemblerARM64E.h:

(JSC::MacroAssemblerARM64E::untagArrayPtr):
(JSC::MacroAssemblerARM64E::removeArrayPtrTag):

  • assembler/testmasm.cpp:

(JSC::testCagePreservesPACFailureBit):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::cageTypedArrayStorage):

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

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::untagArrayPtr):
(JSC::FTL::DFG::LowerDFGToB3::caged):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::cageWithoutUntagging):
(JSC::AssemblyHelpers::cageConditionallyAndUntag):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::cageWithoutUntagging): Deleted.
(JSC::AssemblyHelpers::cageConditionally): Deleted.

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitIntTypedArrayPutByVal):
(JSC::JIT::emitFloatTypedArrayPutByVal):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::AirIRGenerator::addCallIndirect):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::addCallIndirect):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

10:24 PM Changeset in webkit [275078] by achristensen@apple.com
  • 17 edits in trunk

Allow WKContentRuleList to block only in frames or only in main frame
https://bugs.webkit.org/show_bug.cgi?id=219001
Source/WebCore:

<rdar://problem/71382045>

Reviewed by Ben Poulain.

This adds load-context to the trigger, which can have an array containing main-frame or iframe.
This makes the trigger only happen in such loading contexts.

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::validateURL):

  • contentextensions/ContentExtension.cpp:

(WebCore::ContentExtensions::ContentExtension::populateConditionCacheIfNeeded):

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::getTypeFlags):
(WebCore::ContentExtensions::loadTrigger):

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForPingLoad):

  • contentextensions/DFABytecodeInterpreter.cpp:

(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretTestFlagsAndAppendAction):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadResourceSynchronously):

  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):

  • loader/PingLoader.cpp:

(WebCore::PingLoader::sendPing):
(WebCore::PingLoader::sendViolationReport):

  • loader/ResourceLoadInfo.cpp:

(WebCore::ContentExtensions::toResourceType):
(WebCore::ContentExtensions::readResourceType):
(WebCore::ContentExtensions::readLoadType):
(WebCore::ContentExtensions::readLoadContext):
(WebCore::ContentExtensions::ResourceLoadInfo::getResourceFlags const):

  • loader/ResourceLoadInfo.h:

Source/WebKit:

Reviewed by Ben Poulain.

  • UIProcess/API/APIContentRuleListStore.cpp:

(API::ContentRuleListStore::getContentRuleListSource):

  • UIProcess/API/APIContentRuleListStore.h:

Tools:

Reviewed by Ben Poulain.

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:

(TEST):

10:09 PM Changeset in webkit [275077] by Megan Gardner
  • 13 edits in trunk/Source

Have App Highlights be a Configuration Setting instead of an internal Preference setting.
https://bugs.webkit.org/show_bug.cgi?id=223720
rdar://75196085

Reviewed by Wenson Hsieh.

Source/WebKit:

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-watchos.plist:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultAppHighlightsEnabled): Deleted.

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

(-[WKWebView _setupPageConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _setAppHighlightsEnabled:]):
(-[WKWebViewConfiguration _appHighlightsEnabled]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • WebProcess/WebPage/WebPage.h:

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:
  • Scripts/Preferences/WebPreferencesInternal.yaml:
8:27 PM Changeset in webkit [275076] by Wenson Hsieh
  • 6 edits
    2 adds in trunk

Don't add -webkit-user-select: none; on image elements with draggable=true
https://bugs.webkit.org/show_bug.cgi?id=223774
<rdar://problem/75860124>

Reviewed by Tim Horton.

Source/WebCore:

Avoid adding this presentational CSS style property for image elements marked with draggable=true. Since
image elements are already draggable by default and mouse drags over image elements do not trigger text
selection, it's not necessary for the user agent to add this style property. See below for more details.

Test: fast/images/image-extraction/mac/select-word-in-draggable-image-overlay.html

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::collectStyleForPresentationAttribute):

If the element is already draggable (barring HTML attributes), don't additionally disable text selection inside
the element when we additionally have draggable=true set on the element.

(WebCore::HTMLElement::draggable const):

Refactor this to consult isDraggableIgnoringAttributes() when determining whether to check if the draggable
attribute value is not "false" vs. equal to "true". In the case where the element is already draggable, we
only return false here if draggable=false is explicitly set.

  • html/HTMLElement.h:

(WebCore::HTMLElement::isDraggableIgnoringAttributes const):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::draggable const): Deleted.

  • html/HTMLImageElement.h:

Override isDraggableIgnoringAttributes and return true.

LayoutTests:

  • fast/images/image-extraction/mac/select-word-in-draggable-image-overlay-expected-mismatch.html: Added.
  • fast/images/image-extraction/mac/select-word-in-draggable-image-overlay.html: Added.
8:20 PM Changeset in webkit [275075] by dino@apple.com
  • 2 edits in trunk/LayoutTests

[Metal ANGLE] fast/canvas/webgl/out-of-bounds-simulated-vertexAttrib0-drawArrays.html causes GPURestarts on some machines
https://bugs.webkit.org/show_bug.cgi?id=223767

Patch by Kyle Piddington <Kyle Piddington> on 2021-03-25
Reviewed by Darin Adler.

Avoid GPURestarts on Intel machines by reducing test workload. The
core of this test, using default generic attributes, is still in
place.

  • fast/canvas/webgl/out-of-bounds-simulated-vertexAttrib0-drawArrays.html:
8:13 PM Changeset in webkit [275074] by dino@apple.com
  • 3 edits in trunk/Source/ThirdParty/ANGLE

ANGLE Metal crash ASAN webgl/1.0.3/conformance/misc/object-deletion-behaviour.html
https://bugs.webkit.org/show_bug.cgi?id=223739

Patch by Kyle Piddington <Kyle Piddington> on 2021-03-25
Reviewed by Dean Jackson.

Previously, ANGLE would try to read color attachments off of the
cached render targets. However, since validation happens before
state sync, the cached render targets may be out of date.

For non-surface backed render targets, we instead get a fresh copy
of the render target when determening the native pixel format.

  • src/libANGLE/renderer/metal/FrameBufferMtl.h:
  • src/libANGLE/renderer/metal/FrameBufferMtl.mm:

(rx::FramebufferMtl::getImplementationColorReadFormat const):
(rx::FramebufferMtl::getColorReadRenderTargetNoCache const):

8:09 PM Changeset in webkit [275073] by dino@apple.com
  • 5 edits in trunk/Source/ThirdParty/ANGLE

[Metal ANGLE] Add CPU mipmap generation for workaround on Intel devices.
https://bugs.webkit.org/show_bug.cgi?id=223778

Patch by Kyle Piddington <Kyle Piddington> on 2021-03-25
Reviewed by Dean Jackson.

Mipmap generation on Intel does not reliably work for textures with
width less than four. To reliably pass webGL conformance, we need
to switch to CPU mipmap generation when generating mipmaps in this
specific circumstance.

This patch fixes the following four tests on Intel
webgl/1.0.3/conformance/limits/gl-max-texture-dimensions.html
webgl/1.0.3/conformance/textures/texture-size.html
webgl/2.0.0/conformance/limits/gl-max-texture-dimensions.html
webgl/2.0.0/conformance/textures/misc/texture-size.html

  • include/platform/Feature.h:

(angle::FeatureCategoryToString):

  • include/platform/FeaturesMtl.h:
  • src/libANGLE/renderer/metal/DisplayMtl.mm:

(rx::DisplayMtl::initializeFeatures):

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

(rx::TextureMtl::generateMipmap):

7:27 PM Changeset in webkit [275072] by Wenson Hsieh
  • 14 edits
    1 add in trunk

It should be possible to drag images with overlay content
https://bugs.webkit.org/show_bug.cgi?id=223766
<rdar://problem/75856030>

Reviewed by Tim Horton.

Source/WebCore:

Make a few minor adjustments to make drag and drop play well with images with overlay content. See below for
more details.

Test: DragAndDropTests.DragElementWithImageOverlay

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::isInsideImageOverlay):

Add a helper method to return whether an individual DOM node is inside an image overlay. Use this in the
existing version of this method that takes a SimpleRange.

  • html/HTMLElement.h:
  • page/DragController.cpp:

(WebCore::DragController::draggableElement const):

Skip all drag source actions except for Selection in the case where we're hit-testing to text inside of an
image overlay.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEvent):

Make isMouseDownOnLinkOrImage false in the case where we're over image overlay text.

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::nodeForImageData const):
(WebCore::HitTestResult::image const):
(WebCore::HitTestResult::imageRect const):
(WebCore::HitTestResult::absoluteImageURL const):

Teach HitTestResult to skip out of image overlay content and find the actual image element when determining
the image URL, image, or image rect.

  • rendering/HitTestResult.h:

Tools:

Add an API test to verify that the top part of the image (with an overlay) doesn't trigger a dragstart when
dragged, but the bottom part of the image does.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/simple-image-overlay.html: Added.

Add a test page that installs an image overlay for testing purposes (assuming that the web view injects the
global internals object).

  • TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:
  • TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:
  • TestWebKitAPI/cocoa/DragAndDropSimulator.h:
  • TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:

(-[DragAndDropSimulator containsDraggedType:]):

Add a helper method to return whether or not the simulated drag resulted in the given type being written to the
"drag pasteboard" (in the case of iOS, this just means any of the source item providers).

  • TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:

(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):

Make a minor adjustment to ensure that the drag pasteboard is cleared out before starting a simulated drag.

(-[DragAndDropSimulator containsDraggedType:]):

6:29 PM Changeset in webkit [275071] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ BigSur Debug ] http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin-redirect.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=223759

Unreviewed test gardening.

  • platform/mac/TestExpectations: Updated test expectations to Pass Timeout while test is reviewed.
6:29 PM Changeset in webkit [275070] by commit-queue@webkit.org
  • 38 edits in trunk/Source

Remove 10.13 DEPLOYMENT_TARGETs and SYSTEM_VERSION_PREFIXs
https://bugs.webkit.org/show_bug.cgi?id=223765

Patch by Jessie Berlin <jberlin@webkit.org> on 2021-03-25
Reviewed by Tim Horton.

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

  • Configurations/Version.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Version.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/Version.xcconfig:

Source/WebCore:

  • Configurations/Version.xcconfig:

Source/WebCore/PAL:

  • Configurations/Version.xcconfig:

Source/WebInspectorUI:

  • Configurations/Version.xcconfig:

Source/WebKit:

  • Configurations/Version.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Version.xcconfig:
6:08 PM Changeset in webkit [275069] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS ] media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=223761

Unreviewed test gardening.

  • platform/mac/TestExpectations: Updated test expectations to Pass Timeout while test is reviewed.
5:22 PM Changeset in webkit [275068] by Said Abou-Hallawa
  • 5 edits in trunk/Source/WebKit

[GPU Process] Turn GPU process rendering for 2D canvas on by default
https://bugs.webkit.org/show_bug.cgi?id=223772
<rdar://75799739>

Reviewed by Tim Horton.

Enable the 'gpu_process_canvas_rendering' feature flag.

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-watchos.plist:
5:09 PM Changeset in webkit [275067] by Alan Bujtas
  • 7 edits
    2 adds in trunk

Source/WebCore:
[RenderTreeBuilder] Do not try to normalize the tree while destroying the multicolumn flow
https://bugs.webkit.org/show_bug.cgi?id=223722
<rdar://75731256>

Reviewed by Simon Fraser.

Test: fast/multicol/crash-while-destroying-the-column-context.html

This patch ensures that we don't start moving around parts of the fragmented flow subtree (e.g. collapsing anonymous blocks) while
trying place the spanner renderers back to their original positions as part of the "we don't need multicolumn context anymore".
(e.g spanner placeholder is removed -> triggers anon block collapsing -> moves subtrees around inside the multicolumn subtree -> insertion happens -> spanner placeholder gets re-validated)

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::destroy):

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderBlock.cpp:

(WebCore::RenderTreeBuilder::Block::detach):

  • rendering/updating/RenderTreeBuilderMultiColumn.cpp:

(WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):
(WebCore::RenderTreeBuilder::MultiColumn::handleSpannerRemoval):
(WebCore::RenderTreeBuilder::MultiColumn::multiColumnRelativeWillBeRemoved):

  • rendering/updating/RenderTreeBuilderMultiColumn.h:

LayoutTests:
[RenederTreeBuilder] Do not try to normalize the tree while destroying the multicolumn flow
https://bugs.webkit.org/show_bug.cgi?id=223722
<rdar://75731256>

Reviewed by Simon Fraser.

  • fast/multicol/crash-while-destroying-the-column-context-expected.txt: Added.
  • fast/multicol/crash-while-destroying-the-column-context.html: Added.
4:35 PM Changeset in webkit [275066] by Andres Gonzalez
  • 10 edits
    4 adds in trunk

AX: Consider implementing @aria-details.
https://bugs.webkit.org/show_bug.cgi?id=165842
rdar://30725491

Reviewed by Chris Fleizach.

Source/WebCore:

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

accessibility/mac/aria-details.html

  • Added [WebAccessibilityObjectWrapper accessibilityDetailsElements] on iOS.
  • Added helper function accessibleElementsForObjects to retrieve platform-

specific accessible elements given a collection of AXCoreObjects.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(accessibleElementsForObjects):
(-[WebAccessibilityObjectWrapper accessibilityDetailsElements]):
(-[WebAccessibilityObjectWrapper accessibilityErrorMessageElements]):

Tools:

Added AccessibilityUIElement::detailsElements.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::detailsElements const):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::detailsElements const):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::detailsElements const):

LayoutTests:

  • accessibility/ios-simulator/aria-details-expected.txt: Added.
  • accessibility/ios-simulator/aria-details.html: Added.
  • accessibility/mac/aria-details-expected.txt: Added.
  • accessibility/mac/aria-details.html: Added.
  • platform/mac-wk1/TestExpectations:
4:10 PM Changeset in webkit [275065] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebDriver

[CMake] Use WebDriver_DERIVED_SOURCES value
https://bugs.webkit.org/show_bug.cgi?id=223760

Reviewed by Ross Kirsling.

Replace DERIVED_SOURCES_WEBDRIVER_DIR with WebDriver_DERIVED_SOURCES.

  • CMakeLists.txt:
3:47 PM Changeset in webkit [275064] by commit-queue@webkit.org
  • 6 edits
    1 delete in trunk/Source

Unreviewed, reverting r275057.
https://bugs.webkit.org/show_bug.cgi?id=223768

Caused build failure

Reverted changeset:

"Enforce notifyd message filtering"
https://bugs.webkit.org/show_bug.cgi?id=223601
https://trac.webkit.org/changeset/275057

2:51 PM Changeset in webkit [275063] by Truitt Savell
  • 2 edits in trunk/JSTests

Unreviewed, reverting r275056.

This is no longer needed

Reverted changeset:

"stress/early-return-from-builtin.js.default is failing on iOS
JSC testers"
https://commits.webkit.org/r275056

2:49 PM Changeset in webkit [275062] by Kate Cheney
  • 2 edits in trunk/Source/WTF

Some calls in AuthenticatorPresenterCoordinator::selectAssertionResponse are not yet available for mac
https://bugs.webkit.org/show_bug.cgi?id=223752
<rdar://problem/75808515>

Reviewed by Jiewen Tan.

  • wtf/PlatformHave.h:
2:48 PM Changeset in webkit [275061] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.161.1

Tag Safari-611.1.21.161.1.

2:45 PM Changeset in webkit [275060] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.161-branch/Source

Versioning.

WebKit-7611.1.21.161.1

2:45 PM Changeset in webkit [275059] by Cameron McCormack
  • 5 edits
    2 adds in trunk

Collapse newly adjacent anonymous table cells when a table cell is detached from between them.
https://bugs.webkit.org/show_bug.cgi?id=220934

Reviewed by Zalan Bujtas.

Source/WebCore:

We already had support for collapsing newly adjacent table row cells when a
table row cell is detached from between them. We need to do this for anonymous
table cells too.

Test: fast/table/table-anonymous-cell-collapse.html

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers): Call
into the RenderTreeBuilder::Table to collapse anonymous table cells when
needed.

  • rendering/updating/RenderTreeBuilderTable.cpp:

(WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblings):
Factor out the existing collapseAndDestroyAnonymousSiblingRows into
something re-usable.
(WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblingCells):
Added.
(WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblingRows):
Factored out to collapseAndDestroyAnonymousSiblings.

  • rendering/updating/RenderTreeBuilderTable.h:

LayoutTests:

  • fast/table/table-anonymous-cell-collapse-expected.html: Added.
  • fast/table/table-anonymous-cell-collapse.html: Added.
2:34 PM Changeset in webkit [275058] by Russell Epstein
  • 1 copy in branches/safari-611.1.21.161-branch

New branch.

2:23 PM Changeset in webkit [275057] by pvollan@apple.com
  • 6 edits
    1 add in trunk/Source

Enforce notifyd message filtering
https://bugs.webkit.org/show_bug.cgi?id=223601
<rdar://75098580>

Reviewed by Brent Fulgham.

Source/WebCore/PAL:

Add Notify SPI file.

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/NotifySPI.h: Added.

Source/WebKit:

Enable Notify filtering by setting Notify options before entering sandbox.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::compileAndApplySandboxSlowCase):

Source/WTF:

Add ENABLE define for Notify filtering.

  • wtf/PlatformEnableCocoa.h:
1:53 PM Changeset in webkit [275056] by Truitt Savell
  • 2 edits in trunk/JSTests

stress/early-return-from-builtin.js.default is failing on iOS JSC testers
rdar://75597901

Unreviewed test gardening.

  • stress/early-return-from-builtin.js:
1:46 PM Changeset in webkit [275055] by commit-queue@webkit.org
  • 5 edits in trunk

Source/WebCore:
Fix edge cases in normalization of conic-gradient color stops
https://bugs.webkit.org/show_bug.cgi?id=221294
<rdar://problem/74157218>

Patch by Tim Nguyen <ntim@apple.com> on 2021-03-25
Reviewed by Darin Adler.

lastOneOrLessIndex had an off-by-one error, so it did not go through the
branch handling clamping all the stop offsets when they're all above 1.

Also made normalizeStopsAndEndpointsOutsideRange logic easier to follow using
Optional<size_t> instead of placeholder values.

Test: web-platform-tests/css/css-images/normalization-conic-2.html

  • css/CSSGradientValue.cpp:

(WebCore::ConicGradientAdapter::normalizeStopsAndEndpointsOutsideRange):

LayoutTests:
Enable normalization-conic-2.html WPT now that underlying bug is fixed.
Also skip some conic-gradient tests only on Windows instead of all platforms.
https://bugs.webkit.org/show_bug.cgi?id=221294
<rdar://problem/74157218>

Patch by Tim Nguyen <ntim@apple.com> on 2021-03-25
Reviewed by Darin Adler.

  • TestExpectations: enabled imported/w3c/web-platform-tests/css/css-images/normalization-conic-2.html.
1:22 PM Changeset in webkit [275054] by Aditya Keerthi
  • 8 edits in trunk/Source/WebKit

[iOS] Date picker view jumps to center when switching between MobileSafari and another app
https://bugs.webkit.org/show_bug.cgi?id=223662
<rdar://problem/74748727>

Reviewed by Tim Horton.

Tapping on a date input presents a UIDatePicker inside of a
UIContextMenuInteraction. The presentation of context menus is
dependent on the _positionInformation in WKContentViewInteraction being
up-to-date.

To ensure the value is up-to-date, a position information request is
made prior to presenting the date picker. However, the location used
for the request is the current FocusedElementInformation's
lastInteractionLocation. This is fine in most cases, since the date
picker is usually present immediately after tapping on the date input.
However, the date picker can be closed and presented again when
switching between MobileSafari and another app, as the input is focused
again when MobileSafari is reopened. If the switch is performed using a
gesture, the last interaction location is modified. Consequently, the
last interaction location does not always correspond to the position
of the date input, and the position information request gives us
incorrect information, leading to incorrect presentation of the picker.

To fix, add a new way of presenting context menus that is not dependent
on position information. Instead, form controls can use the information
they already have in FocusedElementInformation to present their
peripherals.

No new tests, since this bug only reproduces when swiping to switch apps.
Other touches in the web view immediately dismiss the date picker, making
the bug difficult to reproduce in a test.

  • Shared/FocusedElementInformation.cpp:

(WebKit::FocusedElementInformation::encode const):
(WebKit::FocusedElementInformation::decode):

  • Shared/FocusedElementInformation.h:

Added a member to inform FocusedElementInformation whether the focused
element is in a subscrollable region.

See r248447 for more details on why this information is needed when
creating a UITargetedPreview.

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

(-[WKContentView overridePositionTrackingViewForTargetedPreviewIfNecessary:containerScrollingNodeID:]):

Factored out the logic that overrides the targeted preview's position
tracking view when the element is in a subscrollable region.

(-[WKContentView _createTargetedContextMenuHintPreviewForFocusedElement]):

Create a targeted preview using the current FocusedElementInformation.

(-[WKContentView _createTargetedContextMenuHintPreviewIfPossible]):

  • UIProcess/ios/forms/WKDateTimeInputControl.mm:

(-[WKDateTimePicker controlBeginEditing]):

Displaying the context menu no longer needs to be done asynchronously
since the FocusedElementInformation is already available during
controlBeginEditing.

  • UIProcess/ios/forms/WKFormSelectPicker.mm:

Adopt the new logic for <select> elements, since the presented context
menu is an input peripheral, and can run into the same issues as the
date picker.

(-[WKSelectPicker controlBeginEditing]):
(-[WKSelectPicker contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::completeSyntheticClick):

Remove a redundant call to elementDidRefocus following r258333. The
FocusController already calls elementDidRefocus before this point, when
the mousepress event is dispatched.

The redundant call was uncovered when making the context menu
presentation synchronous, and causes problems with the presentation.
Specifically, the first call to elementDidRefocus causes the context
menu to be presented. The second call then results in an attempt
to scroll the web view, since the context menu can obscure the
assisted node. The additional scrolling is unwanted behavior, since it
does not occur when focusing the node for the first time.

This issue was previously unobserved, since the asynchronous presentation
of the context menu (after obtaining new position information) resulted
in both calls to elementDidRefocus occuring before presentation.

(WebKit::WebPage::getFocusedElementInformation):

Forward the scrolling node information to the UIProcess, so that the
position tracking view of the UITargetedPreview can be overridden
if necessary.

1:20 PM Changeset in webkit [275053] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WTF

Embiggen maximum HashTable size when not using ANGLE
https://bugs.webkit.org/show_bug.cgi?id=223757

Reviewed by Alex Christensen.

This is a partial revert of r274603 which cut the maximum size HashTable from 400 to 250.
When not using ANGLE directly for an OpenGL ES implementation there's some code hashing its
sh::ShaderVariable from the shader compiler ANGLE ships with. This type is too big and
triggers the static_assert.

The eventual goal is for ANGLE to be the OpenGL ES implementation for WebKit when enabling
WebGL. On PlayStation we already have a system OpenGL ES and any use of WebGL is in legacy
applications. The WebGL compliance features in ANGLE aren't needed in this case so ideally
we wouldn't even compile out ANGLE.

This patch punts on fixing the actual problem and just resolves this build issue.

  • wtf/HashTable.h:

(WTF::KeyTraits>::inlineLookup):

12:57 PM Changeset in webkit [275052] by sbarati@apple.com
  • 2 edits in trunk/JSTests

early-return-from-builtin.js should try/catch in case of OOM
https://bugs.webkit.org/show_bug.cgi?id=223756

Reviewed by Yusuke Suzuki.

It's throwing an OOM on iOS.

  • stress/early-return-from-builtin.js:
12:16 PM Changeset in webkit [275051] by Robert Jenner
  • 3 edits in trunk/LayoutTests

[ Debug wk2 ] ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData)
https://bugs.webkit.org/show_bug.cgi?id=223750

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations: Added test expectation to Pass Crash while test is reviewed.
  • platform/mac-wk2/TestExpectations: Updated test expectation to Pass Crash while test is reviewed.
11:54 AM Changeset in webkit [275050] by BJ Burg
  • 3 edits in trunk/Source/WebKit

SendKeys on Input of type=file returns element not found in some cases
https://bugs.webkit.org/show_bug.cgi?id=223028
<rdar://problem/75526126>

Reviewed by Devin Rousso.

This bizarre behavior is triggered by removing the <input type=file> element inside an onclick() handler
for the input element. This confuses safaridriver, which expects to be able to query the file input's .value
via JavaScript after setting the files.

As part of the fix, provide the list of selected filenames in the Automation.fileChooserDismissed event.
On the safaridriver side, just use the list of filenames provided in this event to avoid an extra JS evaluation
that may race with page content.

  • UIProcess/Automation/Automation.json:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::handleRunOpenPanel):

11:47 AM Changeset in webkit [275049] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Address some alignment issues found by UBSan in contentextensions code
https://bugs.webkit.org/show_bug.cgi?id=223748

Reviewed by Darin Adler.

Address some alignment issues found by UBSan in contentextensions code:

  • contentextensions/SerializedNFA.h:55:20: runtime error: reference binding to misaligned address 0xnnnnnnnnn for type 'const unsigned long long', which requires 8 byte alignment
  • contentextensions/NFAToDFA.cpp:254:29: runtime error: reference binding to misaligned address 0xnnnnnnnnn for type 'const unsigned long long', which requires 8 byte alignment
  • contentextensions/DFABytecodeCompiler.cpp:43:5: runtime error: store to misaligned address 0xnnnnnnnnn for type 'unsigned short', which requires 2 byte alignment

Use memcpy() to store/load to/from misaligned address.

  • contentextensions/DFABytecodeCompiler.cpp:

(WebCore::ContentExtensions::append):

  • contentextensions/NFAToDFA.cpp:

(WebCore::ContentExtensions::epsilonClosureExcludingSelf):
(WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate):

  • contentextensions/SerializedNFA.h:

(WebCore::ContentExtensions::SerializedNFA::Range::pointerAt const):
(WebCore::ContentExtensions::SerializedNFA::Range::valueAt const):
(WebCore::ContentExtensions::SerializedNFA::ConstTargetIterator::operator* const):
(WebCore::ContentExtensions::SerializedNFA::ConstTargetIterator::operator-> const):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::first const):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::last const):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::data const):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::range const):
(WebCore::ContentExtensions::SerializedNFA::transitionsForNode const):
(WebCore::ContentExtensions::SerializedNFA::Range::operator[] const): Deleted.

11:20 AM Changeset in webkit [275048] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Source/WebCore/xml/parser/CharacterReferenceParserInlines.h:107:33: runtime error: signed integer overflow: 268435455 * 16 cannot be represented in type 'int'
https://bugs.webkit.org/show_bug.cgi?id=223718

Reviewed by Darin Adler.

Use Checked<> for the result in consumeCharacterReference() to deal with overflows
in a well-defined manner.

  • xml/parser/CharacterReferenceParserInlines.h:

(WebCore::consumeCharacterReference):

10:36 AM Changeset in webkit [275047] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit
REGRESSION (r272376): [iOS] ASSERTION FAILED: sessionID.isEphemeral()
!path.isEmpty() in WebKit::NetworkProcess::swServerForSession

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

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-25
Reviewed by Geoff Garen.

Because NetworkProcess::CreateNetworkConnectionToWebProcess is sent with SendOption::DispatchMessageEvenWhenWaitingForSyncReply, it is possible
for two messages of type NetworkProcess::AddWebsiteDataStore and two messages of type NetworkProcess::CreateNetworkConnectionToWebProcess to be in the queue,
but the second NetworkProcess::CreateNetworkConnectionToWebProcess jumps to the front of the line while the UI process is waiting for the reply to the first.
Then, when calling NetworkProcess::swServerForSession we expect the session's parameters to have been initialized in the network process already, but we cut
ahead of the parameter initialization message. This is a realistically rare condition that can only be hit when using SPI, but it is hit in the
ResourceLoadStatistics.StoreSuspension API test. To fix this, we send the WebsiteDataStoreParameters from each WebsiteDataStore in the NetworkProcessCreationParameters.
To avoid doing extra work, we introduce an early return in NetworkProcessProxy::addSession if we have already added parameters from this session to the network process.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::addSessionStorageQuotaManager):

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):
(WebKit::NetworkProcessProxy::addSession):

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

(WebKit::WebsiteDataStore::parametersFromEachWebsiteDataStore):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
10:34 AM Changeset in webkit [275046] by wilander@apple.com
  • 60 edits in trunk

PCM: Rename attributeOn to attributionDestination and change the IDL data type of attributionSourceId to unsigned long
https://bugs.webkit.org/show_bug.cgi?id=223661
<rdar://problem/75762075>

Reviewed by Brent Fulgham.

The PR review of the update of the PCM spec lead WebKit, Mozilla, and Google to decide on two changes:

  1. Rename attributeOn to attributionDestination
  2. Change the IDL data type of attributionSourceId from DOMString to unsigned long

The spec change can be seen in this commit:
https://github.com/privacycg/private-click-measurement/pull/75/commits/8623b5df5e899e6652bc5b00313585f7eeafa797

Source/WebCore:

This patch makes those changes, plus changes names of SPIs, functions, and variables accordingly.

Existing tests were updated.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):

  • html/HTMLAnchorElement.idl:
  • html/HTMLAttributeNames.in:
  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::isValid const):
(WebCore::PrivateClickMeasurement::attributionReportAttributeOnURL const):
(WebCore::PrivateClickMeasurement::attributionReportJSON const):

  • loader/PrivateClickMeasurement.h:

(WebCore::PrivateClickMeasurement::AttributionDestinationSite::AttributionDestinationSite):
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::operator== const):
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::deletedValue):
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::constructDeletedValue):
(WebCore::PrivateClickMeasurement::AttributionDestinationSiteHash::hash):
(WebCore::PrivateClickMeasurement::AttributionDestinationSiteHash::equal):
(WebCore::PrivateClickMeasurement::PrivateClickMeasurement):
(WebCore::PrivateClickMeasurement::destinationSite const):
(WebCore::PrivateClickMeasurement::encode const):
(WebCore::PrivateClickMeasurement::decode):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributionDestinationSite>::emptyValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributionDestinationSite>::constructDeletedValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributionDestinationSite>::isDeletedValue):
(WebCore::PrivateClickMeasurement::AttributeOnSite::AttributeOnSite): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::operator== const): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::matches const): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::isHashTableDeletedValue const): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::deletedValue): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::constructDeletedValue): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::deleteValue): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::isDeletedValue const): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSiteHash::hash): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSiteHash::equal): Deleted.
(WebCore::PrivateClickMeasurement::attributeOnSite const): Deleted.
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributeOnSite>::emptyValue): Deleted.
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributeOnSite>::constructDeletedValue): Deleted.
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributeOnSite>::isDeletedValue): Deleted.

Source/WebKit:

This patch makes those changes, plus changes names of SPIs, functions, and variables accordingly.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::buildPrivateClickMeasurementFromDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::findPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::removeUnattributed):
(WebKit::ResourceLoadStatisticsDatabaseStore::attributePrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::attributionToString):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttribution):

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::attributePrivateClickMeasurement):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setPrivateClickMeasurementAttributionReportURLsForTesting):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::setPrivateClickMeasurementAttributionReportURLsForTesting):

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::handleAttribution):
(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::setAttributionReportURLsForTesting):

  • NetworkProcess/PrivateClickMeasurementManager.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPrivateClickMeasurementAttributionReportURLsForTesting):

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

(-[WKWebView _setPrivateClickMeasurementAttributionReportURLsForTesting:destinationURL:completionHandler:]):
(-[WKWebView _setPrivateClickMeasurementAttributionReportURLsForTesting:attributeOnURL:completionHandler:]): Deleted.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _setUIEventAttribution:]):
(-[WKWebView _uiEventAttribution]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::setPrivateClickMeasurementAttributionReportURLsForTesting):

  • UIProcess/WebPageProxy.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setPrivateClickMeasurementAttributionReportURLsForTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::setPrivateClickMeasurementAttributionReportURLsForTesting):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

Test cases were updated accordingly.

  • http/tests/contentextensions/block-private-click-measurement.html:
  • http/tests/privateClickMeasurement/anchor-tag-attributes-reflect-expected.txt:
  • http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html:
  • http/tests/privateClickMeasurement/anchor-tag-attributes-validation-expected.txt:
  • http/tests/privateClickMeasurement/anchor-tag-attributes-validation.html:

Since attributionSourceId is now an unsigned long, tests that checked invalid
string values are no longer relevant. It should be noted that a set
attributionSourceId with an invalid value becomes 0 which is a valid value.

  • http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority.html:
  • http/tests/privateClickMeasurement/clear-through-website-data-removal.html:
  • http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html:
  • http/tests/privateClickMeasurement/expired-ad-click-gets-removed-on-session-start.html:
  • http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start.html:
  • http/tests/privateClickMeasurement/expired-attributions-removed.html:
  • http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority.html:
  • http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority.html:
  • http/tests/privateClickMeasurement/second-conversion-with-higher-priority.html:
  • http/tests/privateClickMeasurement/second-conversion-with-lower-priority.html:
  • http/tests/privateClickMeasurement/send-attribution-conversion-request.html:
  • http/tests/privateClickMeasurement/store-disabled-in-ephemeral-session.html:
  • http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html:
  • http/tests/privateClickMeasurement/store-private-click-measurement.html:
10:16 AM Changeset in webkit [275045] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Drop unnecessary Settings pre-warming in ProcessWarming::prewarmGlobally()
https://bugs.webkit.org/show_bug.cgi?id=223749

Reviewed by Antti Koivisto.

Drop unnecessary Settings pre-warming in ProcessWarming::prewarmGlobally(). Based on the comment,
it looks like the intention was to prewarm some font families. However, looking at the code, nothing
that gets populated is global and survives the destruction of the Settings object on the next line.
We don't even make any calls to CTFont.

  • page/ProcessWarming.cpp:

(WebCore::ProcessWarming::prewarmGlobally):

10:06 AM Changeset in webkit [275044] by Carlos Garcia Campos
  • 11 edits in releases/WebKitGTK/webkit-2.32

Merge r274641 - [WPE] Bump API version when building with libsoup3
https://bugs.webkit.org/show_bug.cgi?id=223437

Reviewed by Adrian Perez de Castro.

.:

Use 1.1 as the API version when building with soup3.

  • Source/PlatformWPE.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebKit:

  • PlatformWPE.cmake: Use WPE_API_DOC_VERSION instead of WPE_API_VERSION for gtkdoc config files.
  • wpe/wpe-web-extension-uninstalled.pc.in: Add variable for libsoup version.
  • wpe/wpe-web-extension.pc.in: Ditto.
  • wpe/wpe-webkit-uninstalled.pc.in: Ditto.
  • wpe/wpe-webkit.pc.in: Ditto.

Tools:

Use WPE_API_DOC_VERSION instead of WPE_API_VERSION.

  • wpe/manifest.txt.in:
10:06 AM Changeset in webkit [275043] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274640 - [SOUP] SOUP3 crashes inside soup_message_set_request_body
https://bugs.webkit.org/show_bug.cgi?id=223236

Reviewed by Adrian Perez de Castro.

Make WebKitFormDataInputStream implement GPollableInputStream.

  • platform/network/soup/WebKitFormDataInputStream.cpp:

(webkitFormDataInputStreamNew):
(webkitFormDataInputStreamCanPoll):
(webkitFormDataInputStreamIsReadable):
(webkitFormDataInputStreamCreateSource):
(webkitFormDataInputStreamPollableInterfaceInit):

10:06 AM Changeset in webkit [275042] by Carlos Garcia Campos
  • 12 edits in releases/WebKitGTK/webkit-2.32/Source

Merge r274479 - [GTK][WPE] Stop using g_memdup
https://bugs.webkit.org/show_bug.cgi?id=223189

Reviewed by Philippe Normand.

Source/WebCore:

Add gstBufferNewWrappedFast() to create a GstBuffer wrapping data allocated with fast malloc and use it when
possible in combination with fastMemDup() instead of g_memdup().

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::gstBufferNewWrappedFast):

  • platform/graphics/gstreamer/GStreamerCommon.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(CachedResourceStreamingClient::dataReceived):

  • platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.cpp:

(WebCore::RealtimeIncomingAudioSourceLibWebRTC::OnData):

  • platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp:

Source/WebKit:

  • UIProcess/API/glib/WebKitWebResource.cpp:

(webkit_web_resource_get_data_finish): Use g_malloc + memcpy instead of g_memdup.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_save_finish): Use fastMemDup instead g_memdup.

Source/WTF:

Add fastMemDup() to replace g_memdup() that is now deprecated in GLib because of the possibility of overflow
when converting from size_t to unsigned int. There's a replacement in GLib already, but we would need to depend
on very new GLib version, so better use fastMemDup() when possible. In cases where we still need to use GLib
allocator, we can simply call g_malloc() + memcpy().

  • wtf/FastMalloc.cpp:

(WTF::fastMemDup):

  • wtf/FastMalloc.h:
10:06 AM Changeset in webkit [275041] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.32/Source

Merge r274354 - [GTK] GTK4 crashes with XVFB: GLXBadWindow
https://bugs.webkit.org/show_bug.cgi?id=223108

Reviewed by Žan Doberšek.

Source/WebCore:

  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::supportsGLX const): Check if GLX extension is supported and return the base error code.

  • platform/graphics/x11/PlatformDisplayX11.h:

Source/WebKit:

Handle GLXBadWindow errors in AcceleratedBackingStoreX11.

  • UIProcess/gtk/AcceleratedBackingStoreX11.cpp:

(WebKit::AcceleratedBackingStoreX11::checkRequirements):
(WebKit::glxErrorCode):
(WebKit::AcceleratedBackingStoreX11::~AcceleratedBackingStoreX11):
(WebKit::AcceleratedBackingStoreX11::update):

10:06 AM Changeset in webkit [275040] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore/platform/gtk/po

Merge r274624 - [GTK][l10n] Updated Polish translation of WebKitGTK for 2.32
https://bugs.webkit.org/show_bug.cgi?id=223149

Patch by Piotr Drąg <piotrdrag@gmail.com> on 2021-03-18
Rubber-stamped by Carlos Garcia Campos.

  • pl.po:
10:06 AM Changeset in webkit [275039] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.32

Merge r275031 - [GTK][WPE] JSC crashes if a function expects a parameter but doesn't receive any
https://bugs.webkit.org/show_bug.cgi?id=223646

Reviewed by Adrian Perez de Castro.

Source/JavaScriptCore:

Handle the case of receiving fewer argumens than expected in function calls and constructors. We pass undefined
for the expected arguments that are missing. We were not correctly handling the case of converting undefined and
null values to JSCValue, so this patch fixes that case too.

  • API/glib/JSCCallbackFunction.cpp:

(JSC::JSCCallbackFunction::call):
(JSC::JSCCallbackFunction::construct):

  • API/glib/JSCContext.cpp:

(jscContextJSValueToWrappedObject):
(jscContextJSValueToGValue):

Tools:

Add test cases.

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(valueToString):
(testJSCFunction):
(testJSCClass):

9:49 AM Changeset in webkit [275038] by Chris Dumez
  • 4 edits in trunk/Source

Do not do process pre-warming when the system is under memory pressure
https://bugs.webkit.org/show_bug.cgi?id=223717
<rdar://problem/75810423>

Reviewed by Antti Koivisto.

Source/WebKit:

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::prewarmGlobally):
Only do prewarming if we're not under memory pressure as this would make
the situation worse.

Source/WTF:

  • wtf/cocoa/MemoryPressureHandlerCocoa.mm:

(WTF::MemoryPressureHandler::install):

  • Listen to the same memory pressure notifications on macOS and iOS. Previously, macOS would not respond to non-critical memory pressure notifications for example. Also, since macOS would not listen for the notification that happens when the memory usage goes back to normal, MemoruPressureHandler::isUnderMemoryPressure() would start returning true after a critical memory pressure notification and it would never go back to false.
9:33 AM Changeset in webkit [275037] by youenn@apple.com
  • 16 edits in trunk

Switch from PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION to filtering interfaces in Network process
https://bugs.webkit.org/show_bug.cgi?id=223679

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

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

Source/WebCore:

Covered by webrtc/datachannel/filter-ice-candidate.html.

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::createPeerConnection):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:

Use set_allow_tcp_listen instead of PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION.

Source/WebKit:

When starting to monitor, pass whether to enumerate all interfaces from WebProcess to NetworkProcess as a boolean.
In NetworkProcess, do network interface enumeration as usual, but use the boolean to decide whether to send the full list or the list that is related to the default IP addresses to WebProcess.

  • NetworkProcess/webrtc/NetworkRTCMonitor.cpp:

(WebKit::NetworkManagerWrapper::addListener):
(WebKit::NetworkManagerWrapper::onNetworksChanged):
(WebKit::NetworkRTCMonitor::startUpdatingIfNeeded):
(WebKit::NetworkRTCMonitor::onNetworksChanged):

  • NetworkProcess/webrtc/NetworkRTCMonitor.h:
  • NetworkProcess/webrtc/NetworkRTCMonitor.messages.in:
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::createPeerConnection):

  • WebProcess/Network/webrtc/WebRTCMonitor.cpp:

(WebKit::WebRTCMonitor::setEnumeratingAllNetworkInterfacesEnabled):
(WebKit::WebRTCMonitor::StartUpdating):

  • WebProcess/Network/webrtc/WebRTCMonitor.h:
9:19 AM Changeset in webkit [275036] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Only preheat MTLCopyAllDevices on Mac
https://bugs.webkit.org/show_bug.cgi?id=223747

Patch by Ben Nham <Ben Nham> on 2021-03-25
Reviewed by Chris Dumez.

We should use adoptNS to avoid leaking the array returned by MTLCopyAllDevices. We should
also only do this on Mac because this is only a public API on the Mac, and the issue of
graphics drivers falling out of the dyld shared cache doesn't exist on iOS.

  • platform/graphics/gpu/cocoa/GPUDeviceMetal.mm:

(WebCore::GPUDevice::prewarm):

8:30 AM Changeset in webkit [275035] by commit-queue@webkit.org
  • 4 edits in trunk

WKContentRuleList first-party should include other subdomains of the current registrable domain
https://bugs.webkit.org/show_bug.cgi?id=223728
Source/WebCore:

<rdar://71912579>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-25
Reviewed by John Wilander.

Covered by API tests.

  • loader/ResourceLoadInfo.cpp:

(WebCore::ContentExtensions::ResourceLoadInfo::isThirdParty const):

Tools:

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-25
Reviewed by John Wilander.

  • TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:

(TEST):

8:28 AM Changeset in webkit [275034] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Align RemoteVideoDecoder destruction strategy with RemoteVideoEncoder
https://bugs.webkit.org/show_bug.cgi?id=223745

Reviewed by Eric Carlson.

When decoder is released, we make sure to nullify the decoder callback.
We wait to release WebKit decoder at RemoteVideoDecoder destruction time.

  • Source/webrtc/sdk/WebKit/WebKitDecoder.mm:

(webrtc::RemoteVideoDecoder::~RemoteVideoDecoder):
(webrtc::RemoteVideoDecoder::Release):

8:28 AM Changeset in webkit [275033] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Improve RealtimeIncomingVideoSourceCocoa::OnFrame logging to include rotation and size information
https://bugs.webkit.org/show_bug.cgi?id=223741

Reviewed by Eric Carlson.

No change of behavior.

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

(WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):

8:03 AM Changeset in webkit [275032] by commit-queue@webkit.org
  • 7 edits
    1 delete in trunk/Tools/buildstream

[Flatpak SDK] Update to GStreamer 1.18.4
https://bugs.webkit.org/show_bug.cgi?id=223644

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-25
Reviewed by Adrian Perez de Castro.

  • elements/sdk/gst-libav.bst:
  • elements/sdk/gst-plugins-bad.bst:
  • elements/sdk/gst-plugins-base.bst:
  • elements/sdk/gst-plugins-good.bst:
  • elements/sdk/gst-plugins-ugly.bst:
  • elements/sdk/gstreamer.bst:
  • patches/gst-plugins-base-0001-videodecoder-Fix-racy-critical-when-pool-negotiation.patch: Removed.
7:34 AM Changeset in webkit [275031] by Carlos Garcia Campos
  • 5 edits in trunk

[GTK][WPE] JSC crashes if a function expects a parameter but doesn't receive any
https://bugs.webkit.org/show_bug.cgi?id=223646

Reviewed by Adrian Perez de Castro.

Source/JavaScriptCore:

Handle the case of receiving fewer argumens than expected in function calls and constructors. We pass undefined
for the expected arguments that are missing. We were not correctly handling the case of converting undefined and
null values to JSCValue, so this patch fixes that case too.

  • API/glib/JSCCallbackFunction.cpp:

(JSC::JSCCallbackFunction::call):
(JSC::JSCCallbackFunction::construct):

  • API/glib/JSCContext.cpp:

(jscContextJSValueToWrappedObject):
(jscContextJSValueToGValue):

Tools:

Add test cases.

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(valueToString):
(testJSCFunction):
(testJSCClass):

7:07 AM Changeset in webkit [275030] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WTF

Merge r275014 - REGRESSION(r271560): [Linux] release assert in Thread::initializePlatformThreading
https://bugs.webkit.org/show_bug.cgi?id=223069

Reviewed by Carlos Garcia Campos.

Replace an existing signal handler instead of aborting.

  • wtf/posix/ThreadingPOSIX.cpp:

(WTF::Thread::initializePlatformThreading):

7:07 AM Changeset in webkit [275029] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274943 - [GStreamer] Use imxvideoconvert_g2d element inside the sink when available
https://bugs.webkit.org/show_bug.cgi?id=223693

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-03-24
Reviewed by Philippe Normand.

On some iMX platforms we require the use of imxvideoconvert_g2d element
in order to properly convert the visual buffers before they can be
rendered through our pipeline. We expect to require this buffer if it's
present in the GStreamer plugin registry on the system.

We search for this element and, if found, add it to the sink and
position it at the beginning, before the glupload element.

Based on an approach outlined by Gabriel Valcazar.

  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(webKitGLVideoSinkConstructed):

7:07 AM Changeset in webkit [275028] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.32

Merge r274976 - REGRESSION(r274870) fast/canvas/webgl/texImage2D-mse-flipY-true.html and fast/canvas/webgl/texImage2D-mse-flipY-false.html are crashing
https://bugs.webkit.org/show_bug.cgi?id=223674

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-24
Reviewed by Kenneth Russell.

Source/WebCore:

When the srcObject is directly set on a media element, the corresponding URL might still be
empty, so we need to ensure the URI corresponding to the MediaSource blob is not empty,
otherwise uridecodebin would fail to create the right source element.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::load):

LayoutTests:

  • platform/glib/TestExpectations:
7:07 AM Changeset in webkit [275027] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.32

Merge r274870 - [MSE][GStreamer] SIGSEV in webKitMediaSrcFreeStream
https://bugs.webkit.org/show_bug.cgi?id=220091

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

Source/WebCore:

The pipeline used by the MSE player is now able reload the MediaSource from the beginning if
a seek to 0 was requested. The problem was that uridecodebin was creating a new source
element and notifying the player which was then trying to dispose underlying platform track
informations, and also related appsrc elements. The latter was specially problematic because
the appsrc elements ownership was badly handled (elements added to a bin should not be
reused, unless an extra ref is added), leading to racy crashes.

So now when uridecodebin creates a new source element, the player detects this is a new
source and transfers track-related informations to the new element. Additionally, new appsrc
elements are created for the new element and track signals emitted so that the player is
still fully aware of the MSE tracks topology.

No new tests but two existing tests are now passing.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::MediaPlayerPrivateGStreamerMSE::sourceSetup):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
  • platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp:

(WebCore::MediaSourcePrivateGStreamer::open):

  • platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h:
  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:

(WebCore::PlaybackPipeline::addSourceBuffer):

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:

(webKitMediaSrcFinalize):
(webKitMediaSrcChangeState):
(webKitMediaSrcFreeStream):
(webKitMediaSrcRestoreTracks):
(webKitMediaSrcSignalTracks):

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.h:

LayoutTests:

  • platform/gtk/TestExpectations: Unflag now-passing tests.
7:07 AM WebKitGTK/2.32.x edited by Carlos Garcia Campos
(diff)
7:07 AM Changeset in webkit [275026] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit

Merge r274937 - [WPE] Build error in ARMv7 invalid 'static_cast' for GLNativeWindowType
https://bugs.webkit.org/show_bug.cgi?id=223684

Fixes this error:

error: invalid 'static_cast' from type 'uintptr_t' {aka 'unsigned
int'} to type 'GLNativeWindowType' {aka 'void*'}

; an invalid 'static_cast' from type error for ARMv7 (rpi3 and mesa driver)
by using the same solution chosen in
https://bugs.webkit.org/show_bug.cgi?id=179511:

EGLNativeWindowType can be aliased to a different type depending (at least) on the EGL
implementation, its build options, and the libepoxy build options. Using "static_cast"
works when it is a numeric value and the width of the value needs to be optionally
extended to 64 bits (e.g. the EGL type is "int" in a 32-bit CPU) but not for pointers,
and using "reinterpret_cast" works when the size of a pointer is 64 bits but not in other
cases. Therefore it seems reasonable to use a plain C cast expression to solve this
particular situation.

https://trac.webkit.org/changeset/274869/webkit

Reviewed by Philippe Normand.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::createGLContext):

7:07 AM Changeset in webkit [275025] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.32/Source

Merge r274869 - [GTK] X11 build fixes
https://bugs.webkit.org/show_bug.cgi?id=223577

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-23
Reviewed by Adrian Perez de Castro.

Source/WebCore:

X11 headers define a bunch of macros with common terms, interfering with WebCore and WTF
enum values. As a workaround, we explicitly undef them.

  • platform/graphics/GLContext.h:
  • platform/graphics/GraphicsContext.h:

Source/WebKit:

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::createGLContext): GLNativeWindowType might be a long unsigned
int, which can't be reinterpret casted to uin64_t on 32-bit platforms.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: Use

WebCore::Region to prevent clashes with X11's Region.
(WebKit::DrawingAreaCoordinatedGraphics::scroll):
(WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode):
(WebKit::DrawingAreaCoordinatedGraphics::display):

7:06 AM Changeset in webkit [275024] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.32

Merge r274476 - [CMake] Build fails on RISC-V with GCC 11
https://bugs.webkit.org/show_bug.cgi?id=222959

Patch by Khem Raj <raj.khem@gmail.com> on 2021-03-16
Reviewed by Carlos Alberto Lopez Perez.

.:

Check for 1 byte atomic operations along with 64bit ones, some
architevtures (e.g. RISCV) operations on less than 4 bytes are not lock-free

  • Source/cmake/WebKitCompilerFlags.cmake:

Source/JavaScriptCore:

Use renamed variable ATOMICS_REQUIRE_LIBATOMIC instead of ATOMIC_INT64_REQUIRES_LIBATOMIC

  • CMakeLists.txt:

Source/WebKit:

Use renamed ATOMICS_REQUIRE_LIBATOMIC instead of ATOMIC_INT64_REQUIRES_LIBATOMIC.

  • CMakeLists.txt:

Source/WTF:

Link with libatomic if ATOMICS_REQUIRE_LIBATOMIC is set.

  • wtf/CMakeLists.txt:
7:06 AM Changeset in webkit [275023] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/JavaScriptCore

Merge r274428 - postprocess-asm/resolve-asm-file-conflicts.rb build failure after upgrading to F34
https://bugs.webkit.org/show_bug.cgi?id=223136

Reviewed by Michael Catanzaro.

When parsing .file assembler directives (for the purpose of
deduplicating the file slots), also accept

.file "path/to/CWD" "path/to/include"

that seems to be emitted by GCC in some configurations. This also
uses Pathname.cleanpath on the resulting path to canonicalize the
paths. We could use .realpath, but since we only run this on the
paths in a single compilation unit and the first component is
supposed to be the CWD, this both seems unnecessary and would
complicate our selftests.

  • Scripts/resolve-asm-file-conflicts.rb:
7:06 AM Changeset in webkit [275022] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit

Merge r274423 - REGRESSION(r233845): EME Keysystem permission when MediaStream is disabled
https://bugs.webkit.org/show_bug.cgi?id=223185

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-15
Reviewed by Eric Carlson.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestMediaKeySystemPermissionForFrame): This method is required for
EME build configurations, not MediaStream...

7:06 AM Changeset in webkit [275021] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.32

Merge r274375 - REGRESSION(r274270): [WPE][GTK] Broke Epiphany test /embed/ephy-web-view/error-pages-not-stored-in-history
https://bugs.webkit.org/show_bug.cgi?id=223140

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-12
Reviewed by Alex Christensen.

Source/WebCore:

If the SecurityOriginData has no protocol or host, return an empty string instead of ":"

  • page/SecurityOriginData.cpp:

(WebCore::SecurityOriginData::toString const):

Source/WebKit:

Convert empty strings to NULL.

  • UIProcess/API/glib/WebKitSecurityOrigin.cpp:

(webkit_security_origin_to_string):

Tools:

Improve WebKitSecurityOrigin tests a bit.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp:

(testCustomProtocolOrigin): Drive-by improvement: check webkit_security_origin_to_string().
(testBogusURI): Added, tests for this bug.
(beforeAll):

7:06 AM Changeset in webkit [275020] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274358 - [GStreamer] Crashes deep in GStreamer under gst_element_add_pad
https://bugs.webkit.org/show_bug.cgi?id=222763

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

Rely on select-streams event to configure only the first video stream of the collection
received on the bus. The select-stream decodebin3 signal is not recommended, and seems
broken anyway, because no selecting audio streams was still leading to audio decode pads
being added, leading to crashes.

  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::InnerDecoder::handleMessage):
(WebCore::ImageDecoderGStreamer::InnerDecoder::preparePipeline):
(WebCore::ImageDecoderGStreamer::InnerDecoder::selectStream): Deleted.

  • platform/graphics/gstreamer/ImageDecoderGStreamer.h:
7:06 AM Changeset in webkit [275019] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r273558 - Unreviewed, address post-landing review feedback for r273542.

Update a comment and fix a check that was reversed.

  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::createOutputBufferForJS const):
(WebCore::ScriptProcessorNode::process):

6:44 AM Changeset in webkit [275018] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[ews] Add unit-test to ensure that config.json doesn't have tab characters
https://bugs.webkit.org/show_bug.cgi?id=223440

Reviewed by Jonathan Bedard.

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

(ConfigDotJSONTest.test_tab_character): Unit-test to ensure that there are no tab characters.

  • CISupport/ews-build/config.json:
  • CISupport/ews-build/loadConfig_unittest.py:

(ConfigDotJSONTest.test_tab_character):

6:42 AM Changeset in webkit [275017] by commit-queue@webkit.org
  • 10 edits
    2 deletes in trunk

Unreviewed, reverting r274826 and r274968.
https://bugs.webkit.org/show_bug.cgi?id=223746

Added broken layout test

Reverted changesets:

"AX: textRectsFromMarkers always fails"
https://bugs.webkit.org/show_bug.cgi?id=223556
https://trac.webkit.org/changeset/274826

"AX: Add functions rectsForTextMarkerRange for testing"
https://bugs.webkit.org/show_bug.cgi?id=223705
https://trac.webkit.org/changeset/274968

6:41 AM Changeset in webkit [275016] by Razvan Caliman
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r270134) Web Inspector: Audit: Results are stacked on top of each other.
https://bugs.webkit.org/show_bug.cgi?id=223381
<rdar://problem/75528374>

Reviewed by Devin Rousso.

Ensure pre-existing ContentViews are removed when navigating back/forward
even when the incoming ContentView is already attached.

For example, AuditTestContentView instances for individual tests are already attached
when shown as part of a test group AuditTestGroupContentView.
Navigating from the group to the individual test view must remove the group view.

  • UserInterface/Views/ContentViewContainer.js:

(WI.ContentViewContainer.prototype.showBackForwardEntryForIndex):

5:22 AM Changeset in webkit [275015] by graouts@webkit.org
  • 6 edits in trunk

Improve interpolation of the shape-outside CSS property
https://bugs.webkit.org/show_bug.cgi?id=223738

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Add another 29 PASS results for shape-outside interpolation.

  • web-platform-tests/css/css-shapes/animation/shape-outside-composition-expected.txt:
  • web-platform-tests/css/css-shapes/animation/shape-outside-interpolation-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

While we had logic to deal with cases where ShapeValue objects could not be interpolated, we did not make
use of it in the animation wrapper. We now move this logic from the blendFunc() to the canInterpolate()
override method on the wrapper to correctly interpolate only when possible.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):

5:10 AM Changeset in webkit [275014] by berto@igalia.com
  • 2 edits in trunk/Source/WTF

REGRESSION(r271560): [Linux] release assert in Thread::initializePlatformThreading
https://bugs.webkit.org/show_bug.cgi?id=223069

Reviewed by Carlos Garcia Campos.

Replace an existing signal handler instead of aborting.

  • wtf/posix/ThreadingPOSIX.cpp:

(WTF::Thread::initializePlatformThreading):

3:14 AM Changeset in webkit [275013] by timothy_horton@apple.com
  • 27 edits in trunk/Source

All Books quirks are flakily not applied in modern WebKit
https://bugs.webkit.org/show_bug.cgi?id=157101
<rdar://problem/25965028>

Reviewed by Darin Adler.

Source/WebCore:

No new tests; I haven't found a way to write a test that doesn't involve
adding a new parameter to the process bootstrap message, which seems
out of the realm of reason for a test.

  • bindings/js/CommonVM.cpp:

(WebCore::commonVMSlow):
(WebCore::globalConstRedeclarationShouldThrow): Deleted.
Stop hardcoding globalConstRedeclarationShouldThrow based on the UI process identity.

  • platform/RuntimeApplicationChecks.cpp:

(WebCore::isInAuxiliaryProcess):

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::applicationBundleIdentifier):
(WebCore::setApplicationBundleIdentifierOverride):
Add an assertion to catch any future case where a bundle check is queried
in a auxiliary process before the hosting application bundle identifier is set.

Source/WebKit:

In r200121, a quirk was introduced that queried the isIBooks()
RuntimeApplicationChecks method from inside commonVM().

RuntimeApplicationChecks bundle checks cache the result of the bundle
check, and, as such, must not be called until the bundle identifer of
the UI application is known. In legacy WebKit, this is not a problem,
because the check is running in the application process; in modern WebKit,
there is a short window between process launch and the InitializeWebProcess
message being received where we won't know the bundle identifier, and if
isIBooks() (or any other bundle check) is called during this time, it will
cache the wrong result.

It is possible for commonVM() to be called in this window; one possible path
to this is by triggering an os_log_fault during this time, which WebKit
observes (via os_state_add_handler()) in order to dump memory usage
(which happens to call commonVM() and results in isIBooks getting called
and caching the wrong value).

Add an assertion, and move the quirk to live as a setting on the process
pool configuration, to be set via SPI by Books, instead of as a bundle check.

Also, ensure that client bundle identifier and SDK version are set in
all WebKit subprocesses, so that bundle/SDK checks work everywhere
(previously, the GPU process was using SDK checks without having pushed
the values from the UI process, resulting in incorrect results, and
running afoul of the assertion added above).

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):
(API::defaultShouldThrowExceptionForGlobalConstantRedeclaration):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration shouldThrowExceptionForGlobalConstantRedeclaration]):
(-[_WKProcessPoolConfiguration setShouldThrowExceptionForGlobalConstantRedeclaration:]):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
Plumb a new _WKProcessPoolConfiguration parameter to the Web Content process,
and set the bit on the commonVM when launched.

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • Shared/AuxiliaryProcess.cpp:

(WebKit::AuxiliaryProcess::initialize):
(WebKit::AuxiliaryProcess::platformInitialize):

  • Shared/AuxiliaryProcess.h:
  • Shared/Cocoa/AuxiliaryProcessCocoa.mm:

(WebKit::initializeTimerCoalescingPolicy):
(WebKit::AuxiliaryProcess::platformInitialize):

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:

(WebKit::XPCServiceInitializer):

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:

(WebKit::XPCServiceInitializerDelegate::getClientSDKVersion):

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:

Remove an extra unused member.

  • Shared/ios/AuxiliaryProcessIOS.mm:

(WebKit::AuxiliaryProcess::platformInitialize): Deleted.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::initializeTimerCoalescingPolicy): Deleted.
(WebKit::AuxiliaryProcess::platformInitialize): Deleted.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
Plumb the client bundle identifer and SDK version to all auxiliary processes
at process initialization time instead of InitializeWebProcess/NetworkProcess
message receipt time, closing the window in which it is invalid to use
bundle checks, and ensuring that bundle checks work in all processes.

Mar 24, 2021:

11:10 PM Changeset in webkit [275012] by dino@apple.com
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Metal ANGLE non-blockers: Fix webgl/1.0.3/conformance/uniforms/uniform-default-values.html, Stencil debug layer assertions
https://bugs.webkit.org/show_bug.cgi?id=223667

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

On Release, uniformDefaultValues was resetting program memory
either early, or oddly. Since program reflection should be constant
per Shader anyway, drop the 'reset' after assigning reflection data.

In addition, clamp stencil rectangle to always be within framebuffer bounds. Code taken from upstream ANGLE.

Patch by Kyle Piddington <Kyle Piddington> on 2021-03-24
Reviewed by Dean Jackson.

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

(rx::ProgramMtl::linkImplDirect):

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

(rx::mtl::RenderCommandEncoder::initAttachmentWriteDependencyAndScissorRect):
(rx::mtl::RenderCommandEncoder::restart):
(rx::mtl::RenderCommandEncoder::setScissorRect):

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

(rx::mtl::TranslatedShaderInfo::reset):
(rx::mtl::GlslangGetMSL):

10:46 PM Changeset in webkit [275011] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Crash in TextChecker::updateSpellingUIWithGrammarString()
https://bugs.webkit.org/show_bug.cgi?id=223716

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-03-24
Reviewed by Ryosuke Niwa.

Prevent a crash by checking the GrammarDetail's range.

  • UIProcess/mac/TextCheckerMac.mm:

(WebKit::TextChecker::updateSpellingUIWithGrammarString):

10:38 PM Changeset in webkit [275010] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK] Re-skip modern-media-controls tests after r274810

Unreviewed test gardening.

  • platform/gtk/TestExpectations: Skipping them again until proper

support is added.

10:28 PM Changeset in webkit [275009] by Lauro Moura
  • 3 edits in trunk/LayoutTests

[GLIB] Gardening already closed bug and a WPE flaky

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/wpe/TestExpectations:
8:23 PM Changeset in webkit [275008] by Russell Epstein
  • 2 edits in branches/safari-612.1.8-branch/Source/WTF

Cherry-pick r275003. rdar://problem/75819285

WTF::setPermissionsOfConfigPage() should allow its VM_FLAGS_PERMANENT workaround unconditionally.
https://bugs.webkit.org/show_bug.cgi?id=223725
rdar://75813316

Reviewed by Saam Barati.

If the OS does not support the flag, then we should not require it.

  • wtf/WTFConfig.cpp: (WTF::setPermissionsOfConfigPage):

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

8:23 PM Changeset in webkit [275007] by Russell Epstein
  • 2 edits in branches/safari-612.1.8-branch/Source/WTF

Cherry-pick r274898. rdar://problem/75819592

Don't require VM_FLAGS_PERMANENT on the simulator builds
https://bugs.webkit.org/show_bug.cgi?id=223649
<rdar://problem/75747788>

Reviewed by Alexey Proskuryakov.

Since VM_FLAGS_PERMANENT must be supported by the kernel, let's make
it so that the vm_map that passes this flag in can fail when running
on the simulator. This is to support the use case of running a newer
simulator on an older OS. When the call to vm_map fails when running
on the simulator, we try again without the VM_FLAGS_PERMANENT flag.

  • wtf/WTFConfig.cpp: (WTF::setPermissionsOfConfigPage):

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

7:58 PM Changeset in webkit [275006] by Russell Epstein
  • 1 copy in tags/Safari-612.1.7.9

Tag Safari-612.1.7.9.

7:58 PM Changeset in webkit [275005] by Russell Epstein
  • 1 delete in tags/Safari-612.1.7.9

Delete tag.

7:57 PM Changeset in webkit [275004] by Russell Epstein
  • 2 edits in branches/safari-612.1.7-branch/Source/WTF

Cherry-pick r275003. rdar://problem/75813316

WTF::setPermissionsOfConfigPage() should allow its VM_FLAGS_PERMANENT workaround unconditionally.
https://bugs.webkit.org/show_bug.cgi?id=223725
rdar://75813316

Reviewed by Saam Barati.

If the OS does not support the flag, then we should not require it.

  • wtf/WTFConfig.cpp: (WTF::setPermissionsOfConfigPage):

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

7:53 PM Changeset in webkit [275003] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

WTF::setPermissionsOfConfigPage() should allow its VM_FLAGS_PERMANENT workaround unconditionally.
https://bugs.webkit.org/show_bug.cgi?id=223725
rdar://75813316

Reviewed by Saam Barati.

If the OS does not support the flag, then we should not require it.

  • wtf/WTFConfig.cpp:

(WTF::setPermissionsOfConfigPage):

7:31 PM Changeset in webkit [275002] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WTF

Use StaticStringImpl instead of StringImpl::createStaticStringImpl if it is not dynamic string content
https://bugs.webkit.org/show_bug.cgi?id=223714

Reviewed by Saam Barati.

We should just use StaticStringImpl instead of StringImpl::createStaticStringImpl if the string content is
not dynamically allocated one. Keep in mind that this URL code is strongly assuming that internal StringImpl
is static so that this string (and URL) can be used in multiple threads. And StaticStringImpl meets this requirement.

  • wtf/URL.cpp:

(WTF::aboutBlankURL):
(WTF::aboutSrcDocURL):

7:20 PM Changeset in webkit [275001] by Robert Jenner
  • 3 edits in trunk/LayoutTests

[ Debug ] http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html and one other test are flakey timeouts
https://bugs.webkit.org/show_bug.cgi?id=223724

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations: Updated test expectations to Pass Timeout while test is reviewed.
  • platform/mac/TestExpectations: Updated test expectations to Pass Timeout while test is reviewed.
7:10 PM Changeset in webkit [275000] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.2.5

Tag Safari-611.1.21.2.5.

7:08 PM Changeset in webkit [274999] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.2-branch/Source/WebCore

Cherry-pick r273868. rdar://problem/75764823

Crash in removeSymbolElementsFromSubtree()
https://bugs.webkit.org/show_bug.cgi?id=222397

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-03-03
Reviewed by Ryosuke Niwa.

Skip children in removeSymbolElementsFromSubtree(), so that
we don't see nodes that have been removed in disassociateAndRemoveClones.

Thanks to Darin Adler for the initial version of this patch
and Ryosuke Niwa for refinements.

  • svg/SVGUseElement.cpp: (WebCore::removeSymbolElementsFromSubtree):

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

7:07 PM Changeset in webkit [274998] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.2-branch/Source

Versioning.

WebKit-7611.1.21.2.5

6:55 PM Changeset in webkit [274997] by ysuzuki@apple.com
  • 16 edits in trunk

All string resources from UserAgentStyleSheets / UserAgentScripts should be used as non-copying StringImpl
https://bugs.webkit.org/show_bug.cgi?id=223685

Reviewed by Saam Barati.

Source/WebCore:

We use StringImpl::createWithoutCopying for string resources from UserAgentStyleSheets / UserAgentScripts to make sure that
these resources do not allocate heap strings.

This patch also fixes HTMLMeterElement's bug (and imageOverlayUserAgentStyleSheet's bug). Previously, we are using String::ConstructFromLiteral,
but this only accepts string literal as it says. As a result, we are dropping the last character since UserAgentStyleSheets's last character is not \0.

  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::quickTimePluginReplacementScript):

  • WebCoreMacros.cmake:
  • dom/Document.cpp:

(WebCore::Document::ensurePlugInsInjectedScript):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::updateWithImageExtractionResult):

  • html/HTMLMeterElement.cpp:

(WebCore::HTMLMeterElement::didAddUserAgentShadowRoot):

  • rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::extraDefaultStyleSheet):
(WebCore::RenderThemeAdwaita::extraMediaControlsStyleSheet):
(WebCore::RenderThemeAdwaita::mediaControlsScripts):

  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::mediaControlsStyleSheet):
(WebCore::RenderThemeCocoa::mediaControlsScripts):

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::extraDefaultStyleSheet):
(WebCore::RenderThemeWin::extraQuirksStyleSheet):

  • style/UserAgentStyle.cpp:

(WebCore::Style::UserAgentStyle::initDefaultStyleSheet):
(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):

Source/WebDriver:

  • Session.cpp:

(WebDriver::Session::fullscreenWindow):
(WebDriver::Session::findElements):
(WebDriver::Session::isElementSelected):
(WebDriver::Session::isElementEnabled):
(WebDriver::Session::isElementDisplayed):
(WebDriver::Session::getElementAttribute):
(WebDriver::Session::elementClear):

Source/WTF:

Add StringImpl::createWithoutCopying for const char*.

  • wtf/text/StringImpl.h:

(WTF::StringImpl::createWithoutCopying):

LayoutTests:

  • fast/dom/HTMLMeterElement/meter-element-markup-expected.txt:
6:50 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
6:48 PM Changeset in webkit [274996] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

bindings/js/JSEventListener.cpp:281:91: runtime error: reference binding to null pointer of type 'WebCore::ScriptExecutionContext'
https://bugs.webkit.org/show_bug.cgi?id=223719

Reviewed by Darin Adler.

Make sure we null check the scriptExecutionContext before we dereference it.

  • bindings/js/JSEventListener.cpp:

(WebCore::eventHandlerAttribute):
(WebCore::windowEventHandlerAttribute):

6:42 PM Changeset in webkit [274995] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS Wk2 ]inspector/indexeddb/clearObjectStore.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=222140

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating test expectations to include Pass Failure Timeout.
6:36 PM Changeset in webkit [274994] by Russell Epstein
  • 1 copy in tags/Safari-612.1.7.9

Tag Safari-612.1.7.9.

6:33 PM Changeset in webkit [274993] by Russell Epstein
  • 2 edits in branches/safari-612.1.7-branch/Source/WTF

Cherry-pick r274898. rdar://problem/75815633

Don't require VM_FLAGS_PERMANENT on the simulator builds
https://bugs.webkit.org/show_bug.cgi?id=223649
<rdar://problem/75747788>

Reviewed by Alexey Proskuryakov.

Since VM_FLAGS_PERMANENT must be supported by the kernel, let's make
it so that the vm_map that passes this flag in can fail when running
on the simulator. This is to support the use case of running a newer
simulator on an older OS. When the call to vm_map fails when running
on the simulator, we try again without the VM_FLAGS_PERMANENT flag.

  • wtf/WTFConfig.cpp: (WTF::setPermissionsOfConfigPage):

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

6:28 PM Changeset in webkit [274992] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Port FontDescriptionKey::computeHash() from legacy IntegerHasher to Hasher
https://bugs.webkit.org/show_bug.cgi?id=223701

Reviewed by Darin Adler.

Port FontDescriptionKey::computeHash() from legacy IntegerHasher to Hasher. Hasher
has the benefit of having add() overloads that take in signed integer types.

  • platform/graphics/FontCache.h:

(WebCore::FontDescriptionKey::computeHash const):

6:24 PM Changeset in webkit [274991] by Russell Epstein
  • 8 edits in branches/safari-612.1.7-branch/Source

Versioning.

WebKit-7612.1.7.9

6:06 PM Changeset in webkit [274990] by commit-queue@webkit.org
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Metal ANGLE crashes LayoutTests/inspector/canvas/updateShader-webgl.html

Rather than rely on an instance variable in a C++ class, just query the dictionary constant when needed.

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

Patch by Kyle Piddington <Kyle Piddington> on 2021-03-24
Reviewed by Dean Jackson.

  • src/libANGLE/renderer/metal/ProgramMtl.h:
  • src/libANGLE/renderer/metal/ProgramMtl.mm:

(rx::ProgramMtl::ProgramMtl):
(rx::ProgramMtl::linkImplSpirv):
(rx::ProgramMtl::linkImplDirect):
(rx::ProgramMtl::linkTranslatedShaders):

5:46 PM Changeset in webkit [274989] by Chris Dumez
  • 20 edits in trunk/Source

Extend WebAudio heap allocation assertions to cover the pre & post-rendering phases
https://bugs.webkit.org/show_bug.cgi?id=223640

Reviewed by Sam Weinig.

Extend WebAudio heap allocation assertions to cover the pre & post-rendering phases. I had to add
exceptions for some heap allocations that are currently happening during this phase but I
will work to reduce the number of exceptions in follow-ups.

  • Modules/webaudio/AudioDestinationNode.cpp:

(WebCore::AudioDestinationNode::render):

  • Modules/webaudio/AudioNodeInput.cpp:

(WebCore::AudioNodeInput::updateInternalBus):

  • Modules/webaudio/AudioNodeOutput.cpp:

(WebCore::AudioNodeOutput::updateInternalBus):

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::addAutomaticPullNode):
(WebCore::BaseAudioContext::updateAutomaticPullNodes):

  • platform/audio/AudioDSPKernelProcessor.cpp:

(WebCore::AudioDSPKernelProcessor::initialize):

5:33 PM Changeset in webkit [274988] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r274983.

  • Modules/mediasession/MediaSession.h:
5:30 PM Changeset in webkit [274987] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.0.11

Tag Safari-611.1.21.0.11.

5:24 PM Changeset in webkit [274986] by Jonathan Bedard
  • 4 edits in trunk/Tools

Autoinstalling keyring-7.3.1 is failing with Python 2
https://bugs.webkit.org/show_bug.cgi?id=223677
<rdar://problem/75800504>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version, add setuptools_scm.
  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:

(Package.install): Always install setuptools_scm.

5:05 PM Changeset in webkit [274985] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Move TelephoneNumberDetector preloading off the main thread
https://bugs.webkit.org/show_bug.cgi?id=223715

Reviewed by Geoffrey Garen.

Move TelephoneNumberDetector preloading off the main thread. We have evidence that prewarmGlobally() can be slow and hang the main
thread for too long (rdar://75279383). As a result, it is a good idea to prewarm things off the main thread whenever possible.

  • page/ProcessWarming.cpp:

(WebCore::ProcessWarming::prewarmGlobally):

  • platform/TelephoneNumberDetector.h:
  • platform/cocoa/TelephoneNumberDetectorCocoa.cpp:

(WebCore::TelephoneNumberDetector::phoneNumbersScanner):
(WebCore::TelephoneNumberDetector::prewarm):

5:04 PM Changeset in webkit [274984] by Lauro Moura
  • 2 edits
    1 delete in trunk/LayoutTests

REGRESSION(r274919) [ATK] accessibility/set-selected-text-range-contenteditable.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=223710

Reviewed by Adrian Perez de Castro.

r274919 clamped the values passed to the accessibility elements,
making the {-1,0} text range to be collapsed to {0,0} as text ranges
are composed of unsigned ints.

This commit updates the test to remove the ATK-specific case of
passing -1 to point to the final offset of a text range.

  • accessibility/set-selected-text-range-contenteditable.html: Remove

ATK-specific quirk.

  • platform/glib/accessibility/set-selected-text-range-contenteditable-expected.txt: Removed.
4:14 PM Changeset in webkit [274983] by eric.carlson@apple.com
  • 34 edits
    7 copies
    7 adds in trunk

[Cocoa] Add Experimental MediaSession coordinator
https://bugs.webkit.org/show_bug.cgi?id=222158
<rdar://problem/74508862>

Reviewed by Jer Noble.

Source/WebCore:

Add an experimental MediaSession coordinator, an object that provides an interface
that allows script to coordinate changes to MediaSession with the User Agent. Also
add an experimental MediaSession playlist interface.

The changes are behind new experimental feature flags,
MediaSessionCoordinatorEnabled and MediaSessionPlaylistEnabled.

Test: media/media-session/mock-coordinator.html

  • DerivedSources-input.xcfilelist: Add new IDL files.
  • DerivedSources-output.xcfilelist: Add new derived sources.
  • DerivedSources.make: Add new IDL.
  • Modules/mediasession/MediaMetadata.cpp:

(WebCore::MediaMetadata::create): Set trackIdentifier from init data.
(WebCore::MediaMetadata::setTrackIdentifier): trackIdentifier setter.

  • Modules/mediasession/MediaMetadata.h:

(WebCore::MediaMetadata::trackIdentifier const):

  • Modules/mediasession/MediaMetadata.idl:
  • Modules/mediasession/MediaMetadataInit.h: Add trackIdentifier.

(WebCore::MediaMetadataInit::encode const):
(WebCore::MediaMetadataInit::decode):

  • Modules/mediasession/MediaMetadataInit.idl:
  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::MediaSession): Initialize MainThreadGenericEventQueue.
(WebCore::MediaSession::setMetadata): metadataUpdated -> notifyMetadataObservers.
(WebCore::MediaSession::setReadyState): Session readyState setter.
(WebCore::MediaSession::setCoordinator): Coordinator setter. Post 'coordinatorchange'
event after change.
(WebCore::MediaSession::setPlaylist): Playlist setter.
(WebCore::MediaSession::setActionHandler): Call notifyActionHandlerObservers.
(WebCore::MediaSession::setPositionState): Call notifyPositionStateObservers.
(WebCore::MediaSession::metadataUpdated): Call notifyMetadataObservers.
(WebCore::MediaSession::addObserver): New.
(WebCore::MediaSession::removeObserver): New.
(WebCore::MediaSession::forEachObserver): New.
(WebCore::MediaSession::notifyMetadataObservers): New.
(WebCore::MediaSession::notifyPositionStateObservers): New.
(WebCore::MediaSession::notifyPlaybackStateObservers): New.
(WebCore::MediaSession::notifyActionHandlerObservers): New.
(WebCore::MediaSession::notifyReadyStateObservers): New.

  • Modules/mediasession/MediaSession.h:

(WebCore::MediaSession::coordinator const):
(WebCore::MediaSession::playlist const):
(WebCore::MediaSession::logger const):

  • Modules/mediasession/MediaSession.idl:
  • Modules/mediasession/MediaSessionAction.h:
  • Modules/mediasession/MediaSessionAction.idl:
  • Modules/mediasession/MediaSessionActionDetails.h:
  • Modules/mediasession/MediaSessionActionDetails.idl:

MediaSessionCoordinator proxies calls through the PlatformMediaSessionCoordinator,
and then calls the equivalent MediaSession methode if the platform coordinator
is successful.

  • Modules/mediasession/MediaSessionCoordinator.cpp: Added.

(WebCore::nextCoordinatorLogIdentifier):
(WebCore::MediaSessionCoordinator::create):
(WebCore::MediaSessionCoordinator::MediaSessionCoordinator):
(WebCore::MediaSessionCoordinator::seekTo):
(WebCore::MediaSessionCoordinator::play):
(WebCore::MediaSessionCoordinator::pause):
(WebCore::MediaSessionCoordinator::setTrack):
(WebCore::MediaSessionCoordinator::setMediaSession):
(WebCore::MediaSessionCoordinator::logChannel):

  • Modules/mediasession/MediaSessionCoordinator.h: New.

(WebCore::MediaSessionCoordinator::logger const):
(WebCore::MediaSessionCoordinator::logIdentifier const):
(WebCore::MediaSessionCoordinator::logClassName):

  • Modules/mediasession/MediaSessionCoordinator.idl: New.
  • Modules/mediasession/NavigatorMediaSession.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventNames.h:
  • dom/EventTargetFactory.in:
  • platform/graphics/PlatformMediaSessionCoordinator.h: Added.

(WebCore::PlatformMediaSessionCoordinator::setLogger):
(WebCore::PlatformMediaSessionCoordinator::loggerPtr const):
(WebCore::PlatformMediaSessionCoordinator::logIdentifier const):
(WebCore::PlatformMediaSessionCoordinator::logClassName const):
(WebCore::PlatformMediaSessionCoordinator::logChannel const):

  • testing/Internals.cpp:

(WebCore::Internals::registerMockMediaSessionCoordinator): Register the mock
media session coordinator for testing.

  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/MockMediaSessionCoordinator.cpp: Added.

(WebCore::MockMediaSessionCoordinator::create):
(WebCore::MockMediaSessionCoordinator::MockMediaSessionCoordinator):
(WebCore::MockMediaSessionCoordinator::seekTo):
(WebCore::MockMediaSessionCoordinator::play):
(WebCore::MockMediaSessionCoordinator::pause):
(WebCore::MockMediaSessionCoordinator::setTrack):

  • testing/MockMediaSessionCoordinator.h: New.

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • wtf/PlatformEnableCocoa.h:

LayoutTests:

  • platform/TestExpectations:
  • media/media-session/mock-coordinator-expected.txt: Added.
  • media/media-session/mock-coordinator.html: Added.
4:02 PM Changeset in webkit [274982] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Preload graphics drivers on a background thread instead of the main thread
https://bugs.webkit.org/show_bug.cgi?id=223713

Reviewed by Simon Fraser.

Preload graphics drivers on a background thread instead of the main thread. We have evidence of prewarmGlobally() hanging
the main thread (rdar://75279383) so we should do pre-warming off the main thread whenever possible.

r265418 introduced this graphics loader preloading and an earlier version of this patch was simply calling MTLCopyAllDevices()
on a background queue. However, that patch was updated before landing to do the work on the main thread. I think we should go
back to the earlier iteration.

  • page/ProcessWarming.cpp:

(WebCore::ProcessWarming::prewarmGlobally):

  • platform/graphics/gpu/GPUDevice.h:
  • platform/graphics/gpu/cocoa/GPUDeviceMetal.mm:

(WebCore::GPUDevice::prewarm):

  • platform/graphics/gpu/dawn/GPUDeviceDawn.cpp:

(WebCore::GPUDevice::prewarm):

4:01 PM Changeset in webkit [274981] by Russell Epstein
  • 8 edits in trunk/Source

Versioning.

WebKit-7612.1.9

3:49 PM Changeset in webkit [274980] by Russell Epstein
  • 3 edits in branches/safari-612.1.8-branch/Source/WebKit

Cherry-pick r274955. rdar://problem/75802809

The media accessibility service is not an XPC service
https://bugs.webkit.org/show_bug.cgi?id=223699
<rdar://75750989>

Reviewed by Brent Fulgham.

The media accessibility service is not an XPC service, but is listed as such in the sandbox.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:

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

3:26 PM Changeset in webkit [274979] by Alan Coon
  • 1 copy in tags/Safari-611.1.21.1.16

Tag Safari-611.1.21.1.16.

3:25 PM Changeset in webkit [274978] by graouts@webkit.org
  • 3 edits
    4 adds in trunk

Fix interpolation of the border-spacing property
https://bugs.webkit.org/show_bug.cgi?id=223702

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Import the border-spacing interpolation test with its 120 tests passing.

  • web-platform-tests/css/css-tables/animations/border-spacing-interpolation-expected.txt: Added.
  • web-platform-tests/css/css-tables/animations/border-spacing-interpolation.html: Added.

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/css-tables/animations/border-spacing-interpolation.html

While we already supported animation of border-spacing, we did not correctly clip the interpolated
value to 0.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

3:07 PM Changeset in webkit [274977] by Simon Fraser
  • 7 edits in trunk/Source

Add DisplayLink log channels in WebCore and WebKit
https://bugs.webkit.org/show_bug.cgi?id=223669

Reviewed by Tim Horton.
Source/WebCore:

DisplayRefreshMonitor code involves some non-trivial object
fan-out and WebProcess/UI Process interaction, and it deserves
a log channel.

  • platform/Logging.h:
  • platform/graphics/DisplayRefreshMonitor.cpp:

(WebCore::DisplayRefreshMonitor::displayDidRefresh):

  • platform/graphics/DisplayRefreshMonitorManager.cpp:

(WebCore::DisplayRefreshMonitorManager::monitorForClient):
(WebCore::DisplayRefreshMonitorManager::displayDidRefresh):

Source/WebKit:

DisplayRefreshMonitor code involves some non-trivial object
fan-out and WebProcess/UI Process interaction, and it deserves
a log channel.

  • Platform/Logging.h:
  • WebProcess/WebPage/mac/DisplayRefreshMonitorMac.cpp:

(WebKit::DisplayRefreshMonitorMac::displayLinkFired):

2:57 PM Changeset in webkit [274976] by commit-queue@webkit.org
  • 4 edits in trunk

REGRESSION(r274870) fast/canvas/webgl/texImage2D-mse-flipY-true.html and fast/canvas/webgl/texImage2D-mse-flipY-false.html are crashing
https://bugs.webkit.org/show_bug.cgi?id=223674

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-24
Reviewed by Kenneth Russell.

Source/WebCore:

When the srcObject is directly set on a media element, the corresponding URL might still be
empty, so we need to ensure the URI corresponding to the MediaSource blob is not empty,
otherwise uridecodebin would fail to create the right source element.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::load):

LayoutTests:

  • platform/glib/TestExpectations:
2:32 PM Changeset in webkit [274975] by Chris Gambrell
  • 42 edits
    2 moves
    8 adds
    8 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/resourceLoadStatistics convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=223541
<rdar://problem/75639142>

Reviewed by Jonathan Bedard.

  • http/tests/resourceLoadStatistics/add-blocking-to-redirect.html:
  • http/tests/resourceLoadStatistics/blocking-in-web-worker-script-import.html:
  • http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource-expected.txt:
  • http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource.html:
  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-collusion.html:
  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion.html:
  • http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-1p-cname.html:
  • http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-3p-cname.html:
  • http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-matching-cname.html:
  • http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-no-cname.html:
  • http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-1p-cname.html:
  • http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-3p-cname.html:
  • http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-no-cname.html:
  • http/tests/resourceLoadStatistics/cookie-deletion.html:
  • http/tests/resourceLoadStatistics/cookies-with-and-without-user-interaction.html:
  • http/tests/resourceLoadStatistics/do-not-block-top-level-navigation-redirect.html:
  • http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect.html:
  • http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction.php: Removed.
  • http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction.py: Added.
  • http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other.html:
  • http/tests/resourceLoadStatistics/grandfathering.html:
  • http/tests/resourceLoadStatistics/no-third-party-cookie-blocking-when-itp-is-off.html:
  • http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context.html:
  • http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
  • http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
  • http/tests/resourceLoadStatistics/ping-to-prevalent-resource.html:
  • http/tests/resourceLoadStatistics/resources/cached-permanent-redirect.php:
  • http/tests/resourceLoadStatistics/resources/echo-query.php: Removed.
  • http/tests/resourceLoadStatistics/resources/echo-query.py: Added.
  • http/tests/resourceLoadStatistics/resources/echo-referrer.php: Removed.
  • http/tests/resourceLoadStatistics/resources/echo-referrer.py: Added.
  • http/tests/resourceLoadStatistics/resources/get-cookies.php: Removed.
  • http/tests/resourceLoadStatistics/resources/get-cookies.py: Added.
  • http/tests/resourceLoadStatistics/resources/page-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
  • http/tests/resourceLoadStatistics/resources/page-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
  • http/tests/resourceLoadStatistics/resources/page-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
  • http/tests/resourceLoadStatistics/resources/page-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
  • http/tests/resourceLoadStatistics/resources/redirect.php: Removed.
  • http/tests/resourceLoadStatistics/resources/redirect.py: Added.
  • http/tests/resourceLoadStatistics/resources/script-revealing-cookies.php: Removed.
  • http/tests/resourceLoadStatistics/resources/script-revealing-cookies.py: Added.
  • http/tests/resourceLoadStatistics/resources/set-all-kinds-of-cookies.php: Removed.
  • http/tests/resourceLoadStatistics/resources/set-all-kinds-of-cookies.py: Added.
  • http/tests/resourceLoadStatistics/resources/set-cookie-on-redirect.php: Removed.
  • http/tests/resourceLoadStatistics/resources/set-cookie-on-redirect.py: Added.
  • http/tests/resourceLoadStatistics/resources/set-cookie.php: Removed.
  • http/tests/resourceLoadStatistics/resources/set-cookie.py: Added.
  • http/tests/resourceLoadStatistics/resources/worker-importing-localhost-script.js:

(onmessage):

  • http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
  • http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
  • http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict.html:
  • http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-third-party-redirects.html:
  • http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-third-party-requests.html:
  • http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction.php: Removed.
  • http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction.py: Added.
  • http/tests/resourceLoadStatistics/third-party-cookie-blocking-ephemeral.html:
  • http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html:
  • http/tests/resourceLoadStatistics/third-party-cookie-blocking.html:
  • http/tests/storageAccess/resources/self-navigating-frame-after-granted-access.html:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
2:17 PM Changeset in webkit [274974] by Russell Epstein
  • 1 copy in tags/Safari-612.1.7.8

Tag Safari-612.1.7.8.

1:56 PM Changeset in webkit [274973] by Russell Epstein
  • 8 edits in branches/safari-612.1.7-branch/Source

Versioning.

WebKit-7612.1.7.8

1:49 PM Changeset in webkit [274972] by Russell Epstein
  • 1 copy in tags/Safari-612.1.7.7

Tag Safari-612.1.7.7.

1:45 PM Changeset in webkit [274971] by Russell Epstein
  • 3 edits in branches/safari-612.1.7-branch/Source/WebKit

Cherry-pick r274955. rdar://problem/75750989

The media accessibility service is not an XPC service
https://bugs.webkit.org/show_bug.cgi?id=223699
<rdar://75750989>

Reviewed by Brent Fulgham.

The media accessibility service is not an XPC service, but is listed as such in the sandbox.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:

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

1:44 PM Changeset in webkit [274970] by Russell Epstein
  • 8 edits in branches/safari-612.1.7-branch/Source

Versioning.

WebKit-7612.1.7.7

1:40 PM Changeset in webkit [274969] by Kate Cheney
  • 3 edits in trunk/Source/WebKit

Remove deprecated WKMediaPlayback APIs
https://bugs.webkit.org/show_bug.cgi?id=223704
<rdar://problem/74611683>

Reviewed by Tim Horton.

We kept these API around after updating the names to give clients
time to adopt the new versions. We can remove them now.

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

(-[WKWebView pauseAllMediaPlayback:]): Deleted.
(-[WKWebView suspendAllMediaPlayback:]): Deleted.
(-[WKWebView resumeAllMediaPlayback:]): Deleted.
(-[WKWebView closeAllMediaPresentations:]): Deleted.
(-[WKWebView requestMediaPlaybackState:]): Deleted.

1:37 PM Changeset in webkit [274968] by Chris Fleizach
  • 7 edits in trunk/Tools

AX: Add functions rectsForTextMarkerRange for testing
https://bugs.webkit.org/show_bug.cgi?id=223705
<rdar://problem/75797361>

Reviewed by Zalan Bujtas.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::rectsForTextMarkerRange):

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::rectsForTextMarkerRange):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::rectsForTextMarkerRange):

  • WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp:

(WTR::AccessibilityUIElement::rectsForTextMarkerRange):

1:11 PM Changeset in webkit [274967] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Call InitializeWebKit2 when initializing a _WKUserInitiatedAction
https://bugs.webkit.org/show_bug.cgi?id=223708
<rdar://75788877>

Reviewed by Chris Dumez.

There is a test that deallocates a _WKUserInitiatedAction before anything calls InitializeWebKit2.
Calling constructInWrapper calls InitializeWebKit2.
Since r274227 it has been asserting s_mainRunLoop in RunLoop::isMain. This fixes it.
We don't have test infrastructure to test this in WebKit because TestWebKitAPI initializes the main thread for us before doing anything.

  • UIProcess/API/APIUserInitiatedAction.h:
  • UIProcess/API/Cocoa/_WKUserInitiatedAction.mm:

(-[_WKUserInitiatedAction init]):

1:01 PM Changeset in webkit [274966] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.7.6

Tag Safari-612.1.7.6.

12:57 PM Changeset in webkit [274965] by Aditya Keerthi
  • 4 edits in trunk/Source/WebCore

REGRESSION (r273154): [iOS] Two magnifier symbols on google.com
https://bugs.webkit.org/show_bug.cgi?id=223700
<rdar://problem/75357965>

Reviewed by Tim Horton.

The iOS form control refresh added a magnifier symbol to
the default appearance of <input type="search">. On iPhone, google.com
uses <input type="search"> for their search field, while drawing their
own magnifier symbol. As a result, two magnifier symbols appear.

Note that on macOS and iPadOS, google.com uses an <input type="text">,
which means this problem is only observed on iPhone. Ideally, google.com
should adopt <input type="text"> on the iPhone version of the site,
matching the other platforms. However, in the meantime, we can hide our
symbol using a quirk.

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::SearchFieldResultsButtonElement::SearchFieldResultsButtonElement):

Hide the symbol if the quirk applies.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldHideSearchFieldResultsButton const):

Add a quirk to hide the magnifier symbol on google.com and other country
domains.

  • page/Quirks.h:
12:50 PM Changeset in webkit [274964] by Chris Gambrell
  • 3 edits
    2 adds
    2 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/performance convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=223599
<rdar://problem/75707991>

Reviewed by Jonathan Bedard.

  • http/tests/performance/paint-timing/performance-paint-timing-fcp-after-visually-non-empty-for-num-chars.html:
  • http/tests/performance/paint-timing/performance-paint-timing-fcp-after-visually-non-empty-for-style.html:
  • http/tests/performance/paint-timing/resources/slowscript.php: Removed.
  • http/tests/performance/paint-timing/resources/slowscript.py: Added.
  • http/tests/performance/paint-timing/resources/slowstyle.php: Removed.
  • http/tests/performance/paint-timing/resources/slowstyle.py: Added.
12:48 PM Changeset in webkit [274963] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Add logging to check whether RealtimeOutgoingVideoSource is applying rotation or not
https://bugs.webkit.org/show_bug.cgi?id=223691

Reviewed by Eric Carlson.

No change of behavior.

  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm:

(WebCore::RealtimeOutgoingVideoSourceCocoa::rotatePixelBuffer):

12:42 PM Changeset in webkit [274962] by Chris Gambrell
  • 7 edits
    4 moves
    2 adds
    2 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/preload convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=223602
<rdar://problem/75709989>

Reviewed by Jonathan Bedard.

  • TestExpectations:
  • http/tests/preload/download_resources_from_header_iframe.html:
  • http/tests/preload/link-header-on-subresource-expected.txt:
  • http/tests/preload/link-header-on-subresource.html:
  • http/tests/preload/preload-encoding.php: Removed.
  • http/tests/preload/preload-encoding.py: Added.
  • http/tests/preload/resources/download_resources_from_header.php: Removed.
  • http/tests/preload/resources/download_resources_from_header.py: Added.
  • http/tests/preload/resources/dummy-preloads-subresource.css.php: Removed.
  • http/tests/preload/resources/dummy-preloads-subresource.css.py: Added.
  • http/tests/preload/single_download_preload_headers.php: Removed.
  • http/tests/preload/single_download_preload_headers.py: Added.
  • http/tests/preload/single_download_preload_headers_charset.php: Removed.
  • http/tests/preload/single_download_preload_headers_charset.py: Added.
  • http/tests/preload/viewport/meta-viewport-link-headers.php: Removed.
  • http/tests/preload/viewport/meta-viewport-link-headers.py: Added.
  • platform/ios/TestExpectations:
  • platform/win/TestExpectations:
12:35 PM Changeset in webkit [274961] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Update GPUProcess sandbox to support camera access
https://bugs.webkit.org/show_bug.cgi?id=223681

Reviewed by Eric Carlson.

Give access to com.apple.appleh13camerad in GPUProcess.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
12:31 PM Changeset in webkit [274960] by Razvan Caliman
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION (r269359): Timelines: TypeError: this.deselect is not a function
https://bugs.webkit.org/show_bug.cgi?id=223698
<rdar://problem/75790983>

Reviewed by BJ Burg.

Ensure individual timeline views can be closed to return to the Timelines overview.

  • UserInterface/Views/TimelineTreeElement.js:

(WI.TimelineTreeElement.prototype._showCloseButton):

12:30 PM Changeset in webkit [274959] by Chris Dumez
  • 4 edits in trunk

Address undefined behavior found by UBSan in StringToIntegerConversion.h
https://bugs.webkit.org/show_bug.cgi?id=223694

Reviewed by Geoffrey Garen.

Source/WTF:

Update StringToIntegerConversion to deal with overflows in a well-defined manner,
by relying on CheckedArithmetics. This addresses undefined behavior reborted by
UBSan:

  • wtf/text/StringToIntegerConversion.h:94:30: runtime error: signed integer overflow: 2147483640 + 8 cannot be represented in type 'int'
  • wtf/text/StringToIntegerConversion.h:104:17: runtime error: negation of -2147483648 cannot be represented in type 'int'; cast to an unsigned type to negate this value to itself
  • wtf/text/StringToIntegerConversion.h:

(WTF::toIntegralType):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):

12:30 PM Changeset in webkit [274958] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Source/WebCore/page/FrameView.h:990:50: runtime error: signed integer overflow: 65537 * 65537 cannot be represented in type 'int'
https://bugs.webkit.org/show_bug.cgi?id=223697

Reviewed by Darin Adler.

Make sure FrameView::incrementVisuallyNonEmptyPixelCount() deals with overflows in a well-defined
manner. This fixes the following reports from UBSan:

  • Source/WebCore/page/FrameView.h:990:50: runtime error: signed integer overflow: 65537 * 65537 cannot be represented in type 'int'
  • Source/WebCore/page/FrameView.h:990:50: runtime error: signed integer overflow: 65536 * 65536 cannot be represented in type 'int'
  • Source/WebCore/page/FrameView.h:990:50: runtime error: signed integer overflow: 1116300 * 558150 cannot be represented in type 'int'
  • Source/WebCore/page/FrameView.h:990:50: runtime error: signed integer overflow: -33554432 * -33554432 cannot be represented in type 'int'
  • page/FrameView.h:

(WebCore::FrameView::incrementVisuallyNonEmptyPixelCount):

12:10 PM Changeset in webkit [274957] by commit-queue@webkit.org
  • 10 edits in trunk

[css-contain] Parse CSS contain property
https://bugs.webkit.org/show_bug.cgi?id=223252

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-24
Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Update test results because of not supporting style in contain property.

  • web-platform-tests/css/css-contain/content-visibility/content-visibility-026-expected.txt:
  • web-platform-tests/css/css-contain/parsing/contain-computed-expected.txt:
  • web-platform-tests/css/css-contain/parsing/contain-valid-expected.txt:

Source/WebCore:

Address post land review comments.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeContain):

  • rendering/style/RenderStyleConstants.h:
  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyValueContain):

12:02 PM Changeset in webkit [274956] by Ruben Turcios
  • 8 edits in branches/safari-611.1.21.0-branch/Source

Versioning.

WebKit-7611.1.21.0.11

11:59 AM Changeset in webkit [274955] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

The media accessibility service is not an XPC service
https://bugs.webkit.org/show_bug.cgi?id=223699
<rdar://75750989>

Reviewed by Brent Fulgham.

The media accessibility service is not an XPC service, but is listed as such in the sandbox.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
11:57 AM Changeset in webkit [274954] by Ruben Turcios
  • 2 edits in branches/safari-611.1.21.0-branch/Source/WebKit

Apply patch. rdar://problem/75744524

Aply patch. rdar://75744524

11:57 AM Changeset in webkit [274953] by Ruben Turcios
  • 2 edits in branches/safari-611.1.21.0-branch/Source/WebKit

Cherry-pick r274766. rdar://problem/75762455

Add an early return in UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList
https://bugs.webkit.org/show_bug.cgi?id=223571

Reviewed by Eric Carlson.

Update code to early return as soon as possible.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList):

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

11:24 AM Changeset in webkit [274952] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Enforce notifyd message filtering
https://bugs.webkit.org/show_bug.cgi?id=223601
<rdar://75098580>

Reviewed by Per Arne Vollan.

Enforce notifyd message filtering on macOS and iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
11:18 AM WebKitGTK/2.32.x edited by Philippe Normand
(diff)
11:17 AM Changeset in webkit [274951] by Robert Jenner
  • 2 edits in trunk/LayoutTests

Remove unused JS and CSS files of media controls
https://bugs.webkit.org/show_bug.cgi?id=214955

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations: Test expectation was removed in a webkit patch, casuing a slowdown on EWS. Re-adding test expectation to Failure.
11:03 AM Changeset in webkit [274950] by Ruben Turcios
  • 8 edits in branches/safari-612.1.7-branch/Source

Versioning.

WebKit-7612.1.7.6

10:50 AM Changeset in webkit [274949] by Kate Cheney
  • 2 edits in trunk/Tools

Followup to https://trac.webkit.org/changeset/274928/webkit

Unreviewed build fix.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
10:40 AM Changeset in webkit [274948] by Truitt Savell
  • 12 edits
    1 add in trunk

Unreviewed, reverting r274927.

Broke many tests in WebGL

Reverted changeset:

"Enable Metal ANGLE backend for WebGL"
https://bugs.webkit.org/show_bug.cgi?id=220076
https://commits.webkit.org/r274927

10:34 AM Changeset in webkit [274947] by weinig@apple.com
  • 9 edits in trunk

Update CSS Color 5 color-mix() implementation to match the latest draft spec
https://bugs.webkit.org/show_bug.cgi?id=223665

Reviewed by Simon Fraser.

Source/WebCore:

Update to the latest draft spec, which dramatically reduces the complexity of color-mix()
by remove per-component adjusters.

  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::normalizeWhitenessBlackness):
(WebCore::CSSPropertyParserHelpers::consumeColorMixColorSpaceAndComma):
(WebCore::CSSPropertyParserHelpers::consumeColorMixComponent):
(WebCore::CSSPropertyParserHelpers::normalizedMixPercentages):
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix):
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix<HWBA<float>>):
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix<HSLA<float>>):
(WebCore::CSSPropertyParserHelpers::fixupHueComponentsPriorToMix):
(WebCore::CSSPropertyParserHelpers::mixColorComponentsInColorSpace):
(WebCore::CSSPropertyParserHelpers::mixColorComponents):
(WebCore::CSSPropertyParserHelpers::parseColorMixFunctionParameters):
(WebCore::CSSPropertyParserHelpers::HueColorAdjuster::fixupAnglesForInterpolation): Deleted.
(WebCore::CSSPropertyParserHelpers::HueColorAdjuster::HueColorAdjuster): Deleted.
(WebCore::CSSPropertyParserHelpers::ColorAdjuster::ColorAdjuster): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAdjuster): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAndUpdateAdjusterAtIndex): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAndUpdateAdjuster): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAdjusters): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeMixComponents): Deleted.
(WebCore::CSSPropertyParserHelpers::normalizeAdjusterValues): Deleted.
(WebCore::CSSPropertyParserHelpers::remainingAdjustment): Deleted.
(WebCore::CSSPropertyParserHelpers::mixComponent): Deleted.
(WebCore::CSSPropertyParserHelpers::mixComponentAtIndex): Deleted.
(WebCore::CSSPropertyParserHelpers::mix): Deleted.
(WebCore::CSSPropertyParserHelpers::parseColorMixFunctionParametersUsingAdjusters): Deleted.
Update to the new syntax and remove component adjusters. They may come back for color-adjust()
in the future.

  • platform/graphics/ColorModels.h:
  • platform/graphics/ColorTypes.h:

(WebCore::clampedComponent):
(WebCore::assertInRange):

  • platform/graphics/ColorUtilities.h:

(WebCore::invertedColorWithOverriddenAlpha):
Add support in the color models for annotating more about each component, now including
the type (angle, number or percentage). This allows algorithms generic algorithms to
operate on abstract color type components without specializing for each color type.

LayoutTests:

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

Update test and results for vastly simplified color-mix().

10:31 AM Changeset in webkit [274946] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Address undefined behavior found by UBSan in DateMath.h
https://bugs.webkit.org/show_bug.cgi?id=223663

Reviewed by Darin Adler.

Address undefined behavior found by UBSan in DateMath.h
Release/usr/local/include/wtf/DateMath.h:247:39: runtime error: nan is outside the range of representable values of type 'int'
Release/usr/local/include/wtf/DateMath.h:221:29: runtime error: nan is outside the range of representable values of type 'int'
Release/usr/local/include/wtf/DateMath.h:165:38: runtime error: signed integer overflow: -2147483648 - 1 cannot be represented in type 'int'

  • wtf/DateMath.h:

(WTF::daysFrom1970ToYear):
Cast year to a double *before* substracting 1 instead of *after*. This works around the fact that INT_MIN-1 would not
fit in an int and would be undefined behavior.

(WTF::dayInYear):
(WTF::msToYear):
Deal with the double potentially being NaN before casting to an int, since
casting NaN to an int type has undefined behavior.

10:29 AM Changeset in webkit [274945] by msaboff@apple.com
  • 4 edits in trunk

[YARR] Interpreter incorrectly matches non-BMP characters with multiple . w/dotAll flag
https://bugs.webkit.org/show_bug.cgi?id=223666

Reviewed by Mark Lam.

JSTests:

Added tests for dotAll. Also made sure that we test both JIT and non-JIT execution.

  • stress/regexp-dot-match-nonBMP.js:

Source/JavaScriptCore:

In checkCharacterClassDontAdvanceInputForNonBMP(), we need to check for input.readChecked() returning -1
and return that the character class didn't match.

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::Interpreter::checkCharacterClassDontAdvanceInputForNonBMP):

10:03 AM Changeset in webkit [274944] by Brent Fulgham
  • 5 edits in trunk

[Cocoa] Revise loadSimulatedRequest API with final review comments (223657)
https://bugs.webkit.org/show_bug.cgi?id=223657
<rdar://75757727>

Reviewed by Alex Christensen.

Source/WebKit:

Tested by TestWebKitAPI.

Update the WKWebView API to match final review comments. Deprecate the prior draft API so that we
can smoothly transition away from the original methods.

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

(-[WKWebView loadSimulatedRequest:response:responseData:]):
(-[WKWebView loadSimulatedRequest:withResponse:responseData:]):
(-[WKWebView loadSimulatedRequest:responseHTMLString:]):
(-[WKWebView loadSimulatedRequest:withResponseHTMLString:]):

Tools:

Update tests to use the final API, while still exercising the existing API.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewLoadAPIs.mm:

(TEST):

9:59 AM Changeset in webkit [274943] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Use imxvideoconvert_g2d element inside the sink when available
https://bugs.webkit.org/show_bug.cgi?id=223693

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-03-24
Reviewed by Philippe Normand.

On some iMX platforms we require the use of imxvideoconvert_g2d element
in order to properly convert the visual buffers before they can be
rendered through our pipeline. We expect to require this buffer if it's
present in the GStreamer plugin registry on the system.

We search for this element and, if found, add it to the sink and
position it at the beginning, before the glupload element.

Based on an approach outlined by Gabriel Valcazar.

  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(webKitGLVideoSinkConstructed):

9:56 AM Changeset in webkit [274942] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

r271034 added code in constant folding phase that's unreachable given current invariants of our ICs and PutByIdStatus
https://bugs.webkit.org/show_bug.cgi?id=223625

Reviewed by Yusuke Suzuki.

The code was doing a lot of wrong things by making bad assumptions about the
invariants of PutByIdVariants. Replace PutByIdVariants never have object
property condition sets, since we always replace on the self object (and don't
look at the prototype chain). This patch clears up the code to make it
clearer what the invariants are.

With respect to the original fix about not emitting a PutByOffset for a
Replace on a Structure that has an unfired replacement watchpoint set,
that was already handled by the PutByIdStatus::computeFor variant we're
calling inside of constant folding. It will return TakesSlowPathif it
encounters a Replace where the Structure still has an unfired watchpoint.

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::tryFoldAsPutByOffset):

9:45 AM Changeset in webkit [274941] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Ignore middle commits during animated resize
https://bugs.webkit.org/show_bug.cgi?id=223530

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-03-24
Reviewed by Tim Horton.

For animated resize, UI process sets layer transform to fit new size until web process picks up size change and
paints. It is possible that UI process receives a commit during animated resize and the commit is not for the
animated resize (web process commits before animated resize). In this case, our current implementation is: if
SPI client species there will be no other update (!_waitingForEndAnimatedResize), we change layer transform to
reflect change of the middle commit.

However, that commit does not mean web process issues new paint, so the adjustment can be wrong. We find the
handling of middle commits causes issues in SPI client's use case (rdar://47623140). Also by manual testing,
it's not clear how the code can benefit current SPI clients. It seems to cause the same trouble sometimes. So
let's just remove it.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _didCommitLayerTreeDuringAnimatedResize:]):

9:01 AM Changeset in webkit [274940] by Ruben Turcios
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.16

8:14 AM Changeset in webkit [274939] by graouts@webkit.org
  • 4 edits
    2 adds in trunk

Support animation of the tab-size CSS property
https://bugs.webkit.org/show_bug.cgi?id=223688

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Import the tab-size interpolation test with its 196 tests passing.

  • web-platform-tests/css/css-text/animations/tab-size-interpolation-expected.txt: Added.
  • web-platform-tests/css/css-text/animations/tab-size-interpolation.html: Added.

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/css-text/animations/tab-size-interpolation.html

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • platform/graphics/TabSize.h:

(WebCore::TabSize::value const):
(WebCore::TabSize::operator bool const):

7:28 AM Changeset in webkit [274938] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Add IOKit method filter telemetry
https://bugs.webkit.org/show_bug.cgi?id=223652
<rdar://problem/75751391>

Reviewed by Brent Fulgham.

Add IOKit method filter telemetry in the WebContent sandbox on macOS and iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
6:12 AM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
4:02 AM Changeset in webkit [274937] by Pablo Saavedra
  • 2 edits in trunk/Source/WebKit

[WPE] Build error in ARMv7 invalid 'static_cast' for GLNativeWindowType
https://bugs.webkit.org/show_bug.cgi?id=223684

Fixes this error:

error: invalid 'static_cast' from type 'uintptr_t' {aka 'unsigned
int'} to type 'GLNativeWindowType' {aka 'void*'}

; an invalid 'static_cast' from type error for ARMv7 (rpi3 and mesa driver)
by using the same solution chosen in
https://bugs.webkit.org/show_bug.cgi?id=179511:

EGLNativeWindowType can be aliased to a different type depending (at least) on the EGL
implementation, its build options, and the libepoxy build options. Using "static_cast"
works when it is a numeric value and the width of the value needs to be optionally
extended to 64 bits (e.g. the EGL type is "int" in a 32-bit CPU) but not for pointers,
and using "reinterpret_cast" works when the size of a pointer is 64 bits but not in other
cases. Therefore it seems reasonable to use a plain C cast expression to solve this
particular situation.

https://trac.webkit.org/changeset/274869/webkit

Reviewed by Philippe Normand.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::createGLContext):

3:51 AM Changeset in webkit [274936] by Chris Lord
  • 4 edits in trunk/LayoutTests

[GLIB] imported/w3c/web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/2d.text.draw.generic.family.w.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=223671

Unreviewed test gardening.

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/2d.text.draw.generic.family.w-expected.txt:

LayoutTests:

  • platform/glib/TestExpectations:
2:55 AM Changeset in webkit [274935] by ysuzuki@apple.com
  • 4 edits in trunk

[JSC] Rope string equal operation should first check length
https://bugs.webkit.org/show_bug.cgi?id=223678

Reviewed by Mark Lam.

JSTests:

  • stress/redefine-property-same-value-exception-check.js:

(shouldThrow):

Source/JavaScriptCore:

This can avoid eagerly resolving rope strings if it is not necessary.

  • runtime/JSString.cpp:

(JSC::JSString::equalSlowCase const):

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

[Flatpak SDK] Add nghttp2 client library
https://bugs.webkit.org/show_bug.cgi?id=223585

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-24
Reviewed by Carlos Garcia Campos.

  • elements/sdk-platform.bst:
  • elements/sdk/nghttp2.bst: Added.
12:44 AM Changeset in webkit [274933] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

[css-grid] Do not allow negative heights
https://bugs.webkit.org/show_bug.cgi?id=221439

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-24
Reviewed by Javier Fernandez.

Source/WebCore:

Do not allow negative heights in calculations.

Test: fast/css-grid-layout/zero-height-crash.html

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithm::setup):

  • rendering/GridTrackSizingAlgorithm.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeTrackSizesForDefiniteSize):
(WebCore::RenderGrid::gridGap const):
(WebCore::RenderGrid::computeTrackSizesForIndefiniteSize const):
(WebCore::RenderGrid::availableAlignmentSpaceForChildBeforeStretching const):

LayoutTests:

Add test for this.

  • fast/css-grid-layout/zero-height-crash-expected.txt: Added.
  • fast/css-grid-layout/zero-height-crash.html: Added.

Mar 23, 2021:

11:17 PM Changeset in webkit [274932] by Lauro Moura
  • 4 edits in trunk/LayoutTests

[GLIB] Gardening some crashes and flakies

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
11:06 PM Changeset in webkit [274931] by timothy_horton@apple.com
  • 12 edits in trunk/Source

Consolidate Books bundle checks
https://bugs.webkit.org/show_bug.cgi?id=223664
<rdar://problem/75754750>

Reviewed by Wenson Hsieh.

Source/WebCore:

No new tests, no change in behavior.

  • Modules/geolocation/Geolocation.cpp:

(WebCore::isRequestFromIBooks):

  • bindings/js/CommonVM.cpp:

(WebCore::globalConstRedeclarationShouldThrow):

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::initMouseEventQuirk):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback const):

  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::currentRunLoop):

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::CocoaApplication::isIBooks):
(WebCore::MacApplication::isIBooks): Deleted.
(WebCore::IOSApplication::isIBooks): Deleted.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::synchronousWillSendRequestEnabled):

  • rendering/RenderBox.cpp:

(WebCore::allowMinMaxPercentagesInAutoHeightBlocksQuirk):
Transition to a single bundle check for Books, since the quirks are generally
about book content, not about the app's behavior. Long-term, we should
get rid of these entirely (some are no longer necessary, and the rest
should turn into switches that Books can toggle).

Source/WebKitLegacy/mac:

  • WebView/WebViewData.mm:

(currentRunLoop):

10:19 PM Changeset in webkit [274930] by Fujii Hironori
  • 3 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
7:35 PM Changeset in webkit [274929] by Simon Fraser
  • 27 edits
    2 copies
    1 move in trunk/Source

Add DisplayRefreshMonitorFactory.
https://bugs.webkit.org/show_bug.cgi?id=223648

Reviewed by Chris Dumez.

Future work will require that it's possible to create a DisplayRefreshMonitor
without having a DisplayRefreshMonitorClient. It was also weird that the way to
create a DisplayRefreshMonitor was via the DisplayRefreshMonitorClient, so
this change fixes both by adding DisplayRefreshMonitorFactory.

In WK2, the drawing areas are DisplayRefreshMonitorFactories. If there is no
factory, we fall back to the default implementations.

Source/WebCore:

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/EmptyClients.cpp:

(WebCore::EmptyDisplayRefreshMonitorFactory::sharedEmptyDisplayRefreshMonitorFactory):
(WebCore::EmptyChromeClient::displayRefreshMonitorFactory const):
(WebCore::EmptyChromeClient::createDisplayRefreshMonitor const): Deleted.

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

(WebCore::ChromeClient::displayRefreshMonitorFactory const):
(WebCore::ChromeClient::createDisplayRefreshMonitor const): Deleted.

  • page/RenderingUpdateScheduler.cpp:

(WebCore::RenderingUpdateScheduler::displayRefreshMonitorFactory const):
(WebCore::RenderingUpdateScheduler::createDisplayRefreshMonitor const): Deleted.

  • page/RenderingUpdateScheduler.h:
  • platform/graphics/DisplayRefreshMonitor.cpp:

(WebCore::DisplayRefreshMonitor::create):

  • platform/graphics/DisplayRefreshMonitor.h:
  • platform/graphics/DisplayRefreshMonitorClient.cpp:

(WebCore::DisplayRefreshMonitorClient::DisplayRefreshMonitorClient): Deleted.

  • platform/graphics/DisplayRefreshMonitorClient.h:
  • platform/graphics/DisplayRefreshMonitorFactory.h: Copied from Source/WebCore/platform/graphics/DisplayRefreshMonitorClient.cpp.
  • platform/graphics/DisplayRefreshMonitorManager.cpp:

(WebCore::DisplayRefreshMonitorManager::monitorForClient):

  • platform/graphics/GraphicsLayerUpdater.cpp:

(WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
(WebCore::GraphicsLayerUpdater::displayRefreshMonitorFactory const):
(WebCore::GraphicsLayerUpdater::createDisplayRefreshMonitor const): Deleted.

  • platform/graphics/GraphicsLayerUpdater.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::displayRefreshMonitorFactory):
(WebCore::RenderLayerCompositor::createDisplayRefreshMonitor const): Deleted.

  • rendering/RenderLayerCompositor.h:

Source/WebKit:

Remove DrawingAreaMac.cpp since its code was entirely related to creating
DisplayRefreshMonitorMac objects.

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::displayRefreshMonitorFactory const):
(WebKit::WebChromeClient::createDisplayRefreshMonitor const): Deleted.

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

(WebKit::DrawingArea::createDisplayRefreshMonitor): Deleted.

  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::createDisplayRefreshMonitor):

  • WebProcess/WebPage/mac/DisplayRefreshMonitorMac.cpp: Renamed from Source/WebKit/WebProcess/WebPage/mac/DrawingAreaMac.cpp.

(WebKit::DisplayRefreshMonitorMac::DisplayRefreshMonitorMac):
(WebKit::DisplayRefreshMonitorMac::~DisplayRefreshMonitorMac):
(WebKit::DisplayRefreshMonitorMac::requestRefreshCallback):
(WebKit::DisplayRefreshMonitorMac::displayLinkFired):

  • WebProcess/WebPage/mac/DisplayRefreshMonitorMac.h: Copied from Source/WebCore/platform/graphics/GraphicsLayerUpdater.h.

(WebKit::DisplayRefreshMonitorMac::create):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::createDisplayRefreshMonitor):

6:14 PM Changeset in webkit [274928] by Kate Cheney
  • 9 edits in trunk

Service worker loads are not marked as app-bound
https://bugs.webkit.org/show_bug.cgi?id=222635
<rdar://problem/74395950>

Source/WebCore:

Reviewed by Youenn Fablet.

Fix capitalization error. Add a new function to mark the service
worker document loader as app-bound.

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::setLastNavigationWasAppBound):
(WebCore::DocumentLoader::setlastNavigationWasAppBound): Deleted.

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::setLastNavigationWasAppBound):

  • workers/service/context/ServiceWorkerThreadProxy.h:

Source/WebKit:

Reviewed by Youenn Fablet.

Mark the service worker document loader as app-bound or not when
initiating a fetch event.

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::startFetch):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::createDocumentLoader):
Fix capitalization error.

Tools:

API test coverage for fetched and synthetic responses to make sure
they are marked as app-bound or not based on the main request.

Reviewed by Youenn Fablet.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
5:53 PM Changeset in webkit [274927] by dino@apple.com
  • 12 edits
    1 delete in trunk

Enable Metal ANGLE backend for WebGL
https://bugs.webkit.org/show_bug.cgi?id=220076
<rdar://problem/72565020>

Patch by Dean Jackson <yolo@apple.com> on 2021-03-23
Reviewed by Sam Weinig.

Source/WTF:

Turn the Metal backend for ANGLE on, moving the feature
from Internal to Experimental.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • Scripts/Preferences/WebPreferencesInternal.yaml:

LayoutTests:

Updated results for WebGL 2 content with the Metal ANGLE
backend. See https://bugs.webkit.org/show_bug.cgi?id=222239

  • platform/mac/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/wk2/TestExpectations:
5:45 PM Changeset in webkit [274926] by Simon Fraser
  • 10 edits in trunk/Source/WebCore

Use FramesPerSecond in more places in WebCore
https://bugs.webkit.org/show_bug.cgi?id=223656

Reviewed by Tim Horton.

Use FramesPerSecond rather than 'unsigned' in more places in WebCore.

  • page/Chrome.h:
  • page/Page.cpp:

(WebCore::Page::windowScreenDidChange):

  • page/Page.h:
  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::windowScreenDidChange):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::windowScreenDidChange):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::windowScreenDidChange):

  • page/scrolling/ScrollingTree.h:
  • platform/HostWindow.h:
5:39 PM Changeset in webkit [274925] by Alan Coon
  • 1 copy in tags/Safari-611.1.21.1.15

Tag Safari-611.1.21.1.15.

5:39 PM Changeset in webkit [274924] by Alan Coon
  • 1 delete in tags/Safari-611.1.21.1.15

Delete tag.

5:37 PM Changeset in webkit [274923] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.2.4

Tag Safari-611.1.21.2.4.

5:35 PM Changeset in webkit [274922] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.2-branch/Source/WebKit

Revert "Apply patch. rdar://problem/75756827"

This reverts commit r274904.

5:35 PM Changeset in webkit [274921] by Russell Epstein
  • 3 edits in branches/safari-611.1.21.2-branch/Source/WebKit

Revert "Cherry-pick r274790. rdar://problem/75712662"

This reverts commit r274837.

5:32 PM Changeset in webkit [274920] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.1.15

Tag Safari-611.1.21.1.15.

5:30 PM Changeset in webkit [274919] by Chris Dumez
  • 5 edits in trunk

DerivedSources/WebKitTestRunner/JSAccessibilityUIElement.cpp:802:72: runtime error: -1 is outside the range of representable values of type 'unsigned int'
https://bugs.webkit.org/show_bug.cgi?id=223650

Reviewed by Darin Adler.

Source/WTF:

Update the clampTo() template specialization that converts floating types into integer types so that
it deals with NaN inputs in a well-defined manner. Previously, it would simply cast the NaN to the
integer type, which was undefined behavior. We now return the minimum range boundary for the output
when the input is NaN.

  • wtf/MathExtras.h:

(clampTo):

Tools:

The bindings generator used by WebKitTestRunner was converting all numbers into double and
passing that to the implementation, no matter the IDL type (e.g. unsigned long). As a result,
there may be a type mismatch between the value the bindings are passing and the implementation
function getting called. This implicit conversion has undefined behavior in some cases and it
triggers UBSan errors. To address the issue, we now call clampTo<NativeNumberType>() on the
double before passing it to the implementation. This makes sure we pass the implementation
the type it expects and that the conversion is well-defined.

  • WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm:

(_generateImplementationFile):
(_nativeNumericType):
(_platformType):
(_platformTypeConstructor):
(_platformTypeVariableDeclaration):

5:26 PM Changeset in webkit [274918] by Alan Coon
  • 2 edits in branches/safari-611.1.21.1-branch/Source/WebKitLegacy

Revert r274915. rdar://problem/75751024

ChangeLogs only, patch already applied.

5:26 PM Changeset in webkit [274917] by Alan Coon
  • 1 edit in branches/safari-611.1.21.1-branch/Source/WebCore/ChangeLog

Revert r271914. rdar://problem/75751024

ChangeLogs only, patch already applied.

5:23 PM Changeset in webkit [274916] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.0.10

Tag Safari-611.1.21.0.10.

5:23 PM Changeset in webkit [274915] by Alan Coon
  • 2 edits in branches/safari-611.1.21.1-branch/Source/WebKitLegacy

Cherry-pick r274714. rdar://problem/75751024

[Win] Fix build issue
https://bugs.webkit.org/show_bug.cgi?id=223451
<rdar://75545172>

Reviewed by Brent Fulgham.

Source/WebKitLegacy:

Specify that WebKitLegacy links WebCore and PAL statically, since the correctness of the WEBCORE_EXPORT macro depends on that.

  • PlatformWin.cmake:

Source/WebKitLegacy/win:

Add WebCore namespace to function call.

  • Plugins/PluginView.cpp: (WebCore::PluginView::getValueForURL):

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

5:23 PM Changeset in webkit [274914] by Alan Coon
  • 1 edit in branches/safari-611.1.21.1-branch/Source/WebCore/ChangeLog

Cherry-pick r271385. rdar://problem/75751024

[WinCairo] Unreviewed build fix for r271353
https://bugs.webkit.org/show_bug.cgi?id=220407

CrossOriginAccessControl.cpp(225): error C3861: 'isInNetworkProcess': identifier not found

  • platform/RuntimeApplicationChecks.h: (WebCore::isInWebProcess): (WebCore::isInGPUProcess): (WebCore::isInNetworkProcess):

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

5:21 PM Changeset in webkit [274913] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.0-branch/Source/WebKit

Revert "Apply patch. rdar://problem/75744524"

This reverts commit r274881.

5:15 PM Changeset in webkit [274912] by Fujii Hironori
  • 4 edits
    2 copies in trunk/Source/WebKit

[WinCairo] Implement inspector-resource:// URL scheme handler for Web Inspector resources
https://bugs.webkit.org/show_bug.cgi?id=223619

Reviewed by Don Olmstead.

Implemented inspector-resource:// URL scheme handler for WinCairo
port. Mac port did it in Bug 179904.

http/tests/inspector tests were crashing due to
RELEASE_ASSERT_WITH_SECURITY_IMPLICATION failure (See Bug 223566).

  • PlatformWin.cmake:
  • UIProcess/Inspector/win/InspectorResourceURLSchemeHandler.cpp: Added.

(WebKit::InspectorResourceURLSchemeHandler::platformStartTask):

  • UIProcess/Inspector/win/InspectorResourceURLSchemeHandler.h: Added.
  • UIProcess/Inspector/win/WebInspectorUIProxyWin.cpp:

(WebKit::WebInspectorUIProxy::platformCreateFrontendPage):
(WebKit::WebInspectorUIProxy::inspectorPageURL):
(WebKit::WebInspectorUIProxy::inspectorTestPageURL):

  • WebProcess/Inspector/win/WebInspectorUIWin.cpp:

(WebKit::WebInspectorUI::localizedStringsURL const):
(WebKit::RemoteWebInspectorUI::localizedStringsURL const):

4:34 PM Changeset in webkit [274911] by ysuzuki@apple.com
  • 6 edits
    2 adds in trunk

[JSC] Functor for WeakGCMap::ensureValue must not invoke GC
https://bugs.webkit.org/show_bug.cgi?id=223629
Source/JavaScriptCore:

<rdar://problem/75619217>

Reviewed by Mark Lam.

The functor for WeakGCMap::ensureValue must not invoke GC. GC can prune entries in WeakGCMap.
So we can modify underlying HashMap while we are just touching it for HashMap::ensure. This
can corrupt HashMap. To ensure this invariant, we put DisallowGC for WeakGCMap::ensureValue.
So we cannot invoke GC in the functor of that function (otherwise, assertion hits).

And we use DeferGC in createCustomGetterFunction / createCustomSetterFunction to avoid invoking
GC in WeakGCMap::ensureValue. This defers GC invocation until this DeferGC scope is destroyed,
and ensures that functor invoked by WeakGCMap::ensureValue will not cause GC.

  • runtime/JSObject.cpp:

(JSC::createCustomGetterFunction):
(JSC::createCustomSetterFunction):
(JSC::JSObject::getOwnPropertyDescriptor):

  • runtime/WeakGCMap.h:

Source/WebCore:

Reviewed by Mark Lam.

Test: js/dom/weak-gc-map-ensure-value-should-not-invoke-gc.html

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::createCrossOriginFunction):
(WebCore::JSDOMGlobalObject::createCrossOriginGetterSetter):

LayoutTests:

Reviewed by Mark Lam.

  • js/dom/weak-gc-map-ensure-value-should-not-invoke-gc-expected.txt: Added.
  • js/dom/weak-gc-map-ensure-value-should-not-invoke-gc.html: Added.
4:13 PM Changeset in webkit [274910] by Russell Epstein
  • 1 copy in tags/Safari-612.1.7.5

Tag Safari-612.1.7.5.

4:08 PM Changeset in webkit [274909] by Chris Dumez
  • 24 edits in trunk/Source/WebCore

Unreviewed, rebaseline bindings tests after r274906.

  • bindings/scripts/test/JS/JSTestCEReactions.cpp:
  • bindings/scripts/test/JS/JSTestCallTracer.cpp:
  • bindings/scripts/test/JS/JSTestConditionalIncludes.cpp:
  • bindings/scripts/test/JS/JSTestDomainSecurity.cpp:
  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.cpp:
  • bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestOperationConditional.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
4:08 PM Changeset in webkit [274908] by Russell Epstein
  • 8 edits in branches/safari-612.1.7-branch/Source

Versioning.

WebKit-7612.1.7.5

4:05 PM Changeset in webkit [274907] by Dewei Zhu
  • 3 edits
    34 deletes in trunk/Websites/perf.webkit.org

[perf dashboard] Remove v1 and v2 code.
https://bugs.webkit.org/show_bug.cgi?id=223617

Reviewed by Ryosuke Niwa.

Remove v1 and v2 code from perf dashboard.
Remove detect-changes.js script since run-analysis.js is the v3 version equivalent.

  • public/index.html: Keep the redirection to v3.
  • public/js/helper-classes.js: Removed.
  • public/js/jquery.colorhelpers.js: Removed.
  • public/js/jquery.flot.categories.js: Removed.
  • public/js/jquery.flot.crosshair.js: Removed.
  • public/js/jquery.flot.errorbars.js: Removed.
  • public/js/jquery.flot.fillbetween.js: Removed.
  • public/js/jquery.flot.js: Removed.
  • public/js/jquery.flot.navigate.js: Removed.
  • public/js/jquery.flot.plugins.js: Removed.
  • public/js/jquery.flot.resize.js: Removed.
  • public/js/jquery.flot.selection.js: Removed.
  • public/js/jquery.flot.stack.js: Removed.
  • public/js/jquery.flot.symbol.js: Removed.
  • public/js/jquery.flot.threshold.js: Removed.
  • public/js/jquery.flot.time.js: Removed.
  • public/js/jquery.js: Removed.
  • public/v2/analysis.js: Removed.
  • public/v2/app.css: Removed.
  • public/v2/app.js: Removed.
  • public/v2/chart-pane.css: Removed.
  • public/v2/commits-viewer.js: Removed.
  • public/v2/data.js: Removed.
  • public/v2/index.html: Keep the redirection to v3.
  • public/v2/interactive-chart.js: Removed.
  • public/v2/js/d3/LICENSE: Removed.
  • public/v2/js/d3/d3.js: Removed.
  • public/v2/js/d3/d3.min.js: Removed.
  • public/v2/js/ember-data.js: Removed.
  • public/v2/js/ember.js: Removed.
  • public/v2/js/handlebars.js: Removed.
  • public/v2/js/jquery.min.js: Removed.
  • public/v2/manifest.js: Removed.
  • public/v2/popup.js: Removed.
  • public/v2/statistics-strategies.js: Removed.
  • tools/detect-changes.js: Removed.
3:53 PM Changeset in webkit [274906] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r274832.

  • bindings/scripts/CodeGeneratorJS.pm:

(AddToIncludesForIDLType):

3:35 PM Changeset in webkit [274905] by Kate Cheney
  • 3 edits in trunk/Source/WebKit

Add getter to textInteractionEnabled property
https://bugs.webkit.org/show_bug.cgi?id=223638
<rdar://problem/73990298>

Reviewed by Darin Adler.

During API review, it was pointed out that the textInteractionEnabled
property should have a getter/Swift name prefixed with "is" so the
call site reads like an assertion about the receiver.

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

(-[WKPreferences isTextInteractionEnabled]):
(-[WKPreferences textInteractionEnabled]): Deleted.

3:11 PM Changeset in webkit [274904] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.2-branch/Source/WebKit

Apply patch. rdar://problem/75756827

2:38 PM Changeset in webkit [274903] by Adrian Perez de Castro
  • 5 edits in trunk

[CMake] Use an imported target for the LCMS2 library
https://bugs.webkit.org/show_bug.cgi?id=223442

Reviewed by Carlos Garcia Campos.

.:

  • Source/cmake/FindLCMS2.cmake: Replaced find module by a new one which

defines a LCMS2::LCMS2 imported target and in general uses more modern CMake
constructs.

Source/WebCore:

No new tests needed.

  • PlatformGTK.cmake: Use the LCMS::LCMS2 imported target, only with USE_LCMS enabled.
  • PlatformWPE.cmake: Ditto.
2:27 PM Changeset in webkit [274902] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

[Cocoa][Opus] Protect against variable frame duration packets
https://bugs.webkit.org/show_bug.cgi?id=223623

Reviewed by Eric Carlson.

Because frames-per-packet and frame duration are carried within the TOC of each individual
frame, it's theoretically possible to construct an Opus stream where those values change
without a new initialization segment, a situation which CoreAudio does not currently
support. In the case such a stream is encountered, bail with an error code during parsing,
rather than passing such data on to CoreAudio for decoding.

To do so, extract some of the Opus private data parsing code from
createOpusAudioFormatDescription(), into its own method parseOpusPrivateData(). Create a new
struct type OpusCookieContents to recieve this parsed data. And to avoid excessive
allocations during parsing, ensure that these methods support stack-based structures through
an out-param (as opposed to returning an Optional<> struct).

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::AudioTrackData::consumeFrameData):

  • platform/graphics/cocoa/SourceBufferParserWebM.h:
  • platform/graphics/cocoa/WebMAudioUtilitiesCocoa.h:
  • platform/graphics/cocoa/WebMAudioUtilitiesCocoa.mm:

(WebCore::parseOpusPrivateData):
(WebCore::cookieFromOpusCookieContents):
(WebCore::createOpusAudioFormatDescription):
(WebCore::cookieFromOpusCodecPrivate): Deleted.

2:23 PM Changeset in webkit [274901] by Cameron McCormack
  • 2 edits in trunk

Update .clang-format to reflect WebKit style better.
https://bugs.webkit.org/show_bug.cgi?id=223229

First, SpaceBeforeCpp11BracedList is set to true so that a space
is introduced after a variable name and before a braced initializer.

Second, AlwaysBreakTemplateDeclarations is changed from false (an
invalid value) to No, which should result in no line breaks being
introduced in template declarations. Although there is a mix of
template declaration line breaking styles in the codebase, changing
this option to No will prevent clang-format from introducing one
where the patch author decides to write the declaration all on one
line.

Reviewed by Alex Christensen.

  • .clang-format:
2:05 PM Changeset in webkit [274900] by Russell Epstein
  • 4 edits in branches/safari-611.1.21.1-branch/Source/WebKitLegacy

Cherry-pick r274714. rdar://problem/75751024

[Win] Fix build issue
https://bugs.webkit.org/show_bug.cgi?id=223451
<rdar://75545172>

Reviewed by Brent Fulgham.

Source/WebKitLegacy:

Specify that WebKitLegacy links WebCore and PAL statically, since the correctness of the WEBCORE_EXPORT macro depends on that.

  • PlatformWin.cmake:

Source/WebKitLegacy/win:

Add WebCore namespace to function call.

  • Plugins/PluginView.cpp: (WebCore::PluginView::getValueForURL):

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

2:05 PM Changeset in webkit [274899] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.1-branch/Source/WebCore

Cherry-pick r271385. rdar://problem/75751024

[WinCairo] Unreviewed build fix for r271353
https://bugs.webkit.org/show_bug.cgi?id=220407

CrossOriginAccessControl.cpp(225): error C3861: 'isInNetworkProcess': identifier not found

  • platform/RuntimeApplicationChecks.h: (WebCore::isInWebProcess): (WebCore::isInGPUProcess): (WebCore::isInNetworkProcess):

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

1:55 PM Changeset in webkit [274898] by sbarati@apple.com
  • 2 edits in trunk/Source/WTF

Don't require VM_FLAGS_PERMANENT on the simulator builds
https://bugs.webkit.org/show_bug.cgi?id=223649
<rdar://problem/75747788>

Reviewed by Alexey Proskuryakov.

Since VM_FLAGS_PERMANENT must be supported by the kernel, let's make
it so that the vm_map that passes this flag in can fail when running
on the simulator. This is to support the use case of running a newer
simulator on an older OS. When the call to vm_map fails when running
on the simulator, we try again without the VM_FLAGS_PERMANENT flag.

  • wtf/WTFConfig.cpp:

(WTF::setPermissionsOfConfigPage):

1:37 PM Changeset in webkit [274897] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r274889.
https://bugs.webkit.org/show_bug.cgi?id=223653

Sandbox change not ready yet

Reverted changeset:

"Enforce notifyd message filtering"
https://bugs.webkit.org/show_bug.cgi?id=223601
https://trac.webkit.org/changeset/274889

1:32 PM Changeset in webkit [274896] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WTF

Remove unused WTF::String::percentage
https://bugs.webkit.org/show_bug.cgi?id=223651

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

  • wtf/text/AtomString.h:
  • wtf/text/WTFString.cpp:

(WTF::String::percentage const): Deleted.

  • wtf/text/WTFString.h:
1:30 PM Changeset in webkit [274895] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

[UBSan] dom/Document.cpp:2722:23: runtime error: reference binding to null pointer of type 'JSC::CallFrame'
https://bugs.webkit.org/show_bug.cgi?id=223642

Reviewed by Darin Adler.

Use a raw pointer instead of a reference for the JSC::CallFrame and null check it to make sure
the code is safe and its behavior is defined.

  • dom/Document.cpp:

(WebCore::Document::shouldBypassMainWorldContentSecurityPolicy const):

1:00 PM Changeset in webkit [274894] by jiewen_tan@apple.com
  • 20 edits
    3 copies in trunk

Provide a way to specify platform vs security key when requesting an assertion in the SPI
https://bugs.webkit.org/show_bug.cgi?id=223547
<rdar://74034746>

Reviewed by Brent Fulgham.

Source/WebCore:

Covered by API tests.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webauthn/AuthenticatorAttachment.h: Added.
  • Modules/webauthn/AuthenticatorAttachment.idl: Added.
  • Modules/webauthn/PublicKeyCredentialCreationOptions.h:
  • Modules/webauthn/PublicKeyCredentialCreationOptions.idl:
  • Modules/webauthn/PublicKeyCredentialRequestOptions.h:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

This patch adds the authenticator attachment option to the getAssertion SPI such that the caller
can decide what transports it needs.

  • UIProcess/API/Cocoa/_WKAuthenticatorAttachment.h: Added.
  • UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.h:
  • UIProcess/API/Cocoa/_WKPublicKeyCredentialRequestOptions.h:
  • UIProcess/API/Cocoa/_WKPublicKeyCredentialRequestOptions.mm:

(-[_WKPublicKeyCredentialRequestOptions init]):

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(authenticatorAttachment):
(+[_WKWebAuthenticationPanel convertToCoreRequestOptionsWithOptions:]):

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::WebCore::collectTransports):
(WebKit::AuthenticatorManager::getTransports const):

  • WebKit.xcodeproj/project.pbxproj:

Tools:

  • TestWebKitAPI/Tests/WebCore/CtapRequestTest.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):
Adds the test case.

12:57 PM Changeset in webkit [274893] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Use ErrorInstance for AggregateError
https://bugs.webkit.org/show_bug.cgi?id=223626

Reviewed by Darin Adler.

From r274609, WebAssembly errors start using normal ErrorInstance. We apply the same thing to AggregateError too.
This patch removes AggregateError class, and just generating ErrorInstance.

  • runtime/AggregateError.cpp:

(JSC::createAggregateError):
(JSC::AggregateError::AggregateError): Deleted.
(JSC::AggregateError::finishCreation): Deleted.
(JSC::AggregateError::create): Deleted.

  • runtime/AggregateError.h:

(): Deleted.

  • runtime/AggregateErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::initializeAggregateErrorConstructor):

12:21 PM Changeset in webkit [274892] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.3.2

Tag Safari-611.1.21.3.2.

12:21 PM Changeset in webkit [274891] by jer.noble@apple.com
  • 6 edits in trunk

[GPUP] 2 web audio WPT tests fail when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221696
<rdar://problem/74440772>

Reviewed by Eric Carlson.

Source/WebKit:

Test fails when AudioDestination.maxChannelCount is queried and returns 0; pipe the correct
value through from the GPU process.

  • GPUProcess/media/RemoteAudioSessionProxy.cpp:

(WebKit::RemoteAudioSessionProxy::configuration):

  • WebProcess/GPU/media/RemoteAudioSession.h:
  • WebProcess/GPU/media/RemoteAudioSessionConfiguration.h:

(WebKit::RemoteAudioSessionConfiguration::encode const):
(WebKit::RemoteAudioSessionConfiguration::decode):

LayoutTests:

  • platform/wk2/TestExpectations:
12:19 PM Changeset in webkit [274890] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Add write barrier to JSValueInWrappedObject for garbage collection
https://bugs.webkit.org/show_bug.cgi?id=198319

Reviewed by Filip Pizlo.

  • bindings/js/JSValueInWrappedObject.h:

(WebCore::cachedPropertyValue):

12:18 PM Changeset in webkit [274889] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Enforce notifyd message filtering
https://bugs.webkit.org/show_bug.cgi?id=223601
<rdar://75098580>

Reviewed by Brent Fulgham.

Enforce notifyd message filtering on macOS and iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
12:18 PM Changeset in webkit [274888] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.15

11:45 AM Changeset in webkit [274887] by Ross Kirsling
  • 111 edits
    8 copies
    8 adds
    29 deletes in trunk/Source/ThirdParty

Update googletest to 1a8ecf1
https://bugs.webkit.org/show_bug.cgi?id=223607

Reviewed by Don Olmstead.

  • gtest/:

Update googletest, but...

  • gtest/CMakeLists.txt:

Keep our own build files, just add the new file.

  • gtest/xcode/:

Keep our own build files, but it seems that after 1.10.0, googletest is just "live at HEAD",
so ditch Scripts/versiongenerate.py.

  • gtest/README.WebKit: Removed.
  • gtest/changes.diff: Removed.

It appears that our fix for FreeBSD has been upstreamed.

11:31 AM Changeset in webkit [274886] by Aditya Keerthi
  • 4 edits in trunk/Source/WebCore

[iOS][FCR] Add pressed state for button-like controls
https://bugs.webkit.org/show_bug.cgi?id=223208
<rdar://problem/72399087>

Reviewed by Simon Fraser.

Add a pressed state for buttons, checkboxes, radio buttons, select
elements and date inputs. The pressed state has a 75% opacity applied
to the text and background colors.

  • css/html.css:

Explicitly set the default active style on buttons to ensure styles are
are adjusted when the element is pressed.

  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

The style adjustment is only performed if the -webkit-appearance property
is not set to none. This ensures we do not override the colors for
custom styled form controls.

(WebCore::adjustInputElementButtonStyle):
(WebCore::RenderThemeIOS::adjustMenuListButtonStyle const):
(WebCore::RenderThemeIOS::adjustButtonStyle const):
(WebCore::RenderThemeIOS::checkboxRadioBackgroundColor):

Factored out the background color determination for checkboxes and
radio buttons into a common method.

(WebCore::RenderThemeIOS::checkboxRadioIndicatorColor):

Factored out the indicator color determination for checkboxes and
radio buttons into a common method.

(WebCore::RenderThemeIOS::paintCheckbox):
(WebCore::RenderThemeIOS::paintRadio):

11:25 AM Changeset in webkit [274885] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.1.14

Tag Safari-611.1.21.1.14.

11:23 AM Changeset in webkit [274884] by commit-queue@webkit.org
  • 4 edits in trunk/Source/ThirdParty/ANGLE

ANGLE Metal fixes for program generation bugs
https://bugs.webkit.org/show_bug.cgi?id=223627

Patch by Kyle Piddington <Kyle Piddington> on 2021-03-23
Reviewed by Dean Jackson.

webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate.html is fixed by dropping 'thread' qualifiers on pregenerated functions
webgl/2.0.0/conformance/glsl/bugs/compound-assignment-type-combination.html is fixed by introducing new operators for matrix +/- scalars
webgl/2.0.0/conformance/glsl/bugs/complex-glsl-does-not-crash.html is fixed by adding a pre-pass to rename any reserved keywords, such as 'vertex'

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

(BuildExternalAttributeIndexMap):

  • src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp:
  • src/compiler/translator/TranslatorMetalDirect/RewriteKeywords.cpp:

(sh::Rewriter::maybeCreateNewName):
(sh::Rewriter::visitSymbolPost):
(sh::Rewriter::predefineName):
(sh::RewriteKeywords):

11:12 AM Changeset in webkit [274883] by Ruben Turcios
  • 2 edits in branches/safari-611.1.21.1-branch/Source/WebKit

Cherry-pick r274129. rdar://problem/75744624

Regression(r273875): Potential over-release in WKRemoteObjectCoder's decodeObjCObject()
https://bugs.webkit.org/show_bug.cgi?id=222954
<rdar://75163359>

Reviewed by Darin Adler.

r273875 added an adoptNS() for the result of [allocation initWithCoder:decoder]. This would be
fine in general, except that we call awakeAfterUsingCoder on the result right after. As per the
awakeAfterUsingCoder documentation [1], it may return the receiver or a new object. When it
returns a new object, it takes care of releasing the receiver. This is an issue for us here since
we were holding the receiver in a smart pointer.

[1] https://developer.apple.com/documentation/objectivec/nsobject/1417074-awakeafterusingcoder

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm: (decodeObjCObject):

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

11:04 AM Changeset in webkit [274882] by rmorisset@apple.com
  • 5 edits
    1 add in trunk

Object.freeze(this) at the global scope can lose a reference to a WatchpointSet
https://bugs.webkit.org/show_bug.cgi?id=223608

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/freeze-global-object.js: Added.

(foo):

Source/JavaScriptCore:

When freezing the global object, we should make a proper copy of symbol table entries, to keep any outstanding reference to the WatchpointSet.
We cannot use pack(), because it does not support FatEntries.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::defineOwnProperty):

  • runtime/JSSymbolTableObject.h:

(JSC::symbolTableGet):

  • runtime/SymbolTable.h:

(JSC::SymbolTableEntry::setReadOnly):

11:00 AM Changeset in webkit [274881] by Ruben Turcios
  • 2 edits in branches/safari-611.1.21.0-branch/Source/WebKit

Apply patch. rdar://problem/75744524

Apply patch rdar://75744524

10:31 AM Changeset in webkit [274880] by Russell Epstein
  • 1 copy in tags/Safari-612.1.7.4

Tag Safari-612.1.7.4.

10:02 AM InvestigatingLeaksAndBloat edited by Simon Fraser
(diff)
9:54 AM Changeset in webkit [274879] by Russell Epstein
  • 1 copy in branches/safari-612.1.8-branch

New branch.

9:54 AM Changeset in webkit [274878] by Chris Dumez
  • 5 edits in trunk

wtf/text/IntegerToStringConversion.h:54:104: runtime error: negation of -2147483648 cannot be represented in type 'int'; cast to an unsigned type to negate this value to itself
https://bugs.webkit.org/show_bug.cgi?id=223614

Reviewed by Darin Adler.

Source/WTF:

numberToStringSigned() was calling -number when number is negative. This could trigger undefined behavior
since -number may not be representable in the input type. For example, if the type was int and number was
INT_MIN, -INT_MIN would overflow and the result would be undefined. To address the issue, we now cast
number to the destination *unsigned* type *before* negating it.

  • wtf/text/IntegerToStringConversion.h:

(WTF::numberToStringSigned):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WTF/StringBuilder.cpp:

(TestWebKitAPI::TEST):

9:52 AM Changeset in webkit [274877] by Peng Liu
  • 2 edits in trunk/Source/WebCore

Enable the quirk to disable firing "webkitendfullscreen" event when a video enters picture-in-picture from fullscreen on espn.com
https://bugs.webkit.org/show_bug.cgi?id=223610

Reviewed by Jer Noble.

A video element entering picture-in-picture from fullscreen will fire a "webkitendfullscreen"
event since r266728, but some sites (e.g., espn.com) do not handle the event properly.
Because they assume the video will resume to inline after exiting fullscreen.

This patch enables the quirk for espn.com to disable firing "webkitendfullscreen" event
in that scenario before they fix the issue in the event handler.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldDisableEndFullscreenEventWhenEnteringPictureInPictureFromFullscreenQuirk const):

9:46 AM Changeset in webkit [274876] by Chris Dumez
  • 3 edits
    2 adds in trunk

dom/WheelEvent.cpp:47:58: runtime error: negation of -2147483648 cannot be represented in type 'int'; cast to an unsigned type to negate this value to itself
https://bugs.webkit.org/show_bug.cgi?id=223605

Reviewed by Darin Adler.

Source/WebCore:

Fix issues found by UBSan in the WheelEvent constructor:

  • wheelDeltaX / wheelDeltaY have type int and we negate those values to compute deltaX / deltaY (which have type double). If wheelDeltaX / wheelDeltaY where INT_MIN, then -INT_MIN would overflow. To address the issue, we now cast to double *before* negating the value.
  • When wheelDeltaX / wheelDeltaY are initially 0, we compute their value from deltaX / deltaY. However, deltaX & deltaY use type double while wheelDeltaX / wheelDeltaY use type int. As a result, values for deltaX / deltaY could end up being out of range and not fit in wheelDeltaX / wheelDeltaY. To address the issue, we use clampTo<int>() to clamp to the correct destination range.

Test: fast/events/wheelevent-delta-overflow.html

  • dom/WheelEvent.cpp:

(WebCore::WheelEvent::WheelEvent):
(WebCore::WheelEvent::initWebKitWheelEvent):

LayoutTests:

Add layout test coverage.

  • fast/events/wheelevent-delta-overflow-expected.txt: Added.
  • fast/events/wheelevent-delta-overflow.html: Added.
9:23 AM Changeset in webkit [274875] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitcorepy] Print output of setup.py when install fails
https://bugs.webkit.org/show_bug.cgi?id=223589
<rdar://problem/75700606>

Reviewed by Aakash Jain.

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

(Package.install): Print stdout and stderr of setup.py when install fails.

9:21 AM Changeset in webkit [274874] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

[GPUP] Test http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html fails when media in GPU process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221816
<rdar://problem/74525561>

Reviewed by Eric Carlson.

Enable WebRTC codecs in GPUProcess.

  • http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html:
9:18 AM Changeset in webkit [274873] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Only send image across XPC to GPU process if it changes.
https://bugs.webkit.org/show_bug.cgi?id=223298
<rdar://problem/75559236>

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-23
Reviewed by Eric Carlson.

No change in observable functionality.

  • platform/NowPlayingManager.cpp:

(WebCore::NowPlayingManager::setNowPlayingInfo): On first image change we store it to a local member variable and set imageData to null.
(WebCore::NowPlayingManager::setNowPlayingInfoPrivate): Check if imageData is null, and if so use cache value.

  • platform/NowPlayingManager.h: New member to store cache.
9:07 AM WebKitGTK/2.32.x edited by Philippe Normand
(diff)
8:56 AM Changeset in webkit [274872] by achristensen@apple.com
  • 2 edits in trunk/Source/WTF

Optimize StringView::CodePoints::Iterator
https://bugs.webkit.org/show_bug.cgi?id=162315

Reviewed by Darin Adler.

This stores range pointers in the iterator instead of a pointer to a pointer.

  • wtf/text/StringView.h:

(WTF::StringView::CodePoints::Iterator::Iterator):
(WTF::StringView::CodePoints::Iterator::operator++):
(WTF::StringView::CodePoints::Iterator::operator* const):
(WTF::StringView::CodePoints::Iterator::operator== const):

8:33 AM Changeset in webkit [274871] by Chris Dumez
  • 16 edits in trunk/Source

Add assertions to guard against heap allocations on the audio thread
https://bugs.webkit.org/show_bug.cgi?id=223226

Reviewed by Darin Adler.

Source/WebCore:

Add assertions to guard against heap allocations on the audio thread during
audio processing, since those are bad for performance. I fixed any of the
issues found by these assertions in dependency bugs. Some issues remain
and are protected by DisableMallocRestrictionsForCurrentThreadScope to avoid
tripping the new assertions.

Right now, the assertions only protect audio processing, not pre/post quantum
rendering casts. Ideally, we'd expand the scope of these assertions to cover
everything that's done on the audio thread but this will require more fixes.

  • Modules/webaudio/AudioDestinationNode.cpp:

(WebCore::AudioDestinationNode::render):

  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::finish):

  • Modules/webaudio/AudioWorkletNode.cpp:

(WebCore::AudioWorkletNode::fireProcessorErrorOnMainThread):

  • Modules/webaudio/AudioWorkletProcessor.cpp:

(WebCore::AudioWorkletProcessor::process):

  • Modules/webaudio/MediaStreamAudioSourceCocoa.cpp:

(WebCore::MediaStreamAudioSource::consumeAudio):

  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::process):

Source/WTF:

Add ForbidMallocUseForCurrentThreadScope to FastMalloc.h to enable assertions guarding against
doing heap allocations on the current thread (during the lifetime of the Scope object).

Also add a DisableMallocRestrictionsForCurrentThreadScope to temporarily disable those checks
to allow for some very specific assertions (either because they are required, or simply because
they are not fixed yet).

  • wtf/FastMalloc.cpp:

(WTF::ForbidMallocUseForCurrentThreadScope::ForbidMallocUseForCurrentThreadScope):
(WTF::ForbidMallocUseForCurrentThreadScope::~ForbidMallocUseForCurrentThreadScope):
(WTF::DisableMallocRestrictionsForCurrentThreadScope::DisableMallocRestrictionsForCurrentThreadScope):
(WTF::DisableMallocRestrictionsForCurrentThreadScope::~DisableMallocRestrictionsForCurrentThreadScope):
(WTF::tryFastMalloc):
(WTF::fastMalloc):
(WTF::tryFastCalloc):
(WTF::fastCalloc):
(WTF::fastRealloc):
(WTF::tryFastRealloc):
(WTF::fastAlignedMalloc):
(WTF::tryFastAlignedMalloc):

  • wtf/FastMalloc.h:

(WTF::ForbidMallocUseForCurrentThreadScope::~ForbidMallocUseForCurrentThreadScope):
(WTF::DisableMallocRestrictionsForCurrentThreadScope::~DisableMallocRestrictionsForCurrentThreadScope):

8:32 AM Changeset in webkit [274870] by commit-queue@webkit.org
  • 10 edits in trunk

[MSE][GStreamer] SIGSEV in webKitMediaSrcFreeStream
https://bugs.webkit.org/show_bug.cgi?id=220091

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

Source/WebCore:

The pipeline used by the MSE player is now able reload the MediaSource from the beginning if
a seek to 0 was requested. The problem was that uridecodebin was creating a new source
element and notifying the player which was then trying to dispose underlying platform track
informations, and also related appsrc elements. The latter was specially problematic because
the appsrc elements ownership was badly handled (elements added to a bin should not be
reused, unless an extra ref is added), leading to racy crashes.

So now when uridecodebin creates a new source element, the player detects this is a new
source and transfers track-related informations to the new element. Additionally, new appsrc
elements are created for the new element and track signals emitted so that the player is
still fully aware of the MSE tracks topology.

No new tests but two existing tests are now passing.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::MediaPlayerPrivateGStreamerMSE::sourceSetup):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
  • platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp:

(WebCore::MediaSourcePrivateGStreamer::open):

  • platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h:
  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:

(WebCore::PlaybackPipeline::addSourceBuffer):

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:

(webKitMediaSrcFinalize):
(webKitMediaSrcChangeState):
(webKitMediaSrcFreeStream):
(webKitMediaSrcRestoreTracks):
(webKitMediaSrcSignalTracks):

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.h:

LayoutTests:

  • platform/gtk/TestExpectations: Unflag now-passing tests.
8:17 AM Changeset in webkit [274869] by commit-queue@webkit.org
  • 7 edits in trunk/Source

[GTK] X11 build fixes
https://bugs.webkit.org/show_bug.cgi?id=223577

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-23
Reviewed by Adrian Perez de Castro.

Source/WebCore:

X11 headers define a bunch of macros with common terms, interfering with WebCore and WTF
enum values. As a workaround, we explicitly undef them.

  • platform/graphics/GLContext.h:
  • platform/graphics/GraphicsContext.h:

Source/WebKit:

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::createGLContext): GLNativeWindowType might be a long unsigned
int, which can't be reinterpret casted to uin64_t on 32-bit platforms.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: Use

WebCore::Region to prevent clashes with X11's Region.
(WebKit::DrawingAreaCoordinatedGraphics::scroll):
(WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode):
(WebKit::DrawingAreaCoordinatedGraphics::display):

8:03 AM Changeset in webkit [274868] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GLIB] Gardening http/tests/images/mp4-partial-load.html flaky crashes after r274358

Unreviewed test gardening.

  • platform/glib/TestExpectations:
7:56 AM Changeset in webkit [274867] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] Flaky editing and events tests
https://bugs.webkit.org/show_bug.cgi?id=223634

Unreviewed test gardening.

  • platform/win/TestExpectations:
6:58 AM Changeset in webkit [274866] by Aditya Keerthi
  • 3 edits
    2 adds in trunk

[iPadOS] Stale checked item when reopening <select>
https://bugs.webkit.org/show_bug.cgi?id=223592
<rdar://problem/75629529>

Reviewed by Wenson Hsieh.

Source/WebKit:

Reopening a select element after changing its value displays the
original value as checked, rather than the current value on iPadOS. This
is incorrect, since the checked value in the context menu should match
the selected value in-page.

The behavior is incorrect on iPadOS, but works correctly on iPhone, since
dismissing input peripherals on iPhone blurs the focused element,
resulting in a new peripheral being created each time. However, on iPad
the same peripheral is reused when interacting with the same element.
Since the presented UIMenu is only created once during the initialization
of the peripheral, the checked item can be stale on iPads. To fix, update
the menu each time the peripheral is presented, rather than each time it
is created.

Test: fast/forms/ios/form-control-refresh/select/no-stale-checked-items-in-select-picker.html

  • UIProcess/ios/forms/WKFormSelectPicker.mm:

(-[WKSelectPicker initWithView:]):

Do not create the presented UIMenu during initialization.

(-[WKSelectPicker controlBeginEditing]):

Create the UIMenu when the peripheral is about to be presented. This
ensures the state of the menu is up-to-date.

(-[WKSelectPicker didSelectOptionIndex:]):

Update the underlying data structure for <select> elements, so that a
newly created UIMenu will have the correct state.

(-[WKSelectPicker createMenu]):

Use a separate local variable to avoid modifying a reference. The
incorrect logic here was masked by the fact that the UIMenu was
previously only created once per WKSelectPicker.

(-[WKSelectPicker actionForOptionIndex:]):

Factored logic to get a UIAction from an option index for testing.

(-[WKSelectPicker selectRow:inComponent:extendingSelection:]):

Call accessoryDone to simulate the dismissal of the presented UIMenu
when using this testing method.

(-[WKSelectPicker selectFormAccessoryHasCheckedItemAtRow:]):

Implement this method so that the checked item can be obtained in tests.

LayoutTests:

Added a test that verifies that tapping on a select element, changing
its value, and then tapping on the same element, presents a context
menu with the correct checked item.

  • fast/forms/ios/form-control-refresh/select/no-stale-checked-items-in-select-picker-expected.txt: Added.
  • fast/forms/ios/form-control-refresh/select/no-stale-checked-items-in-select-picker.html: Added.
6:55 AM Changeset in webkit [274865] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Nullptr deref in WebCore::ApplyStyleCommand::applyRelativeFontStyleChange
https://bugs.webkit.org/show_bug.cgi?id=223364

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

Source/WebCore:

When the editing code creates a span to apply font style change, it may not have editable
style if the document sets extra style (e.g. user-select: all). This is causing a debug
ASSERT in AppendNodeCommand::AppendNodeCommand when the span is inserted and a nullptr
dereference later in release mode. This patch ensures that we skip the font style change
when that happens.

Test: editing/style/apply-font-style-change-crash.html

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): Skip the font style change if
the span insertion failed.
(WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): After inserting the new element,
ensure that the conditions from the ASSERT of AppendNodeCommand::AppendNodeCommand hold and
return failure if they don't.

  • editing/ApplyStyleCommand.h: Return a boolean indicating success.

LayoutTests:

Add regression test.

  • editing/style/apply-font-style-change-crash-expected.txt: Added.
  • editing/style/apply-font-style-change-crash.html: Added.
6:39 AM Changeset in webkit [274864] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[ContentChangeObserver] Unable to view state details on CDC COVID map
https://bugs.webkit.org/show_bug.cgi?id=223620
<rdar://74284133>

Reviewed by Simon Fraser.

When the content change observer sees some visibility change, it checks if the newly visible content is actionable (e.g. something the user can click on).
A non-actionable content is considered less important than the action behind the "click". So while we trigger the hover state we immediately proceed with click as well.
(e.g. on youtube.com, hovering over the controls (settings, volume etc) brings up a (non-actionable) tooltip and the subsequent click triggers the associated action.
Now on iPadOS, it would require 2 taps on the mute/unmute button to actually mute/unmute the video, if we stopped at the hover state)

This patch implements a quirk for the CDC Covid map so that tapping on the map brings up the numbers dialog and we only submit the click event on the subsequent tap.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldTooltipPreventFromProceedingWithClick const):

  • page/Quirks.h:
  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::isConsideredActionableContent const): moved the isConsideredClickable logic to a lambda function. Call it when we don't apply the quirk.
(WebCore::ContentChangeObserver::didFinishTransition):
(WebCore::ContentChangeObserver::StyleChangeScope::~StyleChangeScope):
(WebCore::isConsideredClickable): Deleted.

  • page/ios/ContentChangeObserver.h:
6:37 AM Changeset in webkit [274863] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Nullopt in DOMSelection::getRangeAt
https://bugs.webkit.org/show_bug.cgi?id=223361

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

Source/WebCore:

When extending the selection toward a pseudo element, it's possible to reach the
corresponding debug ASSERT in WebCore::Position::Position and later a nullptr dereference in
release mode. This patch fixes start/endPositionForLine to avoid that issue.

Test: editing/selection/modify-by-lineboundary-toward-pseudo-element.html

  • editing/VisibleUnits.cpp: Make the two branches of LineEndpointComputationMode consistent

and merge them.
(WebCore::startPositionForLine): For logical ordering, try a non-pseudo element after.
(WebCore::endPositionForLine): For logical ordering, try a non-pseudo element before.

LayoutTests:

Add regression test.

  • editing/selection/modify-by-lineboundary-toward-pseudo-element-expected.txt: Added.
  • editing/selection/modify-by-lineboundary-toward-pseudo-element.html: Added.
6:36 AM Changeset in webkit [274862] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

Nullptr crash in HTMLConverter::convert
https://bugs.webkit.org/show_bug.cgi?id=221719

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

When the "Undo" command is called after DOM changes, one of the selection's position anchors
may have been moved to a new document. In that case, just clear the selection. Also add
asserts to ensure the selection is in good state after unapply and reapply commands.

  • editing/CompositeEditCommand.cpp:

(WebCore::EditCommandComposition::unapply): Add security assert to ensure selection is in
good state.
(WebCore::EditCommandComposition::reapply): Ditto.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): If the selection's
position anchors have been moved to a new document then just clear the selection.
(WebCore::FrameSelection::isConnectedToDocument const): New method to verify that all the
positions of the visible selection are in m_document.

  • editing/FrameSelection.h: Declare new method.
  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::document const): New method that returns a common document for
all positions or nullptr otherwise.

  • editing/VisibleSelection.h: Declare new method.
6:15 AM Changeset in webkit [274861] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

REGRESSION(r274860): error: ‘class WebCore::ExtensionsGLOpenGLCommon’ has no member named ‘drawArraysInstancedANGLE’
https://bugs.webkit.org/show_bug.cgi?id=223633

Unreviewed build fix.

Fix WPE build by adding the functions to ExtensionsGLOpenGLCommon as pure virtual functions.

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-23

  • platform/graphics/opengl/ExtensionsGLOpenGL.h:
  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.h:
3:57 AM Changeset in webkit [274860] by commit-queue@webkit.org
  • 10 edits in trunk/Source

Move instanced drawing functionality from ExtensionsGL to GraphicsContextGL
https://bugs.webkit.org/show_bug.cgi?id=223179

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

Remove unused instanced rendering functions from ExtensionsGL.
They are already in GraphicsContextGL interfaces.
ExtensionsGL is being removed as it is redundant. The extension object
is the same object as the context object and not useful.

Source/WebCore:

  • platform/graphics/ExtensionsGL.h:
  • platform/graphics/angle/ExtensionsGLANGLE.cpp:
  • platform/graphics/angle/ExtensionsGLANGLE.h:
  • platform/graphics/opengl/ExtensionsGLOpenGL.h:

Source/WebKit:

  • GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:

(drawBuffersEXT):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:
3:54 AM Changeset in webkit [274859] by Chris Lord
  • 1 edit
    6 adds in trunk/LayoutTests/imported/w3c

Import WPT html/canvas/offscreen/manual/draw-generic-family tests
https://bugs.webkit.org/show_bug.cgi?id=223630

Reviewed by Youenn Fablet.

  • web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/2d.text.draw.generic.family-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/2d.text.draw.generic.family.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/2d.text.draw.generic.family.w-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/2d.text.draw.generic.family.w.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/w3c-import.log: Added.
3:35 AM Changeset in webkit [274858] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.30.6

WPE WebKit 2.30.6

3:34 AM Changeset in webkit [274857] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.30

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.30.6 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.30.6.
3:29 AM Changeset in webkit [274856] by commit-queue@webkit.org
  • 6 edits in trunk/Source

ANGLE is missing the explicit context headers
https://bugs.webkit.org/show_bug.cgi?id=223470

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-23
Reviewed by Alexey Proskuryakov.

Source/ThirdParty/ANGLE:

Add the autogenerated .inc files for explicit context
API into the ANGLE public headers.

  • ANGLE.xcodeproj/project.pbxproj:
  • adjust-angle-include-paths.py:

(replace):

Source/WebCore:

  • platform/graphics/angle/ANGLEHeaders.h:

Remove the hack that was needed when including ANGLE without
the explicit context headers.

2:15 AM Changeset in webkit [274855] by youenn@apple.com
  • 6 edits in trunk/Source/WebKit

Enable webrtc GPU Process feature flag
https://bugs.webkit.org/show_bug.cgi?id=223582

Reviewed by Eric Carlson.

Enable WebRTC GPU process feature flag.
Make use of it for WebRTC codecs experimental flag default value.
Make use of it for WebRTC video capture experimental flag default value on iOS. Keep it to false on MacOS.
Update audio capture experimental flag default value to false on MacOS until we can use the feature flag value.
No change of behavior.

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-watchos.plist:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCaptureAudioInGPUProcessEnabled):
(WebKit::defaultCaptureVideoInGPUProcessEnabled):
(WebKit::defaultWebRTCCodecsInGPUProcess):

1:56 AM Changeset in webkit [274854] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

Debug assert failure in RenderTable::layout()
https://bugs.webkit.org/show_bug.cgi?id=218575

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-03-23
Reviewed by Ryosuke Niwa.

Add a test for r274627.

  • printing/page-break-table-sections-crash-expected.txt: Added.
  • printing/page-break-table-sections-crash.html: Added.
1:52 AM Changeset in webkit [274853] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

No scrolling momentum with 'scroll-snap-type: x mandatory' if the scroller scrolls vertically
https://bugs.webkit.org/show_bug.cgi?id=213571
<rdar://problem/64715507>

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-03-23
Reviewed by Simon Fraser.

Source/WebCore:

When handling momentum scrolling for scroll containers that snap, use the
predicted momentum scroll destination for axes that do not snap. Using
the initial scroll offset here was causing momentum scrolling in these axes
to end prematurely.

Test: tiled-drawing/scrolling/scroll-snap/scroll-snap-momentum-in-non-snapping-axis.html

  • platform/ScrollSnapAnimatorState.cpp:

(WebCore::ScrollSnapAnimatorState::targetOffsetForStartOffset const): Use the predicted
scroll offset. Even though the startOffset parameter is no longer used, do not remove
it because it will be used in the fix for https://bugs.webkit.org/show_bug.cgi?id=223406.

LayoutTests:

  • tiled-drawing/scrolling/scroll-snap/scroll-snap-momentum-in-non-snapping-axis-expected.txt: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-momentum-in-non-snapping-axis.html: Added.
12:02 AM Changeset in webkit [274852] by Said Abou-Hallawa
  • 4 edits in trunk

SVG links navigate only to internal animation elements and <view> anchors
https://bugs.webkit.org/show_bug.cgi?id=223161

Reviewed by Ryosuke Niwa.

Source/WebCore:

The specs for the SVG anchor element <a> have changed in SVG2.

Link: https://svgwg.org/svg2-draft/linking.html#Links

After deprecating the xlink namespace, the SVG anchor element <a> became
very similar to HTML’s <a> element. They both use attributes in the default
namespace.

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::defaultEventHandler):

LayoutTests:

  • svg/hixie/links/003.xml:

Mar 22, 2021:

11:37 PM Changeset in webkit [274851] by Russell Epstein
  • 11 edits in branches/safari-611.1.21.3-branch/Source/WebCore

Cherry-pick r274846. rdar://problem/75711124

Use JSValueInWrappedObject to keep the JSObject alive for QuickTimePluginReplacement
https://bugs.webkit.org/show_bug.cgi?id=223561
<rdar://75634407>

Reviewed by Geoffrey Garen.

This patch replaces QuickTimePluginReplacement's m_scriptObject member variable by
JSValueInWrappedObject in HTMLPlugInElement and hooks it up with the slot visitor.

Also use WeakPtr instead of a raw pointer for the back reference to the plugin element
in QuickTimePluginReplacement and YouTubePluginReplacement.

  • Modules/plugins/PluginReplacement.h: (WebCore::PluginReplacement::InstallResult): Added; a boolean indicating the installation had succeeded and the script object for QuickTimePluginReplacement. (WebCore::PluginReplacement::scriptObject): Deleted.
  • Modules/plugins/QuickTimePluginReplacement.h:
  • Modules/plugins/QuickTimePluginReplacement.mm: (WebCore::QuickTimePluginReplacement::QuickTimePluginReplacement): Deployed WeakPtr. (WebCore::QuickTimePluginReplacement::~QuickTimePluginReplacement): Removed the superflous de-initialization of the member variables. (WebCore::QuickTimePluginReplacement::installReplacement): Now returns JSValue instead of storing it in m_scriptObject.
  • Modules/plugins/YouTubePluginReplacement.cpp: (WebCore::YouTubePluginReplacement::YouTubePluginReplacement): Deployed WeakPtr. (WebCore::YouTubePluginReplacement::installReplacement):
  • Modules/plugins/YouTubePluginReplacement.h:
  • bindings/scripts/CodeGeneratorJS.pm: (InstanceNeedsVisitChildren): Generate visitChildren when an IDL has Plugin attribute. (GenerateImplementation): Visit the newly added JSValueInWrappedObject.
  • html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot): Store the script object returned by QuickTimePluginReplacement::installReplacement in the newly added member variable. (WebCore::HTMLPlugInElement::scriptObjectForPluginReplacement): Updated.
  • html/HTMLPlugInElement.h: (WebCore::HTMLPlugInElement::pluginReplacementScriptObject): Added. Used by visitChildren.

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

11:35 PM Changeset in webkit [274850] by Russell Epstein
  • 11 edits in branches/safari-611.1.21.2-branch/Source/WebCore

Cherry-pick r274846. rdar://problem/75706515

Use JSValueInWrappedObject to keep the JSObject alive for QuickTimePluginReplacement
https://bugs.webkit.org/show_bug.cgi?id=223561
<rdar://75634407>

Reviewed by Geoffrey Garen.

This patch replaces QuickTimePluginReplacement's m_scriptObject member variable by
JSValueInWrappedObject in HTMLPlugInElement and hooks it up with the slot visitor.

Also use WeakPtr instead of a raw pointer for the back reference to the plugin element
in QuickTimePluginReplacement and YouTubePluginReplacement.

  • Modules/plugins/PluginReplacement.h: (WebCore::PluginReplacement::InstallResult): Added; a boolean indicating the installation had succeeded and the script object for QuickTimePluginReplacement. (WebCore::PluginReplacement::scriptObject): Deleted.
  • Modules/plugins/QuickTimePluginReplacement.h:
  • Modules/plugins/QuickTimePluginReplacement.mm: (WebCore::QuickTimePluginReplacement::QuickTimePluginReplacement): Deployed WeakPtr. (WebCore::QuickTimePluginReplacement::~QuickTimePluginReplacement): Removed the superflous de-initialization of the member variables. (WebCore::QuickTimePluginReplacement::installReplacement): Now returns JSValue instead of storing it in m_scriptObject.
  • Modules/plugins/YouTubePluginReplacement.cpp: (WebCore::YouTubePluginReplacement::YouTubePluginReplacement): Deployed WeakPtr. (WebCore::YouTubePluginReplacement::installReplacement):
  • Modules/plugins/YouTubePluginReplacement.h:
  • bindings/scripts/CodeGeneratorJS.pm: (InstanceNeedsVisitChildren): Generate visitChildren when an IDL has Plugin attribute. (GenerateImplementation): Visit the newly added JSValueInWrappedObject.
  • html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot): Store the script object returned by QuickTimePluginReplacement::installReplacement in the newly added member variable. (WebCore::HTMLPlugInElement::scriptObjectForPluginReplacement): Updated.
  • html/HTMLPlugInElement.h: (WebCore::HTMLPlugInElement::pluginReplacementScriptObject): Added. Used by visitChildren.

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

11:23 PM Changeset in webkit [274849] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Nullptr crash in WebCore::RenderObject::RenderObjectBitfields::isLineBreak() where a NULL check is missing.
https://bugs.webkit.org/show_bug.cgi?id=223409

Patch by Venky Dass <yaranamavenkataramana@apple.com> on 2021-03-22
Reviewed by Ryosuke Niwa.

Source/WebCore:

When the check for LineBreak is performed the BR elmement NULL check is not performed. Which results in a crash
The fix therefore is to check for NULL.

Test: LayoutTests/editing/inserting/insert-paragraph-between-hr-and-br-assigned-to-slot-crash.html

  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::doApply):

LayoutTests:

Adding a regression test case.

  • editing/inserting/insert-paragraph-between-hr-and-br-assigned-to-slot-crash-expected.txt: Added.
  • editing/inserting/insert-paragraph-between-hr-and-br-assigned-to-slot-crash.html: Added.
11:22 PM Changeset in webkit [274848] by Russell Epstein
  • 11 edits in branches/safari-611.1.21.0-branch/Source/WebCore

Cherry-pick r274846. rdar://problem/75706510

Use JSValueInWrappedObject to keep the JSObject alive for QuickTimePluginReplacement
https://bugs.webkit.org/show_bug.cgi?id=223561
<rdar://75634407>

Reviewed by Geoffrey Garen.

This patch replaces QuickTimePluginReplacement's m_scriptObject member variable by
JSValueInWrappedObject in HTMLPlugInElement and hooks it up with the slot visitor.

Also use WeakPtr instead of a raw pointer for the back reference to the plugin element
in QuickTimePluginReplacement and YouTubePluginReplacement.

  • Modules/plugins/PluginReplacement.h: (WebCore::PluginReplacement::InstallResult): Added; a boolean indicating the installation had succeeded and the script object for QuickTimePluginReplacement. (WebCore::PluginReplacement::scriptObject): Deleted.
  • Modules/plugins/QuickTimePluginReplacement.h:
  • Modules/plugins/QuickTimePluginReplacement.mm: (WebCore::QuickTimePluginReplacement::QuickTimePluginReplacement): Deployed WeakPtr. (WebCore::QuickTimePluginReplacement::~QuickTimePluginReplacement): Removed the superflous de-initialization of the member variables. (WebCore::QuickTimePluginReplacement::installReplacement): Now returns JSValue instead of storing it in m_scriptObject.
  • Modules/plugins/YouTubePluginReplacement.cpp: (WebCore::YouTubePluginReplacement::YouTubePluginReplacement): Deployed WeakPtr. (WebCore::YouTubePluginReplacement::installReplacement):
  • Modules/plugins/YouTubePluginReplacement.h:
  • bindings/scripts/CodeGeneratorJS.pm: (InstanceNeedsVisitChildren): Generate visitChildren when an IDL has Plugin attribute. (GenerateImplementation): Visit the newly added JSValueInWrappedObject.
  • html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot): Store the script object returned by QuickTimePluginReplacement::installReplacement in the newly added member variable. (WebCore::HTMLPlugInElement::scriptObjectForPluginReplacement): Updated.
  • html/HTMLPlugInElement.h: (WebCore::HTMLPlugInElement::pluginReplacementScriptObject): Added. Used by visitChildren.

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

11:19 PM Changeset in webkit [274847] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Crash in ReplaceSelectionCommand::doApply()
https://bugs.webkit.org/show_bug.cgi?id=223545

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-03-22
Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: editing/execCommand/insert-image-in-composed-list.html

Add a missing check in ReplaceSelectionCommand::doApply()
to prevent calling splitTreeToNode() with nullptr.

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::doApply):

LayoutTests:

Add a test to catch this null pointer dereference.
Thanks to Ryosuke Niwa for significant work in reducing
this test case.

  • editing/execCommand/insert-image-in-composed-list-expected.txt: Added.
  • editing/execCommand/insert-image-in-composed-list.html: Added.
10:53 PM Changeset in webkit [274846] by rniwa@webkit.org
  • 11 edits in trunk/Source/WebCore

Use JSValueInWrappedObject to keep the JSObject alive for QuickTimePluginReplacement
https://bugs.webkit.org/show_bug.cgi?id=223561
<rdar://75634407>

Reviewed by Geoffrey Garen.

This patch replaces QuickTimePluginReplacement's m_scriptObject member variable by
JSValueInWrappedObject in HTMLPlugInElement and hooks it up with the slot visitor.

Also use WeakPtr instead of a raw pointer for the back reference to the plugin element
in QuickTimePluginReplacement and YouTubePluginReplacement.

  • Modules/plugins/PluginReplacement.h:

(WebCore::PluginReplacement::InstallResult): Added; a boolean indicating the installation
had succeeded and the script object for QuickTimePluginReplacement.
(WebCore::PluginReplacement::scriptObject): Deleted.

  • Modules/plugins/QuickTimePluginReplacement.h:
  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::QuickTimePluginReplacement): Deployed WeakPtr.
(WebCore::QuickTimePluginReplacement::~QuickTimePluginReplacement): Removed
the superflous de-initialization of the member variables.
(WebCore::QuickTimePluginReplacement::installReplacement): Now returns JSValue
instead of storing it in m_scriptObject.

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::YouTubePluginReplacement): Deployed WeakPtr.
(WebCore::YouTubePluginReplacement::installReplacement):

  • Modules/plugins/YouTubePluginReplacement.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(InstanceNeedsVisitChildren): Generate visitChildren when an IDL has Plugin attribute.
(GenerateImplementation): Visit the newly added JSValueInWrappedObject.

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot): Store the script object returned
by QuickTimePluginReplacement::installReplacement in the newly added member variable.
(WebCore::HTMLPlugInElement::scriptObjectForPluginReplacement): Updated.

  • html/HTMLPlugInElement.h:

(WebCore::HTMLPlugInElement::pluginReplacementScriptObject): Added. Used by visitChildren.

10:26 PM Changeset in webkit [274845] by Russell Epstein
  • 1 copy in tags/Safari-612.1.7.3

Tag Safari-612.1.7.3.

10:26 PM Changeset in webkit [274844] by Russell Epstein
  • 8 edits in branches/safari-612.1.7-branch/Source

Versioning.

WebKit-7612.1.7.4

10:23 PM Changeset in webkit [274843] by Russell Epstein
  • 8 edits in branches/safari-612.1.7-branch/Source

Versioning.

WebKit-7612.1.7.3

10:11 PM Changeset in webkit [274842] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GLIB] Gardening webgl/conformance/extensions/khr-parallel-shader-compile.html timeout after r274711

Unreviewed test gardening.

  • platform/glib/TestExpectations:
9:20 PM Changeset in webkit [274841] by Cameron McCormack
  • 2 edits in trunk/Tools

Fix ordering of my email addresses in contributors.json
https://bugs.webkit.org/show_bug.cgi?id=223622

The first must be the email used for scm access.

Reviewed by Ryosuke Niwa.

  • Scripts/webkitpy/common/config/contributors.json:
9:15 PM Changeset in webkit [274840] by Peng Liu
  • 2 edits in trunk/LayoutTests

REGRESSION (r272842): security/contentSecurityPolicy/video-with-data-url-allowed-by-media-src-star.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=222840

Unreviewed test gardening.

  • platform/ios-device/TestExpectations:
8:23 PM Changeset in webkit [274839] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[GPU Process]: Improve getImageData() perf part 1: Add a GetImageData display list item
https://bugs.webkit.org/show_bug.cgi?id=223544

Unreviewed.

I accidentally forgot to commit one line of the patch!!

  • platform/graphics/displaylists/DisplayListItems.h:
6:53 PM Changeset in webkit [274838] by mmaxfield@apple.com
  • 14 edits in trunk/Source

[GPU Process]: Improve getImageData() perf part 1: Add a GetImageData display list item
https://bugs.webkit.org/show_bug.cgi?id=223544

Reviewed by Wenson Hsieh.

Source/WebCore:

We're moving to a design for getImageData() where the web process and the GPU process
set up a shmem + semaphore ahead-of-time, so that when we encounter a call to getImageData(),
the GPU process can just write into the shmem and signal the semaphore. The web process just
encodes the getImageData() call into the regular display list, flushAsync()s to kick the GPU
process, then just waits on the semaphore. Initial performance testing shows that this is
way, way faster than sending messages containing pixel color data payloads.

This patch is just the first step: Adding a GetImageData display list item. The item
currently gets recorded in the web process and applied in the GPU process, but the application
process currently does nothing.

No new tests because there is no behavior change yet.

  • 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/DisplayListItemBuffer.h:
  • 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::PutImageData::apply const): Deleted.

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::GetImageData::GetImageData):
(WebCore::DisplayList::GetImageData::outputFormat const):
(WebCore::DisplayList::GetImageData::srcRect const):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::getImageData):

  • platform/graphics/displaylists/DisplayListRecorder.h:

Source/WebKit:

  • GPUProcess/graphics/RemoteImageBuffer.h:
  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::decodeItem):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
6:11 PM Changeset in webkit [274837] by Russell Epstein
  • 3 edits in branches/safari-611.1.21.2-branch/Source/WebKit

Cherry-pick r274790. rdar://problem/75712662

Allow additional fcntl
https://bugs.webkit.org/show_bug.cgi?id=223590
<rdar://problem/75702241>

Reviewed by Brent Fulgham.

An additional fcntl is being used and should be allowed.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:

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

6:07 PM Changeset in webkit [274836] by Russell Epstein
  • 3 edits in branches/safari-611.1.21.1-branch/Source/WebKit

Cherry-pick r274790. rdar://problem/75712649

Allow additional fcntl
https://bugs.webkit.org/show_bug.cgi?id=223590
<rdar://problem/75702241>

Reviewed by Brent Fulgham.

An additional fcntl is being used and should be allowed.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:

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

6:06 PM Changeset in webkit [274835] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.14

6:02 PM Changeset in webkit [274834] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-611.1.21.0-branch

Cherry-pick r274796. rdar://problem/75712824

[iOS] Composition text is not initially highlighted when typing in text fields using Pinyin keyboard
https://bugs.webkit.org/show_bug.cgi?id=223563
<rdar://problem/75564516>

Reviewed by Antti Koivisto.

Source/WebCore:

When enabling line layout integration, composition highlights on iOS don't appear when typing an input string
using the Pinyin keyboard for the first time. This is because the text renderer for the inserted composition
text does not contain inline text boxes when painting the composition text on iOS, so the marked text painting
codepath is never triggered.

On macOS, this isn't an issue because the process of setting the composition changes the selection, which then
changes the highlight state of the RenderText, which subsequently calls into ensureLineBoxes(). However,
since selections are drawn using UIKit in the UI process on iOS, we don't end up ensuring that inline text boxes
are constructed for the inserted text.

To address this, we follow macOS behavior by ensuring line box construction on the rendered composition text
when setting the composition.

Test: editing/input/composition-underline-in-search-field.html

  • editing/Editor.cpp: (WebCore::Editor::setComposition):

LayoutTests:

Add a test to verify that marked text underlines show up in search fields.

  • editing/input/composition-underline-in-search-field-expected-mismatch.html: Added.
  • editing/input/composition-underline-in-search-field.html: Added.

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

6:02 PM Changeset in webkit [274833] by Russell Epstein
  • 3 edits in branches/safari-611.1.21.0-branch/Source/WebKit

Cherry-pick r274790. rdar://problem/75712637

Allow additional fcntl
https://bugs.webkit.org/show_bug.cgi?id=223590
<rdar://problem/75702241>

Reviewed by Brent Fulgham.

An additional fcntl is being used and should be allowed.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:

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

5:49 PM Changeset in webkit [274832] by weinig@apple.com
  • 249 edits in trunk/Source/WebCore

[WebIDL] Remove the need to specify [MayThrowException]
https://bugs.webkit.org/show_bug.cgi?id=180019

Reviewed by Darin Adler and Chris Dumez.

Removes the need to specify [MayThrowException] by deducing it from the bound
signature's return value. Any function returning an ExceptionOr is one that throws.

In most cases, this was already handled by toJS<>(..., impl.func()), which had
overloads for the case that the value was an ExceptionOr. The cases this didn't
work for were funtions that returned void, as toJS<>(..., impl.func()) would not
compile. To work around this, toJS<>() can now take a lambda as its value, and
can determine via the lambda's return type if it needs to throw. For instance,
an IDL operation like:

[MayThrowException] undefined func();

used to generate a bindings body that looked like the following :

auto& impl = castedThis->wrapped();
throwScope.release();
propagateException(*lexicalGlobalObject, throwScope, impl.func());
return JSValue::encode(jsUndefined());

will now generate a bindings body that looks like:

auto& impl = castedThis->wrapped();
RELEASE_AND_RETURN(throwScope, JSValue::encode(toJS<IDLUndefined>(*lexicalGlobalObject, throwScope, [&]() -> decltype(auto) { return impl.func(); })));

which closely mirrors a non-undefined return operation. This wrapped lambda form
is only used for operations returning undefined or promises, as those are the only
functions that can return void, but it would be correct to use them for all types,
if not a bit more noisy and perhaps a tiny compile time cost.

NOTE: The use of -> decltype(auto) explicit return type on the lambda is required
to perfectly forward reference types, such as those used by owned promises. Otherwise,
a copy constructor is invoked.

In addition to supporting all operations, this also removes the requirement to annotate
named and indexed getters/setters. This mostly just means always defining a throw scope,
but for named getters it also meant adding a new helper, visibleNamedPropertyItemAccessorFunctor
which constructors the item accessor functor for the accessVisibleNamedProperty
algorithm rather than hard coding it in the generator.

Due to increased use of toJS, the code generator is now checking more return types
(via AddToImplIncludesForIDLType) so the code generator was able to find a few invalid
return types (e.g. use of Promise<bool> rather than Promise<boolean>, etc.) and these
have been fixed and will be an error going forward. Would be a nice improvement to
the code generator to do type checking up front, rather than as a side effect of
code generation, but we will leave that for another day.

  • bindings/js/JSDOMAbstractOperations.h:

(WebCore::visibleNamedPropertyItemAccessorFunctor):
Added. Moves the getterFunctor lambda creation from the GenerateNamedGetterLambda
subroutine in CodeGeneratorJS.pm, but uses deduction and constexpr to determine
if the getter throws.

(WebCore::accessVisibleNamedProperty):
Rename Functor to ItemAccessor to make it a bit more clear what the type does.

  • bindings/js/JSDOMConvertBase.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):
Replace SFINAE-based overloading of toJS/toJSNewlyCreated with constexpr based
conditionals and add the ability to pass in a functor rather than value. If a
functor is used, additional code paths for void and ExpectionOr<void> are added
which explicitly return jsUndefined().

  • bindings/js/JSDOMConvertDate.cpp:

Remove incorrect comment about ExecStates that hasn't applied for a while.

  • bindings/js/JSDOMConvertSequences.h:

Fix comment, replacing ExecState with JSGlobalObject. This has been wrong for
a while, and this is just a drive by fix.

  • bindings/js/JSDOMExceptionHandling.h:

(WebCore::invokeFunctorPropagatingExceptionIfNecessary):
Use an explicit else as part of the constexpr expression to ensure the functor
is not called, even in debug builds.

  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::createDeferredPromise): Deleted.

  • bindings/js/JSDOMPromiseDeferred.h:

Remove unused createDeferredPromise function.

  • bindings/scripts/CodeGeneratorJS.pm:

(AddMapLikeAttributesAndOperationIfNeeded):
(AddSetLikeAttributesAndOperationIfNeeded):
Fix return type of mapped clear operation to be any rather than undefined
to match the implementation, which returns a JSValue (e.g. any). This is now
required as we actually look at the return type via deduction and need it to match.

(GenerateNamedGetterLambda):
Replace most of the implementation with a call to the new visibleNamedPropertyItemAccessorFunctor
helper which returns a lambda with the correct behavior depending on the return type of the inner
lambda passed.

(GenerateGetOwnPropertySlot):
(GenerateGetOwnPropertySlotByIndex):
(GenerateAttributeGetterBodyDefinition):
Match most other parts of the generator and always create a throw scope.

(GenerateOperationDefinition):
Remove explicit call to propagateException now that toJS() will handle that for us.

(GenerateParametersCheck):
Remove explicit call to propagateException now that toJS() will handle that for us.

(GenerateImplementationFunctionCall):
Simplify by using invokeFunctorPropagatingExceptionIfNecessary helper for the "returnArgumentName"
case and relying on toJS handling the other cases.

(NativeToJSValueMayThrow):
Add operation to the list of things that might always throw.

(NativeToJSValue):
Use the lambda wrapped version of toJS for undefined and promise types, which might both
return void and thus require it. To keep most code unchanged, and avoid unnecessary compiler
work, we only use the wrapped version when it might be necessary. If it turns out to be
cheep enough, it might make sense to always use this form for simplicity.

(NeedsExplicitPropagateExceptionCall): Deleted.

  • bindings/scripts/IDLAttributes.json:

Remove MayThrowException.

  • dom/Element.idl:
  • dom/Element.h:

(WebCore::Element::removeAttributeForBindings):
(WebCore::Element::removeAttributeNSForBindings):
Add bindings specific versions of removeAttribute and removeAttributeNS which
have a void return type (rather than the bool used by the main implementation)
as it is now a requirement that that the bound functions signature match the IDL.

  • Modules/cache/DOMCache.idl:

Use the correct interface name, FetchRequest, not Request.

  • Modules/cache/DOMCacheStorage.idl:

Use the correct interface name, DOMCache, not Cache.

  • Modules/encryptedmedia/MediaKeySession.idl:
  • Modules/encryptedmedia/MediaKeys.idl:
  • dom/Document+StorageAccess.idl:
  • page/Navigator+IsLoggedIn.idl:

Use the correct IDL type, boolean, not bool.

  • dom/AbortSignal.idl:

Update whenSignalAborted to match the return type of implementation, which is boolean,
not undefined.

  • testing/ServiceWorkerInternals.idl:

Use the correct interface name, FetchResponse, not Response.

  • workers/service/ServiceWorkerClients.idl:

Use the correct interface names, ServiceWorkerClient, not Client, and ServiceWorkerWindowClient, not WindowClient.

  • workers/service/ServiceWorkerWindowClient.idl:

Use the correct interface names, ServiceWorkerWindowClient, not WindowClient.

  • Modules/applepay/ApplePaySession.idl:
  • Modules/beacon/Navigator+Beacon.idl:
  • Modules/cache/DOMWindow+Caches.idl:
  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.idl:
  • Modules/encryptedmedia/legacy/WebKitMediaKeys.idl:
  • Modules/fetch/FetchHeaders.idl:
  • Modules/fetch/FetchRequest.idl:
  • Modules/fetch/FetchResponse.idl:
  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBKeyRange.idl:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/indexeddb/IDBTransaction.idl:
  • Modules/mediarecorder/MediaRecorder.idl:
  • Modules/mediasession/MediaMetadata.idl:
  • Modules/mediasession/MediaSession.idl:
  • Modules/mediasource/MediaSource.idl:
  • Modules/mediasource/SourceBuffer.idl:
  • Modules/mediastream/RTCDTMFSender.idl:
  • Modules/mediastream/RTCDataChannel.idl:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCRtpReceiver+Transform.idl:
  • Modules/mediastream/RTCRtpSFrameTransform.idl:
  • Modules/mediastream/RTCRtpScriptTransformer.idl:
  • Modules/mediastream/RTCRtpSender+Transform.idl:
  • Modules/mediastream/RTCRtpSender.idl:
  • Modules/mediastream/RTCRtpTransceiver.idl:
  • Modules/paymentrequest/MerchantValidationEvent.idl:
  • Modules/paymentrequest/PaymentRequestUpdateEvent.idl:
  • Modules/speech/SpeechRecognition.idl:
  • Modules/webaudio/AudioBuffer.idl:
  • Modules/webaudio/AudioBufferSourceNode.idl:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/AudioListener.idl:
  • Modules/webaudio/AudioNode.idl:
  • Modules/webaudio/AudioParam.idl:
  • Modules/webaudio/AudioScheduledSourceNode.idl:
  • Modules/webaudio/AudioWorkletGlobalScope.idl:
  • Modules/webaudio/AudioWorkletProcessor.idl:
  • Modules/webaudio/BaseAudioContext.idl:
  • Modules/webaudio/BiquadFilterNode.idl:
  • Modules/webaudio/IIRFilterNode.idl:
  • Modules/webaudio/PannerNode.idl:
  • Modules/webaudio/WebKitAudioBufferSourceNode.idl:
  • Modules/webaudio/WebKitAudioContext.idl:
  • Modules/webdatabase/SQLResultSetRowList.idl:
  • Modules/webdatabase/SQLTransaction.idl:
  • Modules/websockets/WebSocket.idl:
  • Modules/webxr/WebXRFrame.idl:
  • Modules/webxr/WebXRReferenceSpace.idl:
  • Modules/webxr/WebXRSession.idl:
  • Modules/webxr/WebXRWebGLLayer.idl:
  • animation/Animatable.idl:
  • animation/AnimationEffect.idl:
  • animation/KeyframeEffect.idl:
  • animation/WebAnimation.idl:
  • css/CSSGroupingRule.idl:
  • css/CSSStyleDeclaration.idl:
  • css/CSSStyleSheet.idl:
  • css/DOMCSSNamespace+CSSPropertiesandValues.idl:
  • css/DOMMatrix.idl:
  • css/DOMMatrixReadOnly.idl:
  • css/DeprecatedCSSOMPrimitiveValue.idl:
  • css/FontFaceSet.idl:
  • css/MediaList.idl:
  • dom/CharacterData.idl:
  • dom/ChildNode.idl:
  • dom/CustomElementRegistry.idl:
  • dom/DOMImplementation.idl:
  • dom/DOMPointReadOnly.idl:
  • dom/DataTransferItemList.idl:
  • dom/Document+HTML.idl:
  • dom/Document.idl:
  • dom/Element+DOMParsing.idl:
  • dom/Element+PointerEvents.idl:
  • dom/EventTarget.idl:
  • dom/MessagePort.idl:
  • dom/MutationObserver.idl:
  • dom/NamedNodeMap.idl:
  • dom/Node.idl:
  • dom/NodeIterator.idl:
  • dom/ParentNode.idl:
  • dom/Range+DOMParsing.idl:
  • dom/Range.idl:
  • dom/Text.idl:
  • dom/TextDecoder.idl:
  • dom/TextDecoderStreamDecoder.idl:
  • dom/TreeWalker.idl:
  • fileapi/Blob.idl:
  • fileapi/FileReader.idl:
  • fileapi/FileReaderSync.idl:
  • html/DOMTokenList.idl:
  • html/HTMLCanvasElement.idl:
  • html/HTMLDialogElement.idl:
  • html/HTMLEmbedElement.idl:
  • html/HTMLFrameElement.idl:
  • html/HTMLIFrameElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLMediaElement.idl:
  • html/HTMLObjectElement.idl:
  • html/HTMLOptionsCollection.idl:
  • html/HTMLSelectElement.idl:
  • html/HTMLTableElement.idl:
  • html/HTMLTableRowElement.idl:
  • html/HTMLTableSectionElement.idl:
  • html/HTMLTextAreaElement.idl:
  • html/HTMLVideoElement.idl:
  • html/OffscreenCanvas.idl:
  • html/TimeRanges.idl:
  • html/canvas/CanvasDrawImage.idl:
  • html/canvas/CanvasFillStrokeStyles.idl:
  • html/canvas/CanvasGradient.idl:
  • html/canvas/CanvasImageData.idl:
  • html/canvas/CanvasPath.idl:
  • html/canvas/CanvasPattern.idl:
  • html/canvas/CanvasTransform.idl:
  • html/canvas/ImageBitmapRenderingContext.idl:
  • html/canvas/Path2D.idl:
  • html/canvas/WebGL2RenderingContext.idl:
  • html/canvas/WebGLRenderingContextBase.idl:
  • html/track/TextTrack.idl:
  • inspector/InspectorAuditAccessibilityObject.idl:
  • inspector/InspectorAuditDOMObject.idl:
  • inspector/InspectorAuditResourcesObject.idl:
  • loader/appcache/DOMApplicationCache.idl:
  • page/Crypto.idl:
  • page/DOMSelection.idl:
  • page/DOMWindow.idl:
  • page/History.idl:
  • page/Location.idl:
  • page/NavigatorServiceWorker.idl:
  • page/Performance+UserTiming.idl:
  • page/PerformanceObserver.idl:
  • page/UndoManager.idl:
  • page/UserMessageHandler.idl:
  • page/WindowOrWorkerGlobalScope.idl:
  • storage/Storage.idl:
  • svg/SVGAngle.idl:
  • svg/SVGGeometryElement.idl:
  • svg/SVGGraphicsElement.idl:
  • svg/SVGLength.idl:
  • svg/SVGLengthList.idl:
  • svg/SVGMatrix.idl:
  • svg/SVGNumberList.idl:
  • svg/SVGPathSegList.idl:
  • svg/SVGPointList.idl:
  • svg/SVGStringList.idl:
  • svg/SVGTextContentElement.idl:
  • svg/SVGTransform.idl:
  • svg/SVGTransformList.idl:
  • testing/InternalSettings.idl:
  • testing/Internals.idl:
  • workers/DedicatedWorkerGlobalScope.idl:
  • workers/Worker.idl:
  • workers/WorkerGlobalScope.idl:
  • workers/service/ExtendableEvent.idl:
  • workers/service/FetchEvent.idl:
  • workers/service/ServiceWorker.idl:
  • workers/service/ServiceWorkerClient.idl:
  • worklets/PaintWorkletGlobalScope.idl:
  • xml/DOMParser.idl:
  • xml/XMLHttpRequest.idl:
  • xml/XPathEvaluatorBase.idl:
  • xml/XPathExpression.idl:
  • xml/XPathResult.idl:

Remove use of [MayThrowException].

  • bindings/scripts/test/JS/*:

Remove uses of [MayThrowException] in the tests and update all the test results.

5:48 PM Changeset in webkit [274831] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for AppleWin after r274827
https://bugs.webkit.org/show_bug.cgi?id=223500
<rdar://problem/75706741>

  • platform/graphics/win/FontCustomPlatformData.cpp:

(WebCore::createFontCustomPlatformData):

5:47 PM Changeset in webkit [274830] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Base GitHub mock links on provided remote
https://bugs.webkit.org/show_bug.cgi?id=223611
<rdar://problem/75713760>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/git_hub.py:

(GitHub.init): Standardize mock GitHub path.
(GitHub._parents_of_request): Base link path on GitHub remote.

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

(TestGitHub):

5:43 PM Changeset in webkit [274829] by commit-queue@webkit.org
  • 15 edits in trunk/Source

Source/WebCore:
Move management of RemoteCommandListener from MediaSessionManagerCocoa into NowPlayingManager.
https://bugs.webkit.org/show_bug.cgi?id=223435
<rdar://problem/75567198>

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-22
Reviewed by Eric Carlson.

NowPlaying and RemoteCommandListener kind of do the same things, as such it make sense to combine the two
and hide the implementation details from consumers.
We move the handling of setting and clearing the NowPlayingInfo information to an expanded
NowPlayingManager which now also runs in the webcontent process.
The job to ensure a RemoteCommandListener is set is now up to the NowPlayingManager as well as
dealing with changes in NowPlayingInfo content.
Ideally we would prefer to remove all code related to MediaRemote from MediaSessionManagerCocoa;
however for ease we leave it there to avoid having to deal with objective-C interface in NowPlayingManager.
No change in observable behavior.

  • platform/MediaStrategy.h: The two existing methods dealing with NowPlayingInfo are removed, instead we can override the entire creation of the NowPlayingManager.
  • platform/MediaStrategy.cpp:

(WebCore::MediaStrategy::createNowPlayingManager const): default implementation for createNowPlayingManager

  • platform/NowPlayingManager.cpp: Add methods used in MediaSessionManagerCocoa used to deal with RemoteCommandListener.

(WebCore::NowPlayingManager::didReceiveRemoteControlCommand):
(WebCore::NowPlayingManager::addClient): Add explicit method to add a RemoteCommandListener listener, to be called before calling setNowPlayingInfo if needed.
(WebCore::NowPlayingManager::removeClient): renamed from clearNowPlayingInfoClient.
(WebCore::NowPlayingManager::clearNowPlayingInfo):
(WebCore::NowPlayingManager::clearNowPlayingInfoPrivate): Virtual class with default implementation which will immediately communicate with MediaRemote.
(WebCore::NowPlayingManager::setNowPlayingInfo):
(WebCore::NowPlayingManager::setNowPlayingInfoPrivate): Virtual class with default implementation which will immediately communicate with MediaRemote.
(WebCore::NowPlayingManager::setSupportsSeeking): We explicitly set a different setSupportsSeeking method for code clarity.
(WebCore::NowPlayingManager::addSupportedCommand):
(WebCore::NowPlayingManager::removeSupportedCommand):
(WebCore::NowPlayingManager::setSupportedRemoteCommands):
(WebCore::NowPlayingManager::updateSupportedCommands):
(WebCore::NowPlayingManager::ensureRemoteCommandListenerCreated):
(WebCore::NowPlayingManager::clearNowPlayingInfoClient): Deleted.

  • platform/NowPlayingManager.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.h: Remove now unused members
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm: Amended to use new NowPlayingManager.

(WebCore::MediaSessionManagerCocoa::MediaSessionManagerCocoa):
(WebCore::MediaSessionManagerCocoa::scheduleSessionStatusUpdate):
(WebCore::MediaSessionManagerCocoa::addSession):
(WebCore::MediaSessionManagerCocoa::removeSession):
(WebCore::MediaSessionManagerCocoa::setCurrentSession):
(WebCore::MediaSessionManagerCocoa::addSupportedCommand):
(WebCore::MediaSessionManagerCocoa::removeSupportedCommand):
(WebCore::MediaSessionManagerCocoa::updateNowPlayingInfo):

Source/WebKit:
Move management of RemoteCommandListener from MediaSessionManagerCocoa into NowPlayingManager
https://bugs.webkit.org/show_bug.cgi?id=223435
<rdar://problem/75567198>

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-22
Reviewed by Eric Carlson.

  • GPUProcess/GPUConnectionToWebProcess.cpp: Update methods to use new NowPlayingManager API.

(WebKit::GPUConnectionToWebProcess::clearNowPlayingInfo):
(WebKit::GPUConnectionToWebProcess::setNowPlayingInfo):
(WebKit::GPUConnectionToWebProcess::updateSupportedRemoteCommands): explicitly call setSupportsSeek

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUConnectionToWebProcess.messages.in: Remove argument that can be easily inferred in code.
  • WebProcess/GPU/media/WebMediaStrategy.cpp: Override createNowPlayingManager method when using the GPU process.

(WebKit::WebMediaStrategy::createNowPlayingManager const):
(WebKit::WebMediaStrategy::clearNowPlayingInfo): Deleted.
(WebKit::WebMediaStrategy::setNowPlayingInfo): Deleted.

  • WebProcess/GPU/media/WebMediaStrategy.h:

Source/WebKitLegacy/mac:
Move management of RemoteCommandListener from MediaSessionManagerCocoa into NowPlayingManager
https://bugs.webkit.org/show_bug.cgi?id=223435
<rdar://problem/75567198>

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-22
Reviewed by Eric Carlson.

  • WebCoreSupport/WebPlatformStrategies.mm: Remove methods, use default implementation instead.
5:40 PM Changeset in webkit [274828] by Russell Epstein
  • 1 copy in tags/Safari-612.1.7.2

Tag Safari-612.1.7.2.

5:32 PM Changeset in webkit [274827] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for AppleWin after r274791
https://bugs.webkit.org/show_bug.cgi?id=223500
<rdar://problem/75706741>

  • platform/graphics/win/FontCustomPlatformData.cpp:

(WebCore::createFontCustomPlatformData):

5:22 PM Changeset in webkit [274826] by Chris Fleizach
  • 3 edits
    2 adds in trunk

AX: textRectsFromMarkers always fails
https://bugs.webkit.org/show_bug.cgi?id=223556
<rdar://74256003>

Reviewed by Zalan Bujtas.

Source/WebCore:

The textRectsFromMarkers:text: method is always failing to return a valid answer because when we try to extend
the search range of text to search, we're creating a range that can't be iterated with a CharacterIterator

Test: accessibility/ios-simulator/text-rects-for-range-matches.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::rangeMatchesTextNearRange):

LayoutTests:

  • accessibility/ios-simulator/text-rects-for-range-matches.html: Added.
  • accessibility/ios-simulator/text-rects-for-range-matches-expected.txt: Added.
5:20 PM Changeset in webkit [274825] by Russell Epstein
  • 13 edits in branches/safari-611.1.21.0-branch/Source

Revert "Cherry-pick r274746. rdar://problem/75706601"

This reverts commit r274795.

5:18 PM Changeset in webkit [274824] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Web Animations] nullptr crash in updatePlaybackRate() with no timeline
https://bugs.webkit.org/show_bug.cgi?id=223095

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

Changed to WebAnimation::remove() to use setTimeline() instead of setTimelineInternal()
to ensure the animation is in the correct play state.

No new tests as this relies on navigating while updating the playback rate and I was unable to make
a reliable test case.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::remove): Changed setTimelineInternal() to setTimeline() in order to
ensure the animation has the correct play state.

5:13 PM Changeset in webkit [274823] by Russell Epstein
  • 8 edits in branches/safari-612.1.7-branch/Source

Versioning.

WebKit-7612.1.7.2

5:05 PM Changeset in webkit [274822] by Patrick Angle
  • 11 edits in trunk/Source

Web Inspector: Port grid overlay drawing to iOS
https://bugs.webkit.org/show_bug.cgi?id=223396

Reviewed by BJ Burg.

Source/WebCore:

Enable Grid Overlays to be drawn on iOS be including computed overlay objects in the
InspectorOverlay::Highlight. Some refactoring was also done to reduce code duplication in the normal and iOS
paths.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • FloatLine should be accessible from WebKit::*
  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::paint):
(WebCore::InspectorOverlay::getHighlight):

  • Add GridHighlightOverlays to the highlight object for iOS.

(WebCore::InspectorOverlay::drawGridOverlay):
(WebCore::buildLabel):
(WebCore::InspectorOverlay::buildGridOverlay):

  • Refactored actual drawing into a separate method to reduce the amount of code duplication needed between the

normal path and the iOS path.

  • inspector/InspectorOverlay.h:

(WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::encode const):
(WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::decode):
(WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::Label::encode const):
(WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::Label::decode):
(WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::Area::encode const):
(WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::Area::decode):

  • Support encode/decode for sending new Highlight components to the UIProcess.
  • platform/graphics/FloatLine.h:

(WebCore::FloatLine::encode const):
(WebCore::FloatLine::decode):

  • Support encode/decode as part of serialization of InspectorOverlay::Highlight

Source/WebKit:

Port drawing routines from WebCore::InspectorOverlay to use CALayers on iOS to enable drawing grid overlays
on iOS. Drawing logic is, as much as possible, equivalent to that defined in WebCore::InspectorOverlay, with
changes to fit the CALayer model.

  • UIProcess/Inspector/ios/WKInspectorHighlightView.h:
  • UIProcess/Inspector/ios/WKInspectorHighlightView.mm:

(-[WKInspectorHighlightView initWithFrame:]):
(-[WKInspectorHighlightView _removeAllLayers]):
(-[WKInspectorHighlightView _createLayers:]):
(layerPath):

  • Path should be closed so that objects being stroked are stroked on all edges.

(-[WKInspectorHighlightView _layoutForNodeListHighlight:]):
(-[WKInspectorHighlightView _layoutForRectsHighlight:]):
(-[WKInspectorHighlightView _createGridOverlayLayers:scale:]):
(createLayoutHatchingLayer):
(createLayoutLabelLayer):
(-[WKInspectorHighlightView _createGridOverlayLayer:scale:]):

  • Create layers for the grid overlays.

(-[WKInspectorHighlightView update:scale:]):

  • Obtain the view scale so that CATextLayers can have the correct content scale set.

(-[WKInspectorHighlightView update:]): Deleted.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _showInspectorHighlight:]):

5:05 PM Changeset in webkit [274821] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

[WebXR] Enumerate XR devices via ChromeClient in WebXRSystem
https://bugs.webkit.org/show_bug.cgi?id=223520

Patch by Ada Chan <ada.chan@apple.com> on 2021-03-22
Reviewed by Sam Weinig.

We want to avoid using singletons in the WebProcess and be able
to proxy the devices from the UI process.

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::ensureImmersiveXRDeviceIsSelected):
Instead of getting the devices from the singleton PlatformXR::Instance,
get them from the ChromeClient.

  • WebCore.xcodeproj/project.pbxproj:

Mark PlatformXR.h private so it's visible to WebKit.

  • page/ChromeClient.h:

(WebCore::ChromeClient::enumerateImmersiveXRDevices):
The default implementation will call PlatformXR::Instance::enumerateImmersiveXRDevices()
to keep current functionality.

  • platform/xr/PlatformXR.h:

Export methods that are now called in ChromeClient.

5:02 PM Changeset in webkit [274820] by Peng Liu
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] media/media-source/media-source-canplaythrough-event.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223012

Unreviewed test gardening.

This flaky test failure has been fixed by r274591 and r274731.

  • platform/mac-wk2/TestExpectations:
4:57 PM Changeset in webkit [274819] by eric.carlson@apple.com
  • 5 edits in trunk/Source/WebCore

AVAudioSessionCaptureDeviceManager should use crossThreadCopy
https://bugs.webkit.org/show_bug.cgi?id=223565
<rdar://75480589>

Reviewed by Youenn Fablet.

Tested manually, this can only be tested on device.

  • platform/mediastream/CaptureDevice.h: Change access restriction for member

variables from private: to protected: so derived classes can access them
directly.

  • platform/mediastream/ios/AVAudioSessionCaptureDevice.h:
  • platform/mediastream/ios/AVAudioSessionCaptureDevice.mm:

(WebCore::AVAudioSessionCaptureDevice::AVAudioSessionCaptureDevice): New constructor.
(WebCore::AVAudioSessionCaptureDevice::isolatedCopy const): New.

  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:

(WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices): Use
WTFMove(deviceList).isolatedCopy() when moving from AVAudioSession queue
to main thread.
(WebCore::AVAudioSessionCaptureDeviceManager::getCaptureDevices): Ditto.

4:36 PM Changeset in webkit [274818] by Patrick Angle
  • 10 edits in trunk/Source/WebCore

REGRESSION(r272433): Inspector should not instrument inside WebCore::Node::setRenderer
https://bugs.webkit.org/show_bug.cgi?id=223559

Reviewed by Ryosuke Niwa and Devin Rousso.

Existing test coverage:

  • inspector/css/nodeLayoutContextTypeChanged.html
  • inspector/css/setLayoutContextTypeChangedMode.html

The previous approach to observing render changes was most likely a performance regression in a very hot code
path (Node::setRenderer). This patch resolves this by not instrumenting in this the hot path. Instead we call
inspector instrumentation inside the constructors/destructors of only the RenderObject subclasses we are
interested in observing layout changes for.

Additionally, layout change events are now added to a Vector of pending changes, which will be sent to the
front-end later in order to avoid evaluating JavaScript inside a destructor in WK1 with the new instrumentation
points.

  • dom/Element.cpp:

(WebCore::Element::didChangeRenderer): Deleted.

  • dom/Element.h:
  • dom/Node.h:

(WebCore::Node::didChangeRenderer): Deleted.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::nodeLayoutContextChangedImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::nodeLayoutContextChanged):

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::InspectorCSSAgent):
(WebCore::InspectorCSSAgent::reset):
(WebCore::InspectorCSSAgent::nodeLayoutContextTypeChanged):
(WebCore::InspectorCSSAgent::layoutContextTypeChangedTimerFired):

  • Moved layout change events behind a timer firing.
  • inspector/agents/InspectorCSSAgent.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::RenderGrid):
(WebCore::RenderGrid::~RenderGrid):

  • Move instrumentation from Node::setRenderer to RenderGrid.
  • rendering/RenderObject.h:

(WebCore::Node::setRenderer):

4:30 PM Changeset in webkit [274817] by ysuzuki@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] JSCustomGetterFunction/JSCustomSetterFunction should use Identifier for their field
https://bugs.webkit.org/show_bug.cgi?id=223588

Reviewed by Mark Lam and Saam Barati.

PropertyName is the holder for passing it as an argument, and it does not ref/deref underlying UniqueStringImpl.
We should use Identifier to keep it strongly ref-ed in JSCustomGetterFunction/JSCustomSetterFunction.
And we should make JSCustomGetterFunction/JSCustomSetterFunction destructible objects since Identifier needs to
deref underlying UniqueStringImpl when destroying these functions.

  • runtime/JSCustomGetterFunction.cpp:

(JSC::JSCustomGetterFunction::JSCustomGetterFunction):
(JSC::JSCustomGetterFunction::destroy):

  • runtime/JSCustomGetterFunction.h:
  • runtime/JSCustomSetterFunction.cpp:

(JSC::JSCustomSetterFunction::JSCustomSetterFunction):
(JSC::JSCustomSetterFunction::destroy):

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

(JSC::VM::VM):

  • runtime/VM.h:
4:26 PM Changeset in webkit [274816] by Peng Liu
  • 12 edits in trunk

[GPUP] Add a "wallTime" field to struct RemoteMediaPlayerState
https://bugs.webkit.org/show_bug.cgi?id=223523

Reviewed by Eric Carlson.

Source/WebCore:

No new tests. Fix test failures:

  • media/video-controller-child-rate.html
  • media/media-controller-unpause.html
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::currentMediaTime const): A minor fix for the comment.

Source/WebKit:

Function MediaPlayerPrivateRemote::currentMediaTime() returns the
current media time in the cached state, which is not the "current"
media time of the media player. This patch adds a "wallTime" field
to struct RemoteMediaPlayerState, so that MediaPlayerPrivateRemote
can adjust the currentTime in the cached state based on m_rate
and WallTime::now() and returns a more accurate value.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::~RemoteMediaPlayerProxy):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerPlaybackStateChanged):
(WebKit::RemoteMediaPlayerProxy::updateCachedState):
(WebKit::RemoteMediaPlayerProxy::performTaskAtMediaTime):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::pause):
(WebKit::MediaPlayerPrivateRemote::currentMediaTime const):
(WebKit::MediaPlayerPrivateRemote::playbackStateChanged):
(WebKit::MediaPlayerPrivateRemote::updateCachedState):
(WebKit::MediaPlayerPrivateRemote::performTaskAtMediaTime):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
  • WebProcess/GPU/media/RemoteMediaPlayerState.h:

(WebKit::RemoteMediaPlayerState::encode const):
(WebKit::RemoteMediaPlayerState::decode):

LayoutTests:

  • platform/wk2/TestExpectations:
4:26 PM Changeset in webkit [274815] by BJ Burg
  • 43 edits
    13 moves in trunk/Source/WebKit

Web Inspector: rename WebInspectorProxy to WebInspectorUIProxy
https://bugs.webkit.org/show_bug.cgi?id=223551

Reviewed by Devin Rousso.

To improve clarity in the codebase, I'm renaming this to be consistent
with it's WebProcess-side counterpart, WebInspectorUI. There are many
different classes with the 'WebInspector' prefix, so it can be difficult
to understand whether a class is associated with the WebInspectorUI
frontend or the InspectorController backend. This fixes one of the biggest
offenders.

For brevity, I have elided function-level changelog entries from files
that have been renamed. This is a mechanical refactoring.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • PlatformFTW.cmake:
  • PlatformWin.cmake:
  • Sources.txt:
  • SourcesCocoa.txt:
  • SourcesGTK.txt:
  • UIProcess/API/APIInspectorClient.h:

(API::InspectorClient::openURLExternally):

  • UIProcess/API/APIUIClient.h:

(API::UIClient::didAttachLocalInspector):
(API::UIClient::willCloseLocalInspector):
(API::UIClient::configurationForLocalInspector):

  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKInspector.cpp:

(WKInspectorGetTypeID):

  • UIProcess/API/C/WKPage.cpp:
  • UIProcess/API/C/mac/WKInspectorPrivateMac.h:
  • UIProcess/API/Cocoa/_WKInspectorInternal.h:
  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:

(-[_WKRemoteWebInspectorViewController initWithConfiguration:]):

  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewControllerInternal.h:
  • UIProcess/API/gtk/WebKitWebInspector.cpp:

(webkitWebInspectorCreate):

  • UIProcess/API/gtk/WebKitWebInspectorPrivate.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:
  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/Automation/WebAutomationSession.cpp:
  • UIProcess/Automation/mac/WebAutomationSessionMac.mm:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::configurationForLocalInspector):
(WebKit::UIDelegate::UIClient::didAttachLocalInspector):
(WebKit::UIDelegate::UIClient::willCloseLocalInspector):

  • UIProcess/Cocoa/WebViewImpl.mm:
  • UIProcess/Inspector/Agents/InspectorBrowserAgent.cpp:
  • UIProcess/Inspector/Cocoa/InspectorDelegate.h:
  • UIProcess/Inspector/Cocoa/InspectorDelegate.mm:

(WebKit::InspectorDelegate::InspectorClient::openURLExternally):

  • UIProcess/Inspector/Cocoa/InspectorExtensionDelegate.mm:
  • UIProcess/Inspector/RemoteWebInspectorUIProxy.cpp: Renamed from Source/WebKit/UIProcess/Inspector/RemoteWebInspectorProxy.cpp.

(WebKit::RemoteWebInspectorUIProxy::RemoteWebInspectorUIProxy):
(WebKit::RemoteWebInspectorUIProxy::~RemoteWebInspectorUIProxy):
(WebKit::RemoteWebInspectorUIProxy::invalidate):
(WebKit::RemoteWebInspectorUIProxy::setDiagnosticLoggingAvailable):
(WebKit::RemoteWebInspectorUIProxy::load):
(WebKit::RemoteWebInspectorUIProxy::closeFromBackend):
(WebKit::RemoteWebInspectorUIProxy::closeFromCrash):
(WebKit::RemoteWebInspectorUIProxy::show):
(WebKit::RemoteWebInspectorUIProxy::sendMessageToFrontend):
(WebKit::RemoteWebInspectorUIProxy::frontendLoaded):
(WebKit::RemoteWebInspectorUIProxy::frontendDidClose):
(WebKit::RemoteWebInspectorUIProxy::reopen):
(WebKit::RemoteWebInspectorUIProxy::resetState):
(WebKit::RemoteWebInspectorUIProxy::bringToFront):
(WebKit::RemoteWebInspectorUIProxy::save):
(WebKit::RemoteWebInspectorUIProxy::append):
(WebKit::RemoteWebInspectorUIProxy::setSheetRect):
(WebKit::RemoteWebInspectorUIProxy::setForcedAppearance):
(WebKit::RemoteWebInspectorUIProxy::startWindowDrag):
(WebKit::RemoteWebInspectorUIProxy::openURLExternally):
(WebKit::RemoteWebInspectorUIProxy::showCertificate):
(WebKit::RemoteWebInspectorUIProxy::sendMessageToBackend):
(WebKit::RemoteWebInspectorUIProxy::createFrontendPageAndWindow):
(WebKit::RemoteWebInspectorUIProxy::closeFrontendPageAndWindow):
(WebKit::RemoteWebInspectorUIProxy::platformCreateFrontendPageAndWindow):
(WebKit::RemoteWebInspectorUIProxy::platformResetState):
(WebKit::RemoteWebInspectorUIProxy::platformBringToFront):
(WebKit::RemoteWebInspectorUIProxy::platformSave):
(WebKit::RemoteWebInspectorUIProxy::platformAppend):
(WebKit::RemoteWebInspectorUIProxy::platformSetSheetRect):
(WebKit::RemoteWebInspectorUIProxy::platformSetForcedAppearance):
(WebKit::RemoteWebInspectorUIProxy::platformStartWindowDrag):
(WebKit::RemoteWebInspectorUIProxy::platformOpenURLExternally):
(WebKit::RemoteWebInspectorUIProxy::platformShowCertificate):
(WebKit::RemoteWebInspectorUIProxy::platformCloseFrontendPageAndWindow):

  • UIProcess/Inspector/RemoteWebInspectorUIProxy.h: Renamed from Source/WebKit/UIProcess/Inspector/RemoteWebInspectorProxy.h.

(WebKit::RemoteWebInspectorUIProxyClient::~RemoteWebInspectorUIProxyClient):
(WebKit::RemoteWebInspectorUIProxy::create):
(WebKit::RemoteWebInspectorUIProxy::setClient):
(WebKit::RemoteWebInspectorUIProxy::isUnderTest const):
(WebKit::RemoteWebInspectorUIProxy::extensionController const):
(WebKit::RemoteWebInspectorUIProxy::window const):
(WebKit::RemoteWebInspectorUIProxy::sheetRect const):

  • UIProcess/Inspector/RemoteWebInspectorUIProxy.messages.in: Renamed from Source/WebKit/UIProcess/Inspector/RemoteWebInspectorProxy.messages.in.
  • UIProcess/Inspector/WebInspectorUIProxy.cpp: Renamed from Source/WebKit/UIProcess/Inspector/WebInspectorProxy.cpp.

(WebKit::WebInspectorUIProxy::WebInspectorUIProxy):
(WebKit::WebInspectorUIProxy::~WebInspectorUIProxy):
(WebKit::WebInspectorUIProxy::setInspectorClient):
(WebKit::WebInspectorUIProxy::inspectionLevel const):
(WebKit::WebInspectorUIProxy::inspectorPagePreferences const):
(WebKit::WebInspectorUIProxy::invalidate):
(WebKit::WebInspectorUIProxy::sendMessageToFrontend):
(WebKit::WebInspectorUIProxy::isFront):
(WebKit::WebInspectorUIProxy::connect):
(WebKit::WebInspectorUIProxy::show):
(WebKit::WebInspectorUIProxy::hide):
(WebKit::WebInspectorUIProxy::close):
(WebKit::WebInspectorUIProxy::closeForCrash):
(WebKit::WebInspectorUIProxy::reopen):
(WebKit::WebInspectorUIProxy::resetState):
(WebKit::WebInspectorUIProxy::reset):
(WebKit::WebInspectorUIProxy::updateForNewPageProcess):
(WebKit::WebInspectorUIProxy::setFrontendConnection):
(WebKit::WebInspectorUIProxy::showConsole):
(WebKit::WebInspectorUIProxy::showResources):
(WebKit::WebInspectorUIProxy::showMainResourceForFrame):
(WebKit::WebInspectorUIProxy::attachBottom):
(WebKit::WebInspectorUIProxy::attachRight):
(WebKit::WebInspectorUIProxy::attachLeft):
(WebKit::WebInspectorUIProxy::attach):
(WebKit::WebInspectorUIProxy::detach):
(WebKit::WebInspectorUIProxy::setAttachedWindowHeight):
(WebKit::WebInspectorUIProxy::setAttachedWindowWidth):
(WebKit::WebInspectorUIProxy::setSheetRect):
(WebKit::WebInspectorUIProxy::startWindowDrag):
(WebKit::WebInspectorUIProxy::togglePageProfiling):
(WebKit::WebInspectorUIProxy::toggleElementSelection):
(WebKit::WebInspectorUIProxy::isMainOrTestInspectorPage):
(WebKit::WebInspectorUIProxy::createFrontendPage):
(WebKit::WebInspectorUIProxy::openLocalInspectorFrontend):
(WebKit::WebInspectorUIProxy::open):
(WebKit::WebInspectorUIProxy::didClose):
(WebKit::WebInspectorUIProxy::closeFrontendPageAndWindow):
(WebKit::WebInspectorUIProxy::sendMessageToBackend):
(WebKit::WebInspectorUIProxy::frontendLoaded):
(WebKit::WebInspectorUIProxy::bringToFront):
(WebKit::WebInspectorUIProxy::bringInspectedPageToFront):
(WebKit::WebInspectorUIProxy::attachAvailabilityChanged):
(WebKit::WebInspectorUIProxy::setForcedAppearance):
(WebKit::WebInspectorUIProxy::openURLExternally):
(WebKit::WebInspectorUIProxy::inspectedURLChanged):
(WebKit::WebInspectorUIProxy::showCertificate):
(WebKit::WebInspectorUIProxy::elementSelectionChanged):
(WebKit::WebInspectorUIProxy::timelineRecordingChanged):
(WebKit::WebInspectorUIProxy::setDeveloperPreferenceOverride):
(WebKit::WebInspectorUIProxy::setDiagnosticLoggingAvailable):
(WebKit::WebInspectorUIProxy::save):
(WebKit::WebInspectorUIProxy::append):
(WebKit::WebInspectorUIProxy::shouldOpenAttached):
(WebKit::WebInspectorUIProxy::evaluateInFrontendForTesting):
(WebKit::WebInspectorUIProxy::platformCreateFrontendPage):
(WebKit::WebInspectorUIProxy::platformCreateFrontendWindow):
(WebKit::WebInspectorUIProxy::platformCloseFrontendPageAndWindow):
(WebKit::WebInspectorUIProxy::platformDidCloseForCrash):
(WebKit::WebInspectorUIProxy::platformInvalidate):
(WebKit::WebInspectorUIProxy::platformResetState):
(WebKit::WebInspectorUIProxy::platformBringToFront):
(WebKit::WebInspectorUIProxy::platformBringInspectedPageToFront):
(WebKit::WebInspectorUIProxy::platformHide):
(WebKit::WebInspectorUIProxy::platformIsFront):
(WebKit::WebInspectorUIProxy::platformSetForcedAppearance):
(WebKit::WebInspectorUIProxy::platformInspectedURLChanged):
(WebKit::WebInspectorUIProxy::platformShowCertificate):
(WebKit::WebInspectorUIProxy::platformSave):
(WebKit::WebInspectorUIProxy::platformAppend):
(WebKit::WebInspectorUIProxy::platformInspectedWindowHeight):
(WebKit::WebInspectorUIProxy::platformInspectedWindowWidth):
(WebKit::WebInspectorUIProxy::platformAttach):
(WebKit::WebInspectorUIProxy::platformDetach):
(WebKit::WebInspectorUIProxy::platformSetAttachedWindowHeight):
(WebKit::WebInspectorUIProxy::platformSetSheetRect):
(WebKit::WebInspectorUIProxy::platformStartWindowDrag):
(WebKit::WebInspectorUIProxy::inspectorPageURL):
(WebKit::WebInspectorUIProxy::inspectorTestPageURL):
(WebKit::WebInspectorUIProxy::infoForLocalDebuggable):
(WebKit::WebInspectorUIProxy::platformSetAttachedWindowWidth):
(WebKit::WebInspectorUIProxy::platformAttachAvailabilityChanged):

  • UIProcess/Inspector/WebInspectorUIProxy.h: Renamed from Source/WebKit/UIProcess/Inspector/WebInspectorProxy.h.

(WebKit::WebInspectorUIProxy::create):
(WebKit::WebInspectorUIProxy::inspectorClient):
(WebKit::WebInspectorUIProxy::inspectedPage const):
(WebKit::WebInspectorUIProxy::inspectorPage const):
(WebKit::WebInspectorUIProxy::extensionController const):
(WebKit::WebInspectorUIProxy::isConnected const):
(WebKit::WebInspectorUIProxy::isVisible const):
(WebKit::WebInspectorUIProxy::inspectorWindow const):
(WebKit::WebInspectorUIProxy::sheetRect const):
(WebKit::WebInspectorUIProxy::inspectorView const):
(WebKit::WebInspectorUIProxy::attachmentSide const):
(WebKit::WebInspectorUIProxy::isAttached const):
(WebKit::WebInspectorUIProxy::isProfilingPage const):
(WebKit::WebInspectorUIProxy::isElementSelectionActive const):
(WebKit::WebInspectorUIProxy::isUnderTest const):
(WebKit::WebInspectorUIProxy::platformCanAttach):
(WebKit::WebInspectorUIProxy::canAttach const):

  • UIProcess/Inspector/WebInspectorUIProxy.messages.in: Renamed from Source/WebKit/UIProcess/Inspector/WebInspectorProxy.messages.in.
  • UIProcess/Inspector/glib/RemoteInspectorClient.cpp:
  • UIProcess/Inspector/glib/RemoteInspectorClient.h:
  • UIProcess/Inspector/gtk/RemoteWebInspectorUIProxyGtk.cpp: Renamed from Source/WebKit/UIProcess/Inspector/gtk/RemoteWebInspectorProxyGtk.cpp.

(WebKit::RemoteWebInspectorUIProxy::updateWindowTitle):
(WebKit::remoteInspectorViewDestroyed):
(WebKit::RemoteWebInspectorUIProxy::platformCreateFrontendPageAndWindow):
(WebKit::RemoteWebInspectorUIProxy::platformCloseFrontendPageAndWindow):
(WebKit::RemoteWebInspectorUIProxy::platformResetState):
(WebKit::RemoteWebInspectorUIProxy::platformBringToFront):
(WebKit::remoteFileReplaceContentsCallback):
(WebKit::RemoteWebInspectorUIProxy::platformSave):
(WebKit::RemoteWebInspectorUIProxy::platformAppend):
(WebKit::RemoteWebInspectorUIProxy::platformSetSheetRect):
(WebKit::RemoteWebInspectorUIProxy::platformSetForcedAppearance):
(WebKit::RemoteWebInspectorUIProxy::platformStartWindowDrag):
(WebKit::RemoteWebInspectorUIProxy::platformOpenURLExternally):
(WebKit::RemoteWebInspectorUIProxy::platformShowCertificate):

  • UIProcess/Inspector/gtk/WebInspectorUIProxyClient.h: Renamed from Source/WebKit/UIProcess/Inspector/gtk/WebInspectorProxyClient.h.
  • UIProcess/Inspector/gtk/WebInspectorUIProxyGtk.cpp: Renamed from Source/WebKit/UIProcess/Inspector/gtk/WebInspectorProxyGtk.cpp.

(WebKit::inspectorViewDestroyed):
(WebKit::WebInspectorUIProxy::setClient):
(WebKit::WebInspectorUIProxy::updateInspectorWindowTitle const):
(WebKit::exceededDatabaseQuota):
(WebKit::webProcessDidCrash):
(WebKit::decidePolicyForNavigationAction):
(WebKit::getContextMenuFromProposedMenu):
(WebKit::inspectorWebsiteDataStore):
(WebKit::WebInspectorUIProxy::platformCreateFrontendPage):
(WebKit::WebInspectorUIProxy::platformCreateFrontendWindow):
(WebKit::WebInspectorUIProxy::platformCloseFrontendPageAndWindow):
(WebKit::WebInspectorUIProxy::platformDidCloseForCrash):
(WebKit::WebInspectorUIProxy::platformInvalidate):
(WebKit::WebInspectorUIProxy::platformHide):
(WebKit::WebInspectorUIProxy::platformResetState):
(WebKit::WebInspectorUIProxy::platformBringToFront):
(WebKit::WebInspectorUIProxy::platformBringInspectedPageToFront):
(WebKit::WebInspectorUIProxy::platformIsFront):
(WebKit::WebInspectorUIProxy::platformSetForcedAppearance):
(WebKit::WebInspectorUIProxy::platformInspectedURLChanged):
(WebKit::WebInspectorUIProxy::platformShowCertificate):
(WebKit::WebInspectorUIProxy::inspectorPageURL):
(WebKit::WebInspectorUIProxy::inspectorTestPageURL):
(WebKit::WebInspectorUIProxy::infoForLocalDebuggable):
(WebKit::WebInspectorUIProxy::platformInspectedWindowHeight):
(WebKit::WebInspectorUIProxy::platformInspectedWindowWidth):
(WebKit::WebInspectorUIProxy::platformAttach):
(WebKit::WebInspectorUIProxy::platformDetach):
(WebKit::WebInspectorUIProxy::platformSetAttachedWindowHeight):
(WebKit::WebInspectorUIProxy::platformSetAttachedWindowWidth):
(WebKit::WebInspectorUIProxy::platformSetSheetRect):
(WebKit::WebInspectorUIProxy::platformStartWindowDrag):
(WebKit::fileReplaceContentsCallback):
(WebKit::WebInspectorUIProxy::platformSave):
(WebKit::WebInspectorUIProxy::platformAppend):
(WebKit::WebInspectorUIProxy::platformAttachAvailabilityChanged):

  • UIProcess/Inspector/gtk/WebKitInspectorWindow.cpp:

(webkitInspectorWindowNew):

  • UIProcess/Inspector/mac/RemoteWebInspectorUIProxyMac.mm: Renamed from Source/WebKit/UIProcess/Inspector/mac/RemoteWebInspectorProxyMac.mm.

(-[WKRemoteWebInspectorUIProxyObjCAdapter window:willPositionSheet:usingRect:]):
(-[WKRemoteWebInspectorUIProxyObjCAdapter initWithRemoteWebInspectorUIProxy:]):
(-[WKRemoteWebInspectorUIProxyObjCAdapter inspectorWKWebViewDidBecomeActive:]):
(-[WKRemoteWebInspectorUIProxyObjCAdapter inspectorViewControllerInspectorDidCrash:]):
(-[WKRemoteWebInspectorUIProxyObjCAdapter inspectorViewControllerInspectorIsUnderTest:]):
(WebKit::RemoteWebInspectorUIProxy::webView const):
(WebKit::RemoteWebInspectorUIProxy::didBecomeActive):
(WebKit::RemoteWebInspectorUIProxy::platformCreateFrontendPageAndWindow):
(WebKit::RemoteWebInspectorUIProxy::platformCloseFrontendPageAndWindow):
(WebKit::RemoteWebInspectorUIProxy::platformResetState):
(WebKit::RemoteWebInspectorUIProxy::platformBringToFront):
(WebKit::RemoteWebInspectorUIProxy::platformSave):
(WebKit::RemoteWebInspectorUIProxy::platformAppend):
(WebKit::RemoteWebInspectorUIProxy::platformSetSheetRect):
(WebKit::RemoteWebInspectorUIProxy::platformSetForcedAppearance):
(WebKit::RemoteWebInspectorUIProxy::platformStartWindowDrag):
(WebKit::RemoteWebInspectorUIProxy::platformOpenURLExternally):
(WebKit::RemoteWebInspectorUIProxy::platformShowCertificate):

  • UIProcess/Inspector/mac/WKInspectorViewController.mm:

(-[WKInspectorViewController webView]):

  • UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm: Renamed from Source/WebKit/UIProcess/Inspector/mac/WebInspectorProxyMac.mm.

(-[WKWebInspectorUIProxyObjCAdapter inspectorRef]):
(-[WKWebInspectorUIProxyObjCAdapter inspector]):
(-[WKWebInspectorUIProxyObjCAdapter initWithWebInspectorUIProxy:]):
(-[WKWebInspectorUIProxyObjCAdapter invalidate]):
(-[WKWebInspectorUIProxyObjCAdapter window:willPositionSheet:usingRect:]):
(-[WKWebInspectorUIProxyObjCAdapter windowDidMove:]):
(-[WKWebInspectorUIProxyObjCAdapter windowDidResize:]):
(-[WKWebInspectorUIProxyObjCAdapter windowWillClose:]):
(-[WKWebInspectorUIProxyObjCAdapter windowDidEnterFullScreen:]):
(-[WKWebInspectorUIProxyObjCAdapter windowDidExitFullScreen:]):
(-[WKWebInspectorUIProxyObjCAdapter inspectedViewFrameDidChange:]):
(-[WKWebInspectorUIProxyObjCAdapter observeValueForKeyPath:ofObject:change:context:]):
(-[WKWebInspectorUIProxyObjCAdapter inspectorViewControllerDidBecomeActive:]):
(-[WKWebInspectorUIProxyObjCAdapter inspectorViewControllerInspectorDidCrash:]):
(-[WKWebInspectorUIProxyObjCAdapter inspectorViewControllerInspectorIsUnderTest:]):
(-[WKWebInspectorUIProxyObjCAdapter inspectorViewController:willMoveToWindow:]):
(-[WKWebInspectorUIProxyObjCAdapter inspectorViewControllerDidMoveToWindow:]):
(-[WKWebInspectorUIProxyObjCAdapter inspectorViewController:openURLExternally:]):
(WebKit::WebInspectorUIProxy::didBecomeActive):
(WebKit::WebInspectorUIProxy::attachmentViewDidChange):
(WebKit::WebInspectorUIProxy::attachmentWillMoveFromWindow):
(WebKit::WebInspectorUIProxy::attachmentDidMoveToWindow):
(WebKit::WebInspectorUIProxy::updateInspectorWindowTitle const):
(WebKit::WebInspectorUIProxy::createFrontendWindow):
(WebKit::WebInspectorUIProxy::platformCreateFrontendPage):
(WebKit::WebInspectorUIProxy::platformCreateFrontendWindow):
(WebKit::WebInspectorUIProxy::closeFrontendPage):
(WebKit::WebInspectorUIProxy::closeFrontendAfterInactivityTimerFired):
(WebKit::WebInspectorUIProxy::platformCloseFrontendPageAndWindow):
(WebKit::WebInspectorUIProxy::platformDidCloseForCrash):
(WebKit::WebInspectorUIProxy::platformInvalidate):
(WebKit::WebInspectorUIProxy::platformHide):
(WebKit::WebInspectorUIProxy::platformResetState):
(WebKit::WebInspectorUIProxy::platformBringToFront):
(WebKit::WebInspectorUIProxy::platformBringInspectedPageToFront):
(WebKit::WebInspectorUIProxy::platformIsFront):
(WebKit::WebInspectorUIProxy::platformCanAttach):
(WebKit::WebInspectorUIProxy::platformAttachAvailabilityChanged):
(WebKit::WebInspectorUIProxy::platformSetForcedAppearance):
(WebKit::WebInspectorUIProxy::platformInspectedURLChanged):
(WebKit::WebInspectorUIProxy::platformShowCertificate):
(WebKit::WebInspectorUIProxy::platformSave):
(WebKit::WebInspectorUIProxy::platformAppend):
(WebKit::WebInspectorUIProxy::windowFrameDidChange):
(WebKit::WebInspectorUIProxy::windowFullScreenDidChange):
(WebKit::WebInspectorUIProxy::inspectedViewFrameDidChange):
(WebKit::WebInspectorUIProxy::platformInspectedWindowHeight):
(WebKit::WebInspectorUIProxy::platformInspectedWindowWidth):
(WebKit::WebInspectorUIProxy::platformAttach):
(WebKit::WebInspectorUIProxy::platformDetach):
(WebKit::WebInspectorUIProxy::platformSetAttachedWindowHeight):
(WebKit::WebInspectorUIProxy::platformSetAttachedWindowWidth):
(WebKit::WebInspectorUIProxy::platformSetSheetRect):
(WebKit::WebInspectorUIProxy::platformStartWindowDrag):
(WebKit::WebInspectorUIProxy::inspectorPageURL):
(WebKit::WebInspectorUIProxy::inspectorTestPageURL):
(WebKit::systemVersionPlist):
(WebKit::WebInspectorUIProxy::infoForLocalDebuggable):
(WebKit::WebInspectorUIProxy::applyForcedAppearance):

  • UIProcess/Inspector/socket/RemoteInspectorClient.cpp:
  • UIProcess/Inspector/win/RemoteWebInspectorUIProxyWin.cpp: Renamed from Source/WebKit/UIProcess/Inspector/win/RemoteWebInspectorProxyWin.cpp.

(WebKit::RemoteWebInspectorUIProxy::WndProc):
(WebKit::registerWindowClass):
(WebKit::RemoteWebInspectorUIProxy::sizeChange):
(WebKit::RemoteWebInspectorUIProxy::onClose):
(WebKit::RemoteWebInspectorUIProxy::platformCreateFrontendPageAndWindow):
(WebKit::RemoteWebInspectorUIProxy::platformResetState):
(WebKit::RemoteWebInspectorUIProxy::platformBringToFront):
(WebKit::RemoteWebInspectorUIProxy::platformSave):
(WebKit::RemoteWebInspectorUIProxy::platformAppend):
(WebKit::RemoteWebInspectorUIProxy::platformSetSheetRect):
(WebKit::RemoteWebInspectorUIProxy::platformSetForcedAppearance):
(WebKit::RemoteWebInspectorUIProxy::platformStartWindowDrag):
(WebKit::RemoteWebInspectorUIProxy::platformOpenURLExternally):
(WebKit::RemoteWebInspectorUIProxy::platformShowCertificate):
(WebKit::RemoteWebInspectorUIProxy::platformCloseFrontendPageAndWindow):

  • UIProcess/Inspector/win/WebInspectorUIProxyWin.cpp: Renamed from Source/WebKit/UIProcess/Inspector/win/WebInspectorProxyWin.cpp.

(WebKit::getInspectedWindowInfo):
(WebKit::WebInspectorUIProxy::windowReceivedMessage):
(WebKit::WebInspectorUIProxy::wndProc):
(WebKit::WebInspectorUIProxy::registerWindowClass):
(WebKit::decidePolicyForNavigationAction):
(WebKit::webProcessDidCrash):
(WebKit::WebInspectorUIProxy::platformCreateFrontendPage):
(WebKit::WebInspectorUIProxy::platformCloseFrontendPageAndWindow):
(WebKit::WebInspectorUIProxy::inspectorPageURL):
(WebKit::WebInspectorUIProxy::inspectorTestPageURL):
(WebKit::WebInspectorUIProxy::infoForLocalDebuggable):
(WebKit::WebInspectorUIProxy::platformInspectedWindowHeight):
(WebKit::WebInspectorUIProxy::platformInspectedWindowWidth):
(WebKit::WebInspectorUIProxy::platformAttach):
(WebKit::WebInspectorUIProxy::platformDetach):
(WebKit::WebInspectorUIProxy::platformSetAttachedWindowHeight):
(WebKit::WebInspectorUIProxy::platformSetAttachedWindowWidth):
(WebKit::WebInspectorUIProxy::platformSetSheetRect):
(WebKit::WebInspectorUIProxy::platformIsFront):
(WebKit::WebInspectorUIProxy::platformHide):
(WebKit::WebInspectorUIProxy::platformResetState):
(WebKit::WebInspectorUIProxy::platformBringToFront):
(WebKit::WebInspectorUIProxy::platformBringInspectedPageToFront):
(WebKit::WebInspectorUIProxy::platformSetForcedAppearance):
(WebKit::WebInspectorUIProxy::platformInspectedURLChanged):
(WebKit::WebInspectorUIProxy::platformShowCertificate):
(WebKit::WebInspectorUIProxy::platformSave):
(WebKit::WebInspectorUIProxy::platformAppend):
(WebKit::WebInspectorUIProxy::platformAttachAvailabilityChanged):
(WebKit::WebInspectorUIProxy::platformCreateFrontendWindow):
(WebKit::WebInspectorUIProxy::platformDidCloseForCrash):
(WebKit::WebInspectorUIProxy::platformInvalidate):
(WebKit::WebInspectorUIProxy::platformStartWindowDrag):

  • UIProcess/WebPageProxy.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPageProxy::inspector const):

  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::sendMessageToBackend):
(WebKit::RemoteWebInspectorUI::frontendLoaded):
(WebKit::RemoteWebInspectorUI::changeSheetRect):
(WebKit::RemoteWebInspectorUI::setForcedAppearance):
(WebKit::RemoteWebInspectorUI::startWindowDrag):
(WebKit::RemoteWebInspectorUI::bringToFront):
(WebKit::RemoteWebInspectorUI::closeWindow):
(WebKit::RemoteWebInspectorUI::reopen):
(WebKit::RemoteWebInspectorUI::resetState):
(WebKit::RemoteWebInspectorUI::openURLExternally):
(WebKit::RemoteWebInspectorUI::save):
(WebKit::RemoteWebInspectorUI::append):
(WebKit::RemoteWebInspectorUI::showCertificate):

  • WebProcess/Inspector/WebInspector.cpp:

(WebKit::WebInspector::openLocalInspectorFrontend):
(WebKit::WebInspector::closeFrontendConnection):
(WebKit::WebInspector::bringToFront):
(WebKit::WebInspector::elementSelectionChanged):
(WebKit::WebInspector::timelineRecordingChanged):
(WebKit::WebInspector::setDeveloperPreferenceOverride):
(WebKit::WebInspector::updateDockingAvailability):

  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::updateConnection):
(WebKit::WebInspectorUI::frontendLoaded):
(WebKit::WebInspectorUI::startWindowDrag):
(WebKit::WebInspectorUI::bringToFront):
(WebKit::WebInspectorUI::closeWindow):
(WebKit::WebInspectorUI::reopen):
(WebKit::WebInspectorUI::resetState):
(WebKit::WebInspectorUI::setForcedAppearance):
(WebKit::WebInspectorUI::requestSetDockSide):
(WebKit::WebInspectorUI::changeAttachedWindowHeight):
(WebKit::WebInspectorUI::changeAttachedWindowWidth):
(WebKit::WebInspectorUI::changeSheetRect):
(WebKit::WebInspectorUI::openURLExternally):
(WebKit::WebInspectorUI::save):
(WebKit::WebInspectorUI::append):
(WebKit::WebInspectorUI::inspectedURLChanged):
(WebKit::WebInspectorUI::showCertificate):
(WebKit::WebInspectorUI::sendMessageToBackend):

4:21 PM Changeset in webkit [274814] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

[MacOS Wk1] imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-max-size-001.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=222686

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
4:01 PM Changeset in webkit [274813] by sbarati@apple.com
  • 4 edits
    1 add in trunk

LiteralParser shouldn't make error messages of length ~231
https://bugs.webkit.org/show_bug.cgi?id=223483
<rdar://75572255>

Reviewed by Robin Morisset.

JSTests:

  • stress/literal-parser-error-message-oom.js: Added.

Source/JavaScriptCore:

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::parse):

3:29 PM Changeset in webkit [274812] by commit-queue@webkit.org
  • 21 edits
    2 copies
    2 adds
    2 deletes in trunk

Enable ability to prevent scrolling in Element.focus()
https://bugs.webkit.org/show_bug.cgi?id=178583

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

LayoutTests/imported/w3c:

Update improved test result.

  • web-platform-tests/html/interaction/focus/processing-model/preventScroll-nested-scroll-elements-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/processing-model/preventScroll-nested-scroll-elements.html: Added.
  • web-platform-tests/html/interaction/focus/processing-model/preventScroll-textarea-expected.txt:

Source/WebCore:

Add FocusOptions parameter to the focus method [1] both
to the IDL as the C++ side. Change Element.focus to not
scroll if FocusOptions.preventScroll is true.

Behavior matches Chrome and Firefox.

Tests: imported/w3c/web-platform-tests/html/interaction/focus/processing-model/preventScroll-textarea.html

imported/w3c/web-platform-tests/html/interaction/focus/processing-model/preventScroll-nested-scroll-elements.html

Test: imported/w3c/web-platform-tests/html/interaction/focus/processing-model/preventScroll-nested-scroll-elements.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Element.cpp:

(WebCore::Element::focus):

  • dom/Element.h:

(WebCore::Element::focus):

  • dom/FocusOptions.h: Copied from Source/WebCore/html/HTMLOrForeignElement.idl.
  • dom/FocusOptions.idl: Copied from Source/WebCore/html/HTMLOrForeignElement.idl.
  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::didAttachRenderers):

  • html/HTMLLabelElement.cpp:

(WebCore::HTMLLabelElement::focus):

  • html/HTMLLabelElement.h:
  • html/HTMLLegendElement.cpp:

(WebCore::HTMLLegendElement::focus):

  • html/HTMLLegendElement.h:
  • html/HTMLOrForeignElement.idl:
  • html/InputType.cpp:

(WebCore::InputType::accessKeyAction):

  • page/FocusController.cpp:

(WebCore::FocusController::advanceFocusInDocumentOrder):
(WebCore::FocusController::advanceFocusDirectionallyInContainer):

LayoutTests:

The test preventScroll-textarea.html now passes on all platforms.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/interaction/focus/processing-model/preventScroll-textarea-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/interaction/focus/processing-model/preventScroll-textarea-expected.txt: Removed.
3:19 PM Changeset in webkit [274811] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.3-branch/Source

Versioning.

WebKit-7611.1.21.3.2

3:17 PM Changeset in webkit [274810] by Devin Rousso
  • 119 edits
    342 deletes in trunk

Remove unused JS and CSS files of media controls
https://bugs.webkit.org/show_bug.cgi?id=214955
<rdar://problem/66604040>

Reviewed by Eric Carlson.

Source/WebCore:

Cocoa platforms are already using modern media controls so there's no reason to keep the old
media controls resources/logic around any longer. It just wastes space.

The non-iOS Apple controls must be kept though as they are still used on Windows.

  • Modules/mediacontrols/assets-apple-iOS.svg: Removed.
  • Modules/mediacontrols/mediaControlsiOS.css: Removed.
  • Modules/mediacontrols/mediaControlsiOS.js: Removed.
  • rendering/RenderTheme.h:

(WebCore::RenderTheme::modernMediaControlsStyleSheet): Deleted.

  • rendering/RenderThemeCocoa.h:
  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::purgeCaches): Added.
(WebCore::RenderThemeCocoa::mediaControlsStyleSheet): Added.
(WebCore::RenderThemeCocoa::mediaControlsScripts): Added.
(WebCore::RenderThemeCocoa::mediaControlsBase64StringForIconNameAndType): Added.

  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::mediaControlsStyleSheet): Deleted.
(WebCore::RenderThemeIOS::modernMediaControlsStyleSheet): Deleted.
(WebCore::RenderThemeIOS::purgeCaches): Deleted.
(WebCore::RenderThemeIOS::mediaControlsScripts): Deleted.
(WebCore::RenderThemeIOS::mediaControlsBase64StringForIconNameAndType): Deleted.

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::mediaControlsStyleSheet): Deleted.
(WebCore::RenderThemeMac::modernMediaControlsStyleSheet): Deleted.
(WebCore::RenderThemeMac::purgeCaches): Deleted.
(WebCore::RenderThemeMac::mediaControlsScripts): Deleted.
(WebCore::RenderThemeMac::mediaControlsBase64StringForIconNameAndType): Deleted.
Move media controls functions to RenderThemeCocoa since they are identical.

  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::shadowRootCSSText):

  • css/mediaControls.css:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):
(WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange):

  • html/MediaDocument.cpp:

(WebCore::MediaDocumentParser::createDocumentStructure):
(WebCore::MediaDocument::defaultEventHandler):

  • style/UserAgentStyle.cpp:

(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setModernMediaControlsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::modernMediaControlsEnabled const): Deleted.
Replace ModernMediaControlsEnabled setting with ENABLE_MODERN_MEDIA_CONTROLS build flag.

  • html/track/TextTrackCueGeneric.cpp:

Update the static DEFAULTCAPTIONFONTSIZE value for modern media controls.

  • Modules/modern-media-controls/controls/macos-fullscreen-media-controls.css:
  • Modules/modern-media-controls/controls/text-tracks.css:

Update comments.

  • css/mediaControlsiOS.css: Removed.

This file was never included anywhere.

  • platform/audio/PlatformMediaSessionManager.h:

(WebCore::PlatformMediaSessionManager::resetHaveEverRegisteredAsNowPlayingApplicationForTesting): added.

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::resetHaveEverRegisteredAsNowPlayingApplicationForTesting): added.

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
Drive-by: Reset haveEverRegisteredAsNowPlayingApplication to a consistent state between tests.

This is expected by LayoutTests/media/now-playing-status-without-media.html.

  • bindings/js/WebCoreBuiltinNames.h:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

Cocoa platforms are already using modern media controls so there's no reason to keep the old
media controls resources/logic around any longer. It just wastes space.

The non-iOS Apple controls must be kept though as they are still used on Windows.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetModernMediaControlsEnabled): Deleted.
(WKPreferencesGetModernMediaControlsEnabled): Deleted.
Replace ModernMediaControlsEnabled setting with ENABLE_MODERN_MEDIA_CONTROLS build flag.

  • UIProcess/mac/WKFullScreenWindowController.mm:

Update the static minVideoWidth value for modern media controls.

Source/WebKitLegacy/mac:

Cocoa platforms are already using modern media controls so there's no reason to keep the old
media controls resources/logic around any longer. It just wastes space.

The non-iOS Apple controls must be kept though as they are still used on Windows.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferencesPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences modernMediaControlsEnabled]): Deleted.
(-[WebPreferences setModernMediaControlsEnabled:]): Deleted.
Replace ModernMediaControlsEnabled setting with ENABLE_MODERN_MEDIA_CONTROLS build flag.

Source/WebKitLegacy/win:

Cocoa platforms are already using modern media controls so there's no reason to keep the old
media controls resources/logic around any longer. It just wastes space.

The non-iOS Apple controls must be kept though as they are still used on Windows.

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.h:
  • WebPreferences.cpp:

(WebPreferences::setModernMediaControlsEnabled): Deleted.
(WebPreferences::modernMediaControlsEnabled): Deleted.

  • WebView.cpp:

(WebView::notifyPreferencesChanged):
Replace ModernMediaControlsEnabled setting with ENABLE_MODERN_MEDIA_CONTROLS build flag.

Source/WTF:

Cocoa platforms are already using modern media controls so there's no reason to keep the old
media controls resources/logic around any longer. It just wastes space.

The non-iOS Apple controls must be kept though as they are still used on Windows.

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:
  • Scripts/Preferences/WebPreferences.yaml:

Replace ModernMediaControlsEnabled setting with ENABLE_MODERN_MEDIA_CONTROLS build flag.

Tools:

Cocoa platforms are already using modern media controls so there's no reason to keep the old
media controls resources/logic around any longer. It just wastes space.

The non-iOS Apple controls must be kept though as they are still used on Windows.

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::TestController::platformSpecificFeatureDefaultsForTest const):

  • WebKitTestRunner/wpe/TestControllerWPE.cpp:

(WTR::TestController::platformSpecificFeatureDefaultsForTest const):
Replace ModernMediaControlsEnabled setting with ENABLE_MODERN_MEDIA_CONTROLS build flag.

LayoutTests:

Remove tests (and their expectations) that used ModernMediaControlsEnabled=false.

  • accessibility/ios-simulator/has-touch-event-listener-with-shadow.html:
  • accessibility/ios-simulator/media-with-aria-label.html: Removed.
  • accessibility/ios-simulator/media-with-aria-label-expected.txt: Removed.
  • accessibility/mac/media-emits-object-replacement.html: Removed.
  • accessibility/mac/media-emits-object-replacement-expected.txt: Removed.
  • accessibility/mac/video-tag-hit-test.html: Removed.
  • accessibility/mac/video-tag-hit-test-expected.txt: Removed.
  • accessibility/mac/video-volume-slider-accessibility.html: Removed.
  • accessibility/mac/video-volume-slider-accessibility-expected.txt: Removed.
  • accessibility/media-element.html: Removed.
  • platform/gtk/accessibility/media-element-expected.txt: Removed.
  • platform/mac/accessibility/media-element-expected.txt: Removed.
  • platform/wincairo/accessibility/media-element-expected.txt: Removed.
  • accessibility/media-emits-object-replacement.html: Removed.
  • accessibility/media-emits-object-replacement-expected.txt: Removed.
  • platform/glib/accessibility/media-emits-object-replacement-expected.txt: Removed.
  • accessibility/media-with-aria-label.html: Removed.
  • accessibility/media-with-aria-label-expected.txt: Removed.
  • compositing/video/poster.html:
  • compositing/video/poster-expected.html:
  • fast/hidpi/video-controls-in-hidpi.html: Removed.
  • platform/gtk/fast/hidpi/video-controls-in-hidpi-expected.txt: Removed.
  • platform/ios/fast/hidpi/video-controls-in-hidpi-expected.txt: Removed.
  • platform/mac/fast/hidpi/video-controls-in-hidpi-expected.txt: Removed.
  • platform/win/fast/hidpi/video-controls-in-hidpi-expected.txt: Removed.
  • platform/wincairo/fast/hidpi/video-controls-in-hidpi-expected.txt: Removed.
  • platform/wpe/fast/hidpi/video-controls-in-hidpi-expected.txt: Removed.
  • fast/layers/video-layer.html: Removed.
  • platform/gtk/fast/layers/video-layer-expected.png: Removed.
  • platform/gtk/fast/layers/video-layer-expected.txt: Removed.
  • platform/ios/fast/layers/video-layer-expected.txt: Removed.
  • platform/mac/fast/layers/video-layer-expected.png: Removed.
  • platform/mac/fast/layers/video-layer-expected.txt: Removed.
  • platform/win/fast/layers/video-layer-expected.txt: Removed.
  • platform/wincairo/fast/layers/video-layer-expected.txt: Removed.
  • platform/wpe/fast/layers/video-layer-expected.txt: Removed.
  • fast/mediastream/MediaStream-video-element-video-tracks-disabled.html:
  • fullscreen/video-controls-drag.html: Removed.
  • fullscreen/video-controls-drag-expected.txt: Removed.
  • fullscreen/video-controls-override.html: Removed.
  • fullscreen/video-controls-override-expected.txt: Removed.
  • fullscreen/video-controls-rtl.html: Removed.
  • fullscreen/video-controls-rtl-expected.txt: Removed.
  • fullscreen/video-controls-timeline.html: Removed.
  • fullscreen/video-controls-timeline-expected.txt: Removed.
  • http/tests/media/hls/hls-accessiblity-describes-video-menu.html: Removed.
  • http/tests/media/hls/hls-accessiblity-describes-video-menu-expected.txt: Removed.
  • http/tests/media/hls/hls-audio-tracks-has-audio.html:
  • http/tests/media/hls/hls-audio-tracks-locale-selection.html:
  • http/tests/media/hls/hls-audio-tracks.html:
  • http/tests/media/hls/hls-progress.html:
  • http/tests/media/hls/hls-webvtt-tracks.html:
  • http/tests/media/hls/range-request.html:
  • http/tests/media/hls/video-controls-live-stream.html: Removed.
  • platform/gtk/http/tests/media/hls/video-controls-live-stream-expected.txt: Removed.
  • platform/mac/http/tests/media/hls/video-controls-live-stream-expected.txt: Removed.
  • http/tests/media/hls/video-cookie.html:
  • http/tests/media/hls/video-duration-accessibility.html: Removed.
  • http/tests/media/hls/video-duration-accessibility-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-allowed.html:
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked.html:
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked2.html:
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/video-controls-allowed.html:
  • inspector/css/pseudo-element-matches.html:
  • inspector/css/pseudo-element-matches-expected.txt:
  • media/accessibility-closed-captions-has-aria-owns.html: Removed.
  • media/accessibility-closed-captions-has-aria-owns-expected.txt: Removed.
  • media/adopt-node-crash.html:
  • media/airplay-allows-buffering.html:
  • media/airplay-autoplay.html:
  • media/audio-as-video-fullscreen.html: Removed.
  • media/audio-as-video-fullscreen-expected.txt: Removed.
  • media/audio-controls-do-not-fade-out.html: Removed.
  • media/audio-controls-do-not-fade-out-expected.txt: Removed.
  • media/audio-controls-rendering.html: Removed.
  • platform/gtk/media/audio-controls-rendering-expected.txt: Removed.
  • platform/ios/media/audio-controls-rendering-expected.txt: Removed.
  • platform/mac/media/audio-controls-rendering-expected.txt: Removed.
  • platform/win/media/audio-controls-rendering-expected.txt: Removed.
  • platform/wincairo/media/audio-controls-rendering-expected.txt: Removed.
  • media/audio-controls-timeline-in-media-document.html: Removed.
  • media/audio-controls-timeline-in-media-document-expected.txt: Removed.
  • media/audio-delete-while-slider-thumb-clicked.html: Removed.
  • media/audio-delete-while-slider-thumb-clicked-expected.txt: Removed.
  • media/audio-delete-while-step-button-clicked.html: Removed.
  • media/audio-delete-while-step-button-clicked-expected.txt: Removed.
  • media/audio-repaint.html: Removed.
  • platform/gtk/media/audio-repaint-expected.txt: Removed.
  • platform/ios/media/audio-repaint-expected.txt: Removed.
  • platform/mac/media/audio-repaint-expected.txt: Removed.
  • platform/wincairo/media/audio-repaint-expected.txt: Removed.
  • media/click-placeholder-not-pausing.html: Removed.
  • media/click-placeholder-not-pausing-expected.txt: Removed.
  • media/click-volume-bar-not-pausing.html: Removed.
  • media/click-volume-bar-not-pausing-expected.txt: Removed.
  • media/controls-after-reload.html: Removed.
  • platform/gtk/media/controls-after-reload-expected.txt: Removed.
  • platform/mac-catalina/media/controls-after-reload-expected.txt: Removed.
  • platform/mac/media/controls-after-reload-expected.txt: Removed.
  • platform/win/media/controls-after-reload-expected.txt: Removed.
  • platform/wincairo/media/controls-after-reload-expected.txt: Removed.
  • media/controls-drag-timebar.html: Removed.
  • media/controls-drag-timebar-expected.txt: Removed.
  • media/controls-right-click-on-timebar.html: Removed.
  • media/controls-right-click-on-timebar-expected.txt: Removed.
  • media/controls-strict.html: Removed.
  • platform/gtk/media/controls-strict-expected.txt: Removed.
  • platform/ios/media/controls-strict-expected.txt: Removed.
  • platform/mac/media/controls-strict-expected.txt: Removed.
  • platform/mac/media/controls-strict-mode-expected.txt: Removed.
  • platform/win/media/controls-strict-expected.txt: Removed.
  • platform/wincairo/media/controls-strict-expected.txt: Removed.
  • media/controls-styling.html: Removed.
  • platform/gtk/media/controls-styling-expected.txt: Removed.
  • platform/mac/media/controls-styling-expected.txt: Removed.
  • platform/win/media/controls-styling-expected.txt: Removed.
  • platform/wincairo/media/controls-styling-expected.txt: Removed.
  • media/controls-styling-strict.html: Removed.
  • platform/gtk/media/controls-styling-strict-expected.txt: Removed.
  • platform/mac/media/controls-styling-strict-expected.txt: Removed.
  • platform/wincairo/media/controls-styling-strict-expected.txt: Removed.
  • media/controls-without-preload.html: Removed.
  • platform/gtk/media/controls-without-preload-expected.txt: Removed.
  • platform/ios/media/controls-without-preload-expected.txt: Removed.
  • platform/mac/media/controls-without-preload-expected.txt: Removed.
  • platform/win/media/controls-without-preload-expected.txt: Removed.
  • platform/wincairo/media/controls-without-preload-expected.txt: Removed.
  • media/controls/airplay-controls.html: Removed.
  • media/controls/airplay-controls-expected.txt: Removed.
  • media/controls/airplay-picker.html: Removed.
  • media/controls/airplay-picker-expected.txt: Removed.
  • media/controls/basic.html: Removed.
  • media/controls/basic-expected.txt: Removed.
  • media/controls/controls-test-helpers.js: Removed.
  • media/controls/default-size-should-show-scrubber.html: Removed.
  • media/controls/default-size-should-show-scrubber-expected.txt: Removed.
  • media/controls/elementOrder.html: Removed.
  • media/controls/elementOrder-expected.txt: Removed.
  • media/controls/forced-tracks-only.html: Removed.
  • media/controls/forced-tracks-only-expected.txt: Removed.
  • media/controls/fullscreen-button-inline-layout.html: Removed.
  • media/controls/fullscreen-button-inline-layout-expected.txt: Removed.
  • media/controls/inline-elements-dropoff-order.html: Removed.
  • media/controls/inline-elements-dropoff-order-expected.txt: Removed.
  • media/controls/picture-in-picture.html: Removed.
  • media/controls/picture-in-picture-expected.txt: Removed.
  • media/controls/pip-placeholder-without-video-controls.html: Removed.
  • media/controls/pip-placeholder-without-video-controls-expected.txt: Removed.
  • media/controls/showControlsButton.html: Removed.
  • media/controls/showControlsButton-expected.txt: Removed.
  • media/controls/statusDisplay.html: Removed.
  • media/controls/statusDisplay-expected.txt: Removed.
  • media/controls/statusDisplayBad.html: Removed.
  • media/controls/statusDisplayBad-expected.txt: Removed.
  • media/controls/track-menu.html: Removed.
  • media/controls/track-menu-expected.txt: Removed.
  • media/in-band-tracks.js:

(seeked): Deleted.
(testTextTrackMode): Deleted.
(testCueStyle.seeked): Deleted.
(testCueStyle.canplaythrough): Deleted.
(testCueStyle): Deleted.

  • media/mac/controls-panel-not-clipped-out.html: Removed.
  • media/mac/controls-panel-not-clipped-out-expected.html: Removed.
  • media/media-captions-no-controls.html:
  • media/media-captions-no-controls-expected.txt:
  • media/media-controller-drag-crash.html: Removed.
  • media/media-controller-drag-crash-expected.txt: Removed.
  • media/media-controls-accessibility.html: Removed.
  • media/media-controls-accessibility-expected.txt: Removed.
  • media/media-controls-cancel-events.html: Removed.
  • media/media-controls-cancel-events-expected.txt: Removed.
  • media/media-controls-clone.html: Removed.
  • platform/gtk/media/media-controls-clone-expected.txt: Removed.
  • platform/ios/media/media-controls-clone-expected.txt: Removed.
  • platform/mac/media/media-controls-clone-expected.txt: Removed.
  • platform/wincairo/media/media-controls-clone-expected.txt: Removed.
  • media/media-controls-drag-timeline-set-controls-property.html: Removed.
  • media/media-controls-drag-timeline-set-controls-property-expected.txt: Removed.
  • media/media-controls-invalid-url.html: Removed.
  • media/media-controls-invalid-url-expected.txt: Removed.
  • platform/win/media/media-controls-invalid-url-expected.txt: Removed.
  • media/media-controls-play-button-updates.html: Removed.
  • platform/gtk/media/media-controls-play-button-updates-expected.png: Removed.
  • platform/gtk/media/media-controls-play-button-updates-expected.txt: Removed.
  • media/media-controls-play-button-updates-expected.txt: Removed.
  • media/media-controls-play-button-updates-expected.png: Removed.
  • media/media-controls-timeline-updates.html: Removed.
  • media/media-controls-timeline-updates-expected.txt: Removed.
  • media/media-controls-timeline-updates-after-playing.html: Removed.
  • media/media-controls-timeline-updates-after-playing-expected.txt: Removed.
  • media/media-controls-timeline-updates-when-hovered.html: Removed.
  • media/media-controls-timeline-updates-when-hovered-expected.txt: Removed.
  • media/media-controls.js: Removed.
  • media/media-document-audio-controls-visible.html: Removed.
  • media/media-document-audio-controls-visible-expected.txt: Removed.
  • media/media-document-audio-repaint.html: Removed.
  • platform/gtk/media/media-document-audio-repaint-expected.txt: Removed.
  • platform/mac/media/media-document-audio-repaint-expected.txt: Removed.
  • media/media-document-audio-repaint-expected.txt: Removed.
  • media/media-fullscreen-loop-inline.html:
  • media/media-fullscreen-pause-inline.html:
  • media/media-fullscreen-return-to-inline.html:
  • media/media-source/only-bcp47-language-tags-accepted-as-valid.html:
  • media/media-volume-slider-rendered-below.html: Removed.
  • media/media-volume-slider-rendered-below-expected.txt: Removed.
  • media/media-volume-slider-rendered-normal.html: Removed.
  • media/media-volume-slider-rendered-normal-expected.txt: Removed.
  • media/nodesFromRect-shadowContent.html: Removed.
  • media/nodesFromRect-shadowContent-expected.txt: Removed.
  • media/progress-events-generated-correctly.html:
  • media/require-user-gesture-to-load-video.html: Removed.
  • media/require-user-gesture-to-load-video-expected.txt: Removed.
  • media/tab-focus-inside-media-elements.html: Removed.
  • media/tab-focus-inside-media-elements-expected.txt: Removed.
  • media/track/in-band/track-in-band-kate-ogg-mode.html: Removed.
  • media/track/in-band/track-in-band-kate-ogg-mode-expected.txt: Removed.
  • media/track/in-band/track-in-band-kate-ogg-style.html: Removed.
  • media/track/in-band/track-in-band-kate-ogg-style-expected.txt: Removed.
  • media/track/in-band/track-in-band-srt-mkv-mode.html: Removed.
  • media/track/in-band/track-in-band-srt-mkv-mode-expected.txt: Removed.
  • media/track/in-band/track-in-band-srt-mkv-style.html: Removed.
  • media/track/in-band/track-in-band-srt-mkv-style-expected.txt: Removed.
  • media/track/regions-webvtt/vtt-region-display.html: Removed.
  • media/track/regions-webvtt/vtt-region-display-expected.txt: Removed.
  • media/track/regions-webvtt/vtt-region-dom-layout.html: Removed.
  • media/track/regions-webvtt/vtt-region-dom-layout-expected.txt: Removed.
  • media/track/texttrackcue/texttrackcue-addcue.html:
  • media/track/texttrackcue/texttrackcue-displaycue.html: Removed.
  • media/track/texttrackcue/texttrackcue-displaycue-expected.txt: Removed.
  • media/track/track-automatic-subtitles.html:
  • media/track/track-css-all-cues.html: Removed.
  • media/track/track-css-all-cues-expected.txt: Removed.
  • media/track/track-css-cue-lifetime.html: Removed.
  • media/track/track-css-cue-lifetime-expected.txt: Removed.
  • media/track/track-css-matching.html: Removed.
  • media/track/track-css-matching-expected.txt: Removed.
  • media/track/track-css-matching-default.html: Removed.
  • media/track/track-css-matching-default-expected.txt: Removed.
  • media/track/track-css-matching-lang.html: Removed.
  • media/track/track-css-matching-lang-expected.txt: Removed.
  • media/track/track-css-matching-timestamps.html: Removed.
  • media/track/track-css-matching-timestamps-expected.txt: Removed.
  • media/track/track-css-property-allowlist-expected.txt: Removed.
  • media/track/track-css-property-allowlist.html: Removed.
  • media/track/track-css-stroke-cues.html: Removed.
  • media/track/track-css-stroke-cues-expected.txt: Removed.
  • media/track/track-css-user-override.html: Removed.
  • media/track/track-css-user-override-expected.txt: Removed.
  • media/track/track-css-visible-stroke.html:
  • media/track/track-cue-container-rendering-position.html: Removed.
  • media/track/track-cue-container-rendering-position-expected.txt: Removed.
  • media/track/track-cue-css.html:
  • media/track/track-cue-css-expected.html:
  • media/track/track-cue-left-align.html:
  • media/track/track-cue-left-align-expected-mismatch.html:
  • media/track/track-cue-line-position.html:
  • media/track/track-cue-line-position-expected-mismatch.html:
  • media/track/track-cue-mutable-fragment.html:
  • media/track/track-cue-mutable-text.html: Removed.
  • media/track/track-cue-mutable-text-expected.txt: Removed.
  • media/track/track-cue-nothing-to-render.html: Removed.
  • media/track/track-cue-nothing-to-render-expected.txt: Removed.
  • media/track/track-cue-overlap-snap-to-lines-not-set.html: Removed.
  • media/track/track-cue-overlap-snap-to-lines-not-set-expected.txt: Removed.
  • media/track/track-cue-rendering.html: Removed.
  • media/track/track-cue-rendering-expected.txt: Removed.
  • media/track/track-cue-rendering-horizontal.html: Removed.
  • platform/gtk/media/track/track-cue-rendering-horizontal-expected.png: Removed.
  • platform/gtk/media/track/track-cue-rendering-horizontal-expected.txt: Removed.
  • platform/ios/media/track/track-cue-rendering-horizontal-expected.txt: Removed.
  • platform/mac/media/track/track-cue-rendering-horizontal-expected.png: Removed.
  • platform/mac/media/track/track-cue-rendering-horizontal-expected.txt: Removed.
  • platform/win/media/track/track-cue-rendering-horizontal-expected.txt: Removed.
  • platform/wincairo/media/track/track-cue-rendering-horizontal-expected.txt: Removed.
  • media/track/track-cue-rendering-mode-changed.html: Removed.
  • media/track/track-cue-rendering-mode-changed-expected.txt: Removed.
  • media/track/track-cue-rendering-on-resize.html: Removed.
  • media/track/track-cue-rendering-on-resize-expected.txt: Removed.
  • media/track/track-cue-rendering-rtl.html: Removed.
  • media/track/track-cue-rendering-rtl-expected.txt: Removed.
  • media/track/track-cue-rendering-snap-to-lines-not-set.html: Removed.
  • media/track/track-cue-rendering-snap-to-lines-not-set-expected.txt: Removed.
  • media/track/track-cue-rendering-tree-is-removed-properly.html: Removed.
  • media/track/track-cue-rendering-tree-is-removed-properly-expected.txt: Removed.
  • media/track/track-cue-rendering-vertical.html: Removed.
  • platform/gtk/media/track/track-cue-rendering-vertical-expected.png: Removed.
  • platform/gtk/media/track/track-cue-rendering-vertical-expected.txt: Removed.
  • platform/ios/media/track/track-cue-rendering-vertical-expected.txt: Removed.
  • platform/mac/media/track/track-cue-rendering-vertical-expected.txt: Removed.
  • platform/wincairo/media/track/track-cue-rendering-vertical-expected.txt: Removed.
  • media/track/track-cue-rendering-with-padding.html: Removed.
  • media/track/track-cue-rendering-with-padding-expected.txt: Removed.
  • media/track/track-cues-cuechange.html:
  • media/track/track-cues-enter-exit.html:
  • media/track/track-forced-subtitles-in-band.html:
  • media/track/track-forced-subtitles-in-band-expected.txt:
  • media/track/track-in-band-duplicate-tracks-when-source-changes.html:
  • media/track/track-in-band-legacy-api.html:
  • media/track/track-in-band-legacy-api-expected.txt:
  • media/track/track-in-band-metadata-display-order.html: Removed.
  • media/track/track-in-band-metadata-display-order-expected.txt: Removed.
  • media/track/track-in-band-mode.html:
  • media/track/track-in-band-mode-expected.txt:
  • media/track/track-in-band-style.html: Removed.
  • media/track/track-in-band-style-expected.txt: Removed.
  • media/track/track-in-band-subtitles-too-large.html: Removed.
  • media/track/track-in-band-subtitles-too-large-expected.txt: Removed.
  • media/track/track-kind.html:
  • media/track/track-kind-expected.txt:
  • media/track/track-legacyapi-with-automatic-mode.html:
  • media/track/track-legacyapi-with-automatic-mode-expected.txt:
  • media/track/track-long-word-container-sizing.html: Removed.
  • media/track/track-long-word-container-sizing-expected.txt: Removed.
  • media/track/track-manual-mode.html:
  • media/track/track-manual-mode-expected.txt:
  • media/track/track-user-preferences.html: Removed.
  • media/track/track-user-preferences-expected.txt: Removed.
  • media/track/track-user-stylesheet.html:
  • media/track/track-user-stylesheet-expected.txt:
  • media/trackmenu-test.js: Removed.
  • media/video-click-dblckick-standalone.html: Removed.
  • media/video-click-dblckick-standalone-expected.txt: Removed.
  • media/video-controls-audiotracks-trackmenu.html: Removed.
  • media/video-controls-audiotracks-trackmenu-expected.txt: Removed.
  • media/video-controls-captions.html: Removed.
  • media/video-controls-captions-expected.txt: Removed.
  • media/video-controls-captions-trackmenu.html: Removed.
  • platform/gtk/media/video-controls-captions-trackmenu-expected.txt: Removed.
  • platform/ios/media/video-controls-captions-trackmenu-expected.txt: Removed.
  • platform/mac/media/video-controls-captions-trackmenu-expected.txt: Removed.
  • platform/wincairo/media/video-controls-captions-trackmenu-expected.txt: Removed.
  • media/video-controls-captions-trackmenu-hide-on-click.html: Removed.
  • platform/gtk/media/video-controls-captions-trackmenu-hide-on-click-expected.txt: Removed.
  • platform/ios/media/video-controls-captions-trackmenu-hide-on-click-expected.txt: Removed.
  • platform/mac/media/video-controls-captions-trackmenu-hide-on-click-expected.txt: Removed.
  • platform/wincairo/media/video-controls-captions-trackmenu-hide-on-click-expected.txt: Removed.
  • media/video-controls-captions-trackmenu-hide-on-click-outside.html: Removed.
  • media/video-controls-captions-trackmenu-hide-on-click-outside-expected.txt: Removed.
  • media/video-controls-captions-trackmenu-includes-enabled-track.html: Removed.
  • media/video-controls-captions-trackmenu-includes-enabled-track-expected.txt: Removed.
  • media/video-controls-captions-trackmenu-localized.html: Removed.
  • platform/gtk/media/video-controls-captions-trackmenu-localized-expected.txt: Removed.
  • platform/ios/media/video-controls-captions-trackmenu-localized-expected.txt: Removed.
  • platform/mac/media/video-controls-captions-trackmenu-localized-expected.txt: Removed.
  • platform/wincairo/media/video-controls-captions-trackmenu-localized-expected.txt: Removed.
  • media/video-controls-captions-trackmenu-only-captions-descriptions-and-subtitles.html: Removed.
  • media/video-controls-captions-trackmenu-only-captions-descriptions-and-subtitles-expected.txt: Removed.
  • platform/gtk/media/video-controls-captions-trackmenu-only-captions-descriptions-and-subtitles-expected.txt: Removed.
  • platform/mac/media/video-controls-captions-trackmenu-only-captions-descriptions-and-subtitles-expected.txt: Removed.
  • media/video-controls-captions-trackmenu-sorted.html: Removed.
  • platform/gtk/media/video-controls-captions-trackmenu-sorted-expected.txt: Removed.
  • platform/ios/media/video-controls-captions-trackmenu-sorted-expected.txt: Removed.
  • platform/mac/media/video-controls-captions-trackmenu-sorted-expected.txt: Removed.
  • platform/win/media/video-controls-captions-trackmenu-sorted-expected.txt: Removed.
  • platform/wincairo/media/video-controls-captions-trackmenu-sorted-expected.txt: Removed.
  • media/video-controls-drop-and-restore-timeline.html: Removed.
  • media/video-controls-drop-and-restore-timeline-expected.txt: Removed.
  • media/video-controls-fullscreen-volume.html: Removed.
  • media/video-controls-fullscreen-volume-expected.txt: Removed.
  • media/video-controls-in-media-document.html: Removed.
  • media/video-controls-in-media-document-expected.txt: Removed.
  • media/video-controls-no-display-with-text-track.html: Removed.
  • media/video-controls-no-display-with-text-track-expected.txt: Removed.
  • media/video-controls-rendering.html: Removed.
  • platform/gtk/media/video-controls-rendering-expected.txt: Removed.
  • platform/ios/media/video-controls-rendering-expected.txt: Removed.
  • platform/mac/media/video-controls-rendering-expected.txt: Removed.
  • platform/win/media/video-controls-rendering-expected.txt: Removed.
  • platform/wincairo/media/video-controls-rendering-expected.txt: Removed.
  • media/video-controls-show-on-kb-or-ax-event.html: Removed.
  • media/video-controls-show-on-kb-or-ax-event-expected.txt: Removed.
  • media/video-controls-toggling.html: Removed.
  • media/video-controls-toggling-expected.txt: Removed.
  • media/video-controls-transformed.html: Removed.
  • media/video-controls-transformed-expected.txt: Removed.
  • media/video-controls-visible-audio-only.html: Removed.
  • media/video-controls-visible-audio-only-expected.txt: Removed.
  • media/video-controls-visible-exiting-fullscreen.html: Removed.
  • media/video-controls-visible-exiting-fullscreen-expected.txt: Removed.
  • media/video-controls-zoomed.html: Removed.
  • media/video-controls-zoomed-expected.txt: Removed.
  • media/video-display-toggle.html: Removed.
  • platform/gtk/media/video-display-toggle-expected.txt: Removed.
  • platform/ios/media/video-display-toggle-expected.txt: Removed.
  • platform/mac-catalina/media/video-display-toggle-expected.txt: Removed.
  • platform/mac-mojave/media/video-display-toggle-expected.txt: Removed.
  • platform/mac/media/video-display-toggle-expected.txt: Removed.
  • platform/win/media/video-display-toggle-expected.txt: Removed.
  • platform/wincairo/media/video-display-toggle-expected.txt: Removed.
  • media/video-empty-source.html: Removed.
  • platform/gtk/media/video-empty-source-expected.txt: Removed.
  • platform/ios/media/video-empty-source-expected.txt: Removed.
  • platform/mac/media/video-empty-source-expected.txt: Removed.
  • platform/win/media/video-empty-source-expected.txt: Removed.
  • platform/wincairo/media/video-empty-source-expected.txt: Removed.
  • media/video-fullscreen-only-controls.html: Removed.
  • media/video-fullscreen-only-controls-expected.txt: Removed.
  • media/video-fullscreen-only-playback.html:
  • media/video-initially-hidden-volume-slider-up.html: Removed.
  • media/video-initially-hidden-volume-slider-up-expected.txt: Removed.
  • media/video-no-audio.html: Removed.
  • platform/gtk/media/video-no-audio-expected.txt: Removed.
  • platform/ios/media/video-no-audio-expected.txt: Removed.
  • platform/mac-catalina/media/video-no-audio-expected.txt: Removed.
  • platform/mac/media/video-no-audio-expected.txt: Removed.
  • platform/win/media/video-no-audio-expected.txt: Removed.
  • platform/wincairo/media/video-no-audio-expected.txt: Removed.
  • media/video-play-audio-require-user-gesture.html: Removed.
  • media/video-play-audio-require-user-gesture-expected.txt: Removed.
  • media/video-play-require-user-gesture.html: Removed.
  • media/video-play-require-user-gesture-expected.txt: Removed.
  • media/video-trackmenu-selection.html: Removed.
  • media/video-trackmenu-selection-expected.txt: Removed.
  • media/video-volume-slider.html: Removed.
  • platform/gtk/media/video-volume-slider-expected.txt: Removed.
  • platform/ios/media/video-volume-slider-expected.txt: Removed.
  • platform/mac-catalina/media/video-volume-slider-expected.txt: Removed.
  • platform/mac-mojave/media/video-volume-slider-expected.txt: Removed.
  • platform/mac/media/video-volume-slider-expected.txt: Removed.
  • platform/win/media/video-volume-slider-expected.txt: Removed.
  • platform/wincairo/media/video-volume-slider-expected.txt: Removed.
  • media/video-volume-slider-drag.html: Removed.
  • media/video-volume-slider-drag-expected.txt: Removed.
  • media/video-zoom-controls.html: Removed.
  • platform/gtk/media/video-zoom-controls-expected.txt: Removed.
  • platform/ios/media/video-zoom-controls-expected.txt: Removed.
  • platform/mac/media/video-zoom-controls-expected.txt: Removed.
  • platform/win/media/video-zoom-controls-expected.txt: Removed.
  • platform/wincairo/media/video-zoom-controls-expected.txt: Removed.
  • media/volume-bar-empty-when-muted.html: Removed.
  • media/volume-bar-empty-when-muted-expected.txt: Removed.
  • platform/gtk/media/volume-bar-empty-when-muted-expected.txt: Removed.
  • platform/mac/media/volume-bar-empty-when-muted-expected.txt: Removed.
  • platform/ios/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container.html: Removed.
  • platform/ios/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container-expected.txt: Removed.
  • platform/mac/media/video-layer-crash-expected.txt:
  • TestExpectations:
  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/gtk-wayland/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ios-device/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ipad/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
  • platform/wincairo-wk1/TestExpectations:
  • platform/wpe/TestExpectations:
3:17 PM Changeset in webkit [274809] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.7.1

Tag Safari-612.1.7.1.

3:09 PM Changeset in webkit [274808] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Reduce number of heap allocations on the audio thread in AudioSampleDataSource
https://bugs.webkit.org/show_bug.cgi?id=223549

Reviewed by Darin Adler.

Reduce number of heap allocations on the audio thread in AudioSampleDataSource
for performance reasons. I got rid of the heap allocations that I could easily
address. Some trickier ones remain.

  • platform/audio/cocoa/AudioSampleDataSource.h:

(WebCore::AudioSampleDataSource::inputDescription const):

  • Use Optional<> type for m_inputDescription & m_outputDescription data members instead of

std::unique_ptr<> so that we can initialize them without heap allocation.

  • Use UniqueRef<> instead of std::unique_ptr<> for m_ringBuffer now that it gets initialized in the constructor (on the main thread).
  • platform/audio/cocoa/AudioSampleDataSource.mm:

(WebCore::AudioSampleDataSource::AudioSampleDataSource):
Initialize m_ringBuffer in the constructor which runs on the main thread, instead of
doing it lazily later on, on the audio rendering thread.

(WebCore::AudioSampleDataSource::~AudioSampleDataSource):
Stop nulling data members out unnecessarily in the destructor.

(WebCore::AudioSampleDataSource::setInputFormat):
Initialize m_inputDescription without doing a heap allocation.

(WebCore::AudioSampleDataSource::setOutputFormat):

  • Initialize m_outputDescription without doing a heap allocation.
  • Drop initialization of m_ringBuffer now that it is done eagerly in the constructor.
  • Drop RunLoop::main().dispatch() just to do logging since this was causing heap allocations.

(WebCore::AudioSampleDataSource::pushSamplesInternal):
(WebCore::AudioSampleDataSource::pushSamples):
(WebCore::AudioSampleDataSource::pullSamplesInternal):
(WebCore::AudioSampleDataSource::pullAvalaibleSamplesAsChunks):
(WebCore::AudioSampleDataSource::pullSamples):
Drop null checks for m_ringBuffer now that it is initialized eagerly in the constructor
and thus can never be null.

3:08 PM Changeset in webkit [274807] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

Fix incorrect fallback values in PlaybackSessionModelMediaElement after r274249
https://bugs.webkit.org/show_bug.cgi?id=223584

Reviewed by Eric Carlson.

These values were something I was experimenting with as a way of knowing "has this ever
been changed", but as it turned out there were other ways of achieving this and/or it was
unnecessary to do so.

  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::defaultPlaybackRate const):
(WebCore::PlaybackSessionModelMediaElement::playbackRate const):

3:06 PM Changeset in webkit [274806] by msaboff@apple.com
  • 6 edits
    1 add in trunk

[YARR] Interpreter incorrectly matches non-BMP characters with multiple .
https://bugs.webkit.org/show_bug.cgi?id=223498

Reviewed by Yusuke Suzuki.

JSTests:

New test.

  • stress/regexp-dot-match-nonBMP.js: Added.

(shouldMatch):
(shouldntMatch):

Source/JavaScriptCore:

We need to check that we read an actual character before seeing if it is part of a character class.
In the case where we are checking that a character is not in a character class, like .,
the failed to read result from input.readChecked(), -1, is not part of the newline character class.
This will allow regular expressions that require more than the number of characters in a string
to match.

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::Interpreter::checkCharacterClass):

LayoutTests:

Updated test.

  • fast/forms/ValidityState-patternMismatch-expected.txt:
  • fast/forms/ValidityState-patternMismatch.html:
3:05 PM Changeset in webkit [274805] by Cameron McCormack
  • 2 edits in trunk/Tools

Restore my committer status.
https://bugs.webkit.org/show_bug.cgi?id=223600

Per email sent to webkit-committers@.

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/config/contributors.json:
3:00 PM Changeset in webkit [274804] by Ruben Turcios
  • 8 edits in branches/safari-612.1.7-branch/Source

Versioning.

WebKit-7612.1.7.1

2:54 PM Changeset in webkit [274803] by Chris Gambrell
  • 6 edits
    6 adds
    6 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/multipart convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=223475
<rdar://problem/75587716>

Reviewed by Jonathan Bedard.

  • TestExpectations:
  • http/tests/multipart/load-last-non-html-frame.php: Removed.
  • http/tests/multipart/load-last-non-html-frame.py: Added.
  • http/tests/multipart/multipart-html.php: Removed.
  • http/tests/multipart/multipart-html.py: Added.
  • http/tests/multipart/multipart-replace-non-html-content.php: Removed.
  • http/tests/multipart/multipart-replace-non-html-content.py: Added.
  • http/tests/multipart/multipart-wait-before-boundary.html:
  • http/tests/multipart/policy-ignore-crash.php: Removed.
  • http/tests/multipart/policy-ignore-crash.py: Added.
  • http/tests/multipart/resources/multipart-nodashes.php: Removed.
  • http/tests/multipart/resources/multipart-nodashes.py: Added.
  • http/tests/multipart/resources/multipart-wait-before-boundary.php: Removed.
  • http/tests/multipart/resources/multipart-wait-before-boundary.py: Added.

(sendHeader):

  • http/tests/multipart/win-boundary-crash.html:
  • platform/ios/TestExpectations:
  • platform/win/TestExpectations:
2:47 PM Changeset in webkit [274802] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Always perform image decoding in the web content process.
https://bugs.webkit.org/show_bug.cgi?id=223290
<rdar://problem/75559243>

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-22
Reviewed by Eric Carlson.

No change in externally observable behaviour.

  • Modules/mediasession/MediaMetadata.cpp:

(WebCore::ArtworkImageLoader::notifyFinished): We decode the image into a BitmapImage and handle all potential failures getting there.

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::setNowPlayingInfo): remove FIXME comment.

2:34 PM Changeset in webkit [274801] by Chris Gambrell
  • 22 edits
    8 adds
    8 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/privateClickMeasurement convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=223575
<rdar://problem/75691545>

Reviewed by Alex Christensen.

  • http/tests/contentextensions/block-private-click-measurement-expected.txt:
  • http/tests/contentextensions/block-private-click-measurement.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority.html:
  • http/tests/privateClickMeasurement/clear-through-website-data-removal.html:
  • http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html:
  • http/tests/privateClickMeasurement/expired-ad-click-gets-removed-on-session-start.html:
  • http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start-expected.txt:
  • http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start.html:
  • http/tests/privateClickMeasurement/expired-attributions-removed.html:
  • http/tests/privateClickMeasurement/resources/conversionFilePath.php: Removed.
  • http/tests/privateClickMeasurement/resources/conversionFilePath.py: Added.
  • http/tests/privateClickMeasurement/resources/conversionReport.php: Removed.
  • http/tests/privateClickMeasurement/resources/conversionReport.py: Added.
  • http/tests/privateClickMeasurement/resources/convertAndPostMessageBack.html:
  • http/tests/privateClickMeasurement/resources/fraudPreventionTestURL.php: Removed.
  • http/tests/privateClickMeasurement/resources/fraudPreventionTestURL.py: Added.
  • http/tests/privateClickMeasurement/resources/getConversionData.php: Removed.
  • http/tests/privateClickMeasurement/resources/getConversionData.py: Added.
  • http/tests/privateClickMeasurement/resources/getTokenSigningData.php: Removed.
  • http/tests/privateClickMeasurement/resources/getTokenSigningData.py: Added.
  • http/tests/privateClickMeasurement/resources/redirectToConversion.php: Removed.
  • http/tests/privateClickMeasurement/resources/redirectToConversion.py: Added.
  • http/tests/privateClickMeasurement/resources/redirectToConversionOnIPAddress.php: Removed.
  • http/tests/privateClickMeasurement/resources/redirectToConversionOnIPAddress.py: Added.
  • http/tests/privateClickMeasurement/resources/tokenSigningFilePath.php: Removed.
  • http/tests/privateClickMeasurement/resources/tokenSigningFilePath.py: Added.
  • http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority.html:
  • http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority.html:
  • http/tests/privateClickMeasurement/second-conversion-with-higher-priority.html:
  • http/tests/privateClickMeasurement/second-conversion-with-lower-priority.html:
  • http/tests/privateClickMeasurement/send-attribution-conversion-request-expected.txt:
  • http/tests/privateClickMeasurement/send-attribution-conversion-request.html:
  • http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce-expected.txt:
  • http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html:
2:23 PM Changeset in webkit [274800] by Dewei Zhu
  • 54 edits
    1 move in trunk/Websites/perf.webkit.org

[perf dashboard] Remove non-inclusive words from perf dashboard.
https://bugs.webkit.org/show_bug.cgi?id=223505

Reviewed by Ryosuke Niwa.

Removed most of non-inclusive terminology and replaced it with 'worker'.
Make impacted APIs backward compatible during transition.
The non-inclusive terminology will be removed after transition.

  • ReadMe.md: Removed non-inclusive words.
  • init-database.sql: Rename tables with non-inclusive words.
  • migrate-database.sql: Added migration SQL for existing database.
  • public/admin/build-workers.php: Renamed from Websites/perf.webkit.org/public/admin/build-slaves.php.
  • public/api/build-requests.php:
  • public/api/measurement-set.php:
  • public/api/report-commits.php:
  • public/api/runs.php:
  • public/api/update-triggerable.php:
  • public/api/upload-root.php:
  • public/include/admin-header.php:
  • public/include/json-header.php:
  • public/include/report-processor.php:
  • public/privileged-api/add-build-requests.php:
  • public/privileged-api/create-analysis-task.php:
  • public/privileged-api/create-test-group.php:
  • public/privileged-api/update-test-group.php:
  • public/v2/js/ember.js:
  • server-tests/api-build-requests-tests.js:
  • server-tests/api-commits-tests.js:
  • server-tests/api-report-commits-tests.js:
  • server-tests/api-report-tests.js:

(emptyReport):
(reportWitMismatchingCommitTime):
(reportWithOneSecondCommitTimeDifference):
(emptyWorkerReport):
(emptySlaveReport): Deleted.

  • server-tests/api-test-groups.js:
  • server-tests/api-update-triggerable-tests.js:

(updateWithOSXRepositoryGroup):
(updateWithMacWebKitRepositoryGroups):

  • server-tests/api-upload-root-tests.js:

(makeReport):
(addWorkerAndCreateRootFile):

  • server-tests/privileged-api-add-build-requests-tests.js:

(async createAnalysisTask):
(async addTriggerableAndCreateTask):

  • server-tests/privileged-api-create-analysis-task-tests.js:
  • server-tests/privileged-api-create-test-group-tests.js:

(createAnalysisTask):

  • server-tests/privileged-api-update-test-group-tests.js:

(async createAnalysisTask):
(async addTriggerableAndCreateTask):

  • server-tests/resources/common-operations.js:
  • server-tests/resources/mock-data.js:

(MockData.addMockConfiguration):
(MockData.set mockTestSyncConfigWithSingleBuilder):
(MockData.sampleBuildData):

  • server-tests/resources/test-server.js:

(TestServer.prototype.testConfig):

  • server-tests/tools-buildbot-triggerable-tests.js:
  • server-tests/tools-os-build-fetcher-tests.js:
  • server-tests/tools-sync-buildbot-integration-tests.js:

(createTriggerable):

  • tools/detect-changes.js:

(loadServerConfig):

  • tools/js/buildbot-syncer.js:

(BuildbotBuildEntry.prototype.buildTag):
(BuildbotSyncer):
(BuildbotSyncer.prototype.scheduleRequest):
(BuildbotSyncer.prototype.scheduleRequestInGroupIfAvailable):
(BuildbotSyncer.prototype.pullBuildbot):
(BuildbotSyncer._loadConfig):
(BuildbotSyncer._validateAndMergeConfig):
(BuildbotBuildEntry.prototype.slaveName): Deleted.

  • tools/js/buildbot-triggerable.js:

(BuildbotTriggerable):
(BuildbotTriggerable.prototype.updateTriggerable):
(BuildbotTriggerable.prototype.async syncOnce):
(BuildbotTriggerable.prototype.async _scheduleRequest):
(BuildbotTriggerable.prototype._scheduleRequestIfWorkerIsAvailable):
(BuildbotTriggerable.prototype._scheduleRequestWithLog):
(BuildbotTriggerable._testGroupMapForBuildRequests):
(BuildbotTriggerable.prototype._scheduleRequestIfSlaveIsAvailable): Deleted.

  • tools/js/database.js:
  • tools/js/os-build-fetcher.js:

(prototype.async _reportCommits):

  • tools/js/privileged-api.js:

(NodePrivilegedAPI.prototype.sendRequest):
(NodePrivilegedAPI.configure):
(NodePrivilegedAPI):

  • tools/pull-os-versions.py:

(OSBuildFetcher.fetch_and_report_new_builds):

  • tools/run-analysis.js:

(async analysisLoop):

  • tools/sync-buildbot.js:

(syncLoop.const.makeTriggerable):
(syncLoop):

  • tools/sync-commits.py:

(Repository.fetch_commits_and_submit):

  • tools/sync-os-versions.js:

(syncLoop):

  • tools/util.py:

(submit_commits):

  • unit-tests/analysis-task-tests.js:
  • unit-tests/buildbot-syncer-tests.js:

(sampleiOSConfig):
(sampleBuildData):
(async const):

  • unit-tests/checkconfig.js:
  • unit-tests/measurement-set-analyzer-tests.js:
  • unit-tests/privileged-api-tests.js:
  • unit-tests/retry-failed-build-requests-tests.js:
  • unit-tests/test-groups-tests.js:
2:23 PM Changeset in webkit [274799] by Dewei Zhu
  • 2 edits in trunk/Websites/perf.webkit.org

[perf dashboard] Perf dashboard should be compatible with newer version of postgres.
https://bugs.webkit.org/show_bug.cgi?id=223567

Reviewed by Ryosuke Niwa.

Newer version of postgres requires explicit ROW expression while updating a single column
using multi-column update syntax. However, 'ROW' is not supported in postgres < 10. In order
to keep compatibility, using a separate query when only updating one row.

  • public/include/db.php: Use 'column = value' when there is only one column to update.
2:21 PM Changeset in webkit [274798] by dino@apple.com
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Metal-Angle on Simulator does not support D24S8 correctly
https://bugs.webkit.org/show_bug.cgi?id=223494

Patch by Kyle Piddington <Kyle Piddington> on 2021-03-19
Reviewed by Dean Jackson.

Re-ran autogen script for format table to add the missing format
Corrected texture swizzle support. Swizzle is unsupported on simulator.

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

(rx::mtl::Format::init):

2:11 PM Changeset in webkit [274797] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.2-branch/Source

Versioning.

WebKit-7611.1.21.2.4

1:58 PM Changeset in webkit [274796] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

[iOS] Composition text is not initially highlighted when typing in text fields using Pinyin keyboard
https://bugs.webkit.org/show_bug.cgi?id=223563
<rdar://problem/75564516>

Reviewed by Antti Koivisto.

Source/WebCore:

When enabling line layout integration, composition highlights on iOS don't appear when typing an input string
using the Pinyin keyboard for the first time. This is because the text renderer for the inserted composition
text does not contain inline text boxes when painting the composition text on iOS, so the marked text painting
codepath is never triggered.

On macOS, this isn't an issue because the process of setting the composition changes the selection, which then
changes the highlight state of the RenderText, which subsequently calls into ensureLineBoxes(). However,
since selections are drawn using UIKit in the UI process on iOS, we don't end up ensuring that inline text boxes
are constructed for the inserted text.

To address this, we follow macOS behavior by ensuring line box construction on the rendered composition text
when setting the composition.

Test: editing/input/composition-underline-in-search-field.html

  • editing/Editor.cpp:

(WebCore::Editor::setComposition):

LayoutTests:

Add a test to verify that marked text underlines show up in search fields.

  • editing/input/composition-underline-in-search-field-expected-mismatch.html: Added.
  • editing/input/composition-underline-in-search-field.html: Added.
1:53 PM Changeset in webkit [274795] by Russell Epstein
  • 13 edits in branches/safari-611.1.21.0-branch/Source

Cherry-pick r274746. rdar://problem/75706601

Cannot login to microsoftonline.com without allowing storage access
https://bugs.webkit.org/show_bug.cgi?id=223510
<rdar://problem/75619058>

Reviewed by John Wilander.

Source/WebCore:

This patch introduces two changes:

  1. Activate the storage access quirks for default browsers only. This is the main place we test them, and can lead to unexpected behavior in apps otherwise.
  1. Doesn't cancel the click even if the user denies storage access. Previously we we were not allowing the click because it produces unexpected behavior. But, sites like login.microsoftonline.com are used by multiple Microsoft login flows. Since only a subset require storage access, canceling the click across the board could be considered regressing behavior.

Since storage access data is stored in the network process, we
currently cancel the user's click on quirked sites while we wait
asyncronously for the IPC response. If the user grants storage access,
we store this in the web content process and dispatch a synthetic
click. In this case, when the click triggers another storage access
check, we can allow the click because we no longer need to wait for
information from the network process.

We need some heuristic in the web content process to handle the case
of the user denying storage access to know whether to allow a
synthetic click to happen. This patch introduces
hasDeniedCrossPageStorageAccess which stores domains in the web
content process which have been denied storage access via quirk. If
a user has previously denied storage access in that web content
process, we don't prompt again. A new web content process will give them
another opportunity to allow/deny storage access.

  • dom/Element.cpp: (WebCore::Element::dispatchMouseEvent):
  • loader/FrameLoaderClient.h: Add a client function to check if the parent process is a full web browser, and pass this to the place we apply the quirks.
  • loader/ResourceLoadObserver.h: (WebCore::ResourceLoadObserver::setHasDeniedCrossPageStorageAccess): (WebCore::ResourceLoadObserver::hasDeniedCrossPageStorageAccess const):
  • page/Quirks.cpp: (WebCore::hasDeniedCrossPageStorageAccess): (WebCore::Quirks::requestStorageAccessAndHandleClick const): (WebCore::Quirks::triggerOptionalStorageAccessQuirk const):
  • page/Quirks.h:

Source/WebKit:

Disable the storage access quirk for non-default web browsers and
don't cancel the login click on sites even if the user denies storage
access. See WebCore changelog for more details.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::isParentProcessAFullWebBrowser const):
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp: (WebKit::WebResourceLoadObserver::hasDeniedCrossPageStorageAccess const): (WebKit::WebResourceLoadObserver::setHasDeniedCrossPageStorageAccess):
  • WebProcess/WebCoreSupport/WebResourceLoadObserver.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::pageIsParentProcessAFullWebBrowser): (WebKit::WebPage::updatePreferences):
  • WebProcess/WebPage/WebPage.h:

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

1:51 PM Changeset in webkit [274794] by Chris Dumez
  • 6 edits in trunk

imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/nan-param.html is failing
https://bugs.webkit.org/show_bug.cgi?id=223583

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline test that is now passing.

  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/nan-param-expected.txt:

Source/WebCore:

As per https://webaudio.github.io/web-audio-api/#computation-of-value, we should replace NaN values with
the default value, when computing the value for an AudioParam.

No new tests, rebaselined existing test.

  • Modules/webaudio/AudioParam.cpp:

(WebCore::replaceNaNValues):
(WebCore::AudioParam::calculateFinalValues):

LayoutTests:

Unskip test that should no longer be flaky.

1:51 PM Changeset in webkit [274793] by commit-queue@webkit.org
  • 27 edits
    2 adds in trunk

[css-contain] Parse CSS contain property
https://bugs.webkit.org/show_bug.cgi?id=223252

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-22
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Adjust test expectations.

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-026-expected.txt:
  • web-platform-tests/css/css-contain/inheritance-expected.txt:
  • web-platform-tests/css/css-contain/parsing/contain-computed-expected.txt:
  • web-platform-tests/css/css-contain/parsing/contain-valid-expected.txt:
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:

Source/WebCore:

Parse CSS contain property according to the specification [1].
This patch also adds the experimental feature CSSContainment and
makes contain invisible from style when disabled.

[1] https://drafts.csswg.org/css-contain-1/#contain-property

Test: fast/css/contain-invalidate-if-disabled.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/CSSValueKeywords.in:
  • css/parser/CSSParserContext.cpp:

(WebCore::operator==):
(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):

  • css/parser/CSSParserContext.h:

(WebCore::CSSParserContextHash::hash):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeContain):
(WebCore::CSSPropertyParser::parseSingleValue):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::contain const):
(WebCore::RenderStyle::setContain):
(WebCore::RenderStyle::initialContainment):
(WebCore::RenderStyle::strictContainment):
(WebCore::RenderStyle::contentContainment):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):

  • rendering/style/StyleRareNonInheritedData.h:
  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInitialContain):
(WebCore::Style::BuilderCustom::applyInheritContain):
(WebCore::Style::BuilderCustom::applyValueContain):

Source/WTF:

Add experimental feature flag.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

Add support for disabling aspect-ratio in win wk1.

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

LayoutTests:

Add test to verify that contain is invisible from style when disabled.

  • fast/css/contain-invalidate-if-disabled-expected.txt: Added.
  • fast/css/contain-invalidate-if-disabled.html: Added.
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
1:47 PM Changeset in webkit [274792] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.0-branch/Source

Versioning.

WebKit-7611.1.21.0.10

1:38 PM Changeset in webkit [274791] by Fujii Hironori
  • 9 edits in trunk/Source

[WinCairo] ASSERTION FAILED: isMainThread() in GPU process for some canvas/philip/tests tests
https://bugs.webkit.org/show_bug.cgi?id=223500

Reviewed by Alex Christensen.

Source/WebCore:

Added a new member of FontPlatformData::CreationData to
FontCustomPlatformData struct to transfer custom fonts to GPU
process for WinCairo port.

  • PlatformWin.cmake:
  • platform/graphics/FontPlatformData.h:
  • platform/graphics/win/FontCustomPlatformData.cpp:

(WebCore::createFontCustomPlatformData):

  • platform/graphics/win/FontCustomPlatformData.h:

(WebCore::FontCustomPlatformData::FontCustomPlatformData):

  • platform/graphics/win/FontCustomPlatformDataCairo.cpp:

(WebCore::FontCustomPlatformData::fontPlatformData):
(WebCore::createFontCustomPlatformData):

  • platform/graphics/win/FontPlatformDataCairoWin.cpp:

(WebCore::FontPlatformData::FontPlatformData):

Source/WebKit:

In WinCairo GPU process mode, WebCore::Font IPC decoder was using
FontCache::fontForFamily that should be called only in the main
thread. However, It is was called in IPC thread. Reimplemented the
decoder without using FontCache::fontForFamily.

Encode LOGFONT for WebCore::Font, and decode it and create a font
directly from it.

This change also encodes and decodes the
FontPlatformData::CreationData of custom fonts. However, custom
fonts still don't work in GPU process mode because
FontCustomPlatformData is destructed soon. In non-GPU process
mode, FontCustomPlatformData is retained by CachedFont. In GPU
process mode, fontReference of FontCustomPlatformData should be
refcounted and retained by WebCore::Font.

  • Shared/win/WebCoreArgumentCodersWin.cpp:

(IPC::ArgumentCoder<LOGFONT>::encode):
(IPC::ArgumentCoder<LOGFONT>::decode):
(IPC::ArgumentCoder<Ref<Font>>::encodePlatformData):
(IPC::ArgumentCoder<Ref<Font>>::decodePlatformData):

1:32 PM Changeset in webkit [274790] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Allow additional fcntl
https://bugs.webkit.org/show_bug.cgi?id=223590
<rdar://problem/75702241>

Reviewed by Brent Fulgham.

An additional fcntl is being used and should be allowed.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
1:30 PM Changeset in webkit [274789] by youenn@apple.com
  • 7 edits in trunk/Source

RealtimeMediaSource does not need to be a WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=223573
<rdar://75583258>

Reviewed by Eric Carlson.

Source/WebCore:

Remove use of WeakPtr and ref the source instead.
Covered by existing tests.

  • platform/mediastream/RealtimeIncomingAudioSource.cpp:

(WebCore::RealtimeIncomingAudioSource::OnChanged):

  • platform/mediastream/RealtimeIncomingVideoSource.cpp:

(WebCore::RealtimeIncomingVideoSource::OnChanged):

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::updateHasStartedProducingData):

  • platform/mediastream/RealtimeMediaSource.h:

Source/WebKit:

  • UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h:
1:30 PM Changeset in webkit [274788] by Ross Kirsling
  • 8 edits in trunk/Source

Unreviewed, fix Mac and non-unified JSCOnly builds
https://bugs.webkit.org/show_bug.cgi?id=223546

Source/JavaScriptCore:

  • wasm/WasmGlobal.h:
  • wasm/WasmTable.h:
  • wasm/js/JSWebAssemblyCompileError.cpp:
  • wasm/js/JSWebAssemblyLinkError.cpp:
  • wasm/js/JSWebAssemblyRuntimeError.cpp:

Add missing includes for non-unified JSC build.

Source/WTF:

  • wtf/PlatformJSCOnly.cmake:

Add missing file for JSCOnly build on Mac.

1:22 PM Changeset in webkit [274787] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[GStreamer] gst_audio_format_fill_silence() is deprecated in GStreamer 1.20
https://bugs.webkit.org/show_bug.cgi?id=223562

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

Fix GStreamer deprecation warnings.

  • platform/graphics/gstreamer/GStreamerCommon.h:
  • platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.cpp:

(WebCore::MockRealtimeAudioSourceGStreamer::render):

  • platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.cpp:

(WebCore::RealtimeIncomingAudioSourceLibWebRTC::OnData):

  • platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.cpp:

(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::pullAudioData):

1:15 PM Changeset in webkit [274786] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:2681:9: runtime error: load of value nnn, which is not a valid value for type 'BOOL' (aka 'signed char')
https://bugs.webkit.org/show_bug.cgi?id=223581

Reviewed by Simon Fraser.

The code was implicitly casting an uint64_t identifier into a BOOL variable. The intention was
to check whether the identifier is 0 or not. To silence the UBSAN error, we now use the bool
type instead of BOOL (since BOOL is defined as a signed char on some platforms).

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::pluginFocusOrWindowFocusChanged):

1:12 PM Changeset in webkit [274785] by Lauro Moura
  • 4 edits in trunk/LayoutTests

Gardening some passing tests

Unreviewed test gardening.

  • TestExpectations:
  • platform/glib/TestExpectations:
  • platform/wpe/TestExpectations:
1:07 PM Changeset in webkit [274784] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] Intl.Locale should not assume is8Bit
https://bugs.webkit.org/show_bug.cgi?id=223553

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-locale-non-8bit.js: Added.

(shouldBe):

Source/JavaScriptCore:

is8Bit or not is not guaranteed if it is an user-input. For example, "test日本語".substring(0, 3) should be non 8Bit string.
Intl.Locale has several places that assumed that input should be 8Bit if they are ASCII. This patch fixes it.

  • runtime/IntlLocale.cpp:

(JSC::LocaleIDBuilder::overrideLanguageScriptRegion):
(JSC::LocaleIDBuilder::setKeywordValue):

12:55 PM Changeset in webkit [274783] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.7

Tag Safari-612.1.7.

12:55 PM Changeset in webkit [274782] by Chris Dumez
  • 3 edits
    1 add in trunk/LayoutTests

Unreviewed, unskip audioworkletprocessor-param-getter-overridden.https.html WPT test as it is no longer failing.

LayoutTests/imported/w3c:

  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-param-getter-overridden.https-expected.txt: Added.

LayoutTests:

12:54 PM Changeset in webkit [274781] by Ruben Turcios
  • 1 delete in tags/Safari-612.1.7

Delete tag.

12:53 PM WebKitGTK/2.32.x edited by clopez@igalia.com
(diff)
12:51 PM WebKitGTK/2.32.x edited by clopez@igalia.com
(diff)
12:46 PM Changeset in webkit [274780] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.7

Tag Safari-612.1.7.

12:42 PM Changeset in webkit [274779] by Ruben Turcios
  • 1 delete in tags/Safari-612.1.7

Delete tag.

12:42 PM Changeset in webkit [274778] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Async Clipboard read prevents WebRTC IOSurfaces from being released
https://bugs.webkit.org/show_bug.cgi?id=223489
<rdar://problem/75601433>

Reviewed by Eric Carlson.

Instead of dispatching a task to main thread, the task refing a MediaSample,
we store the MediaSample in MediaPlayerPrivateMediaStreamAVFObjC on the background thread and
access it on main thread with a lock.
This ensures that we do not keep more than one media sample per MediaPlayerPrivateMediaStreamAVFObjC, even if main thread is blocked.
Make sure to reset the video transformation according hasChangedOrientation even if there is no media sample available anymore.
Covered by existing tests.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::processNewVideoSample):

12:37 PM Changeset in webkit [274777] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix typo introduced in r274586 and revert fix from r274667 to get around compilation error following typo.
https://bugs.webkit.org/show_bug.cgi?id=223554

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-22
Reviewed by Eric Carlson.

No test needed.

  • testing/Internals.cpp:

(WebCore::Internals::loadArtworkImage):

12:35 PM Changeset in webkit [274776] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Better validate JSArrays in AudioWorkletProcessor
https://bugs.webkit.org/show_bug.cgi?id=223548

Reviewed by Geoffrey Garen.

Better validate JSArrays in AudioWorkletProcessor. Replaces debug assertions with runtime
checks for robustness.

  • Modules/webaudio/AudioWorkletProcessor.cpp:

(WebCore::copyDataFromBusesToJSArray):
(WebCore::copyDataFromParameterMapToJSObject):
(WebCore::zeroJSArray):
(WebCore::AudioWorkletProcessor::buildJSArguments):

12:34 PM Changeset in webkit [274775] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.7

Tag Safari-612.1.7.

12:29 PM Changeset in webkit [274774] by Alan Bujtas
  • 5 edits in trunk

[ macOS debug arm64 ] ASSERTION FAILED: count >= 1 ./rendering/RenderMultiColumnSet.cpp(450) : unsigned int WebCore::RenderMultiColumnSet::columnCount() const
https://bugs.webkit.org/show_bug.cgi?id=223144
<rdar://problem/75381496>

Reviewed by Simon Fraser.

Source/WebCore:

Overflow height computation with infinite constraint should not produce a negative height value.
During the column balancing, we use the "max layout unit" value to indicate infinite available space.
However this max value confuses the height computation in expandToEncompassFragmentedFlowContentsIfNeeded and produces a negative height value.

Let's also ensure that we never trigger undefined behavior as the result of implicitly converting (negative)float to unsigned.

  • rendering/RenderFragmentContainerSet.cpp:

(WebCore::RenderFragmentContainerSet::expandToEncompassFragmentedFlowContentsIfNeeded):

  • rendering/RenderFragmentedFlow.cpp:

(WebCore::RenderFragmentedFlow::updateFragmentsFragmentedFlowPortionRect):

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::columnCount const):

LayoutTests:

  • platform/mac/TestExpectations:
12:25 PM Changeset in webkit [274773] by Chris Dumez
  • 10 edits in trunk

Implement AbortSignal.abort()
https://bugs.webkit.org/show_bug.cgi?id=223071
<rdar://problem/75575483>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Resync WPT test from upstream a8cbe9c712ad032d36 to gain test coverage.

  • web-platform-tests/dom/abort/event.any-expected.txt:
  • web-platform-tests/dom/abort/event.any.js:
  • web-platform-tests/dom/abort/event.any.worker-expected.txt:

Source/WebCore:

Implement AbortSignal.abort() which creates and returns an already aborted AbortSignal:

No new tests, covered by updated test.

  • dom/AbortSignal.cpp:

(WebCore::AbortSignal::createAborted):
(WebCore::AbortSignal::AbortSignal):

  • dom/AbortSignal.h:
  • dom/AbortSignal.idl:
12:06 PM Changeset in webkit [274772] by Wenson Hsieh
  • 6 edits
    2 adds in trunk

[macOS] Context menu should account for image overlay content
https://bugs.webkit.org/show_bug.cgi?id=223518
<rdar://problem/75505210>

Reviewed by Devin Rousso.

Source/WebCore:

Make some adjustments to allow context menu items for text selection to show up when right clicking on text in
an image overlay.

Test: fast/images/image-extraction/mac/copy-image-overlay-text-with-context-menu.html

  • editing/Editor.cpp:

(WebCore::Editor::performCutOrCopy):

Adjust this logic so that we only attempt to write plain text to the system pasteboard when copying text inside
image overlays (this matches the behavior of copying selected text in textarea elements and text fields).

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::hasImageOverlay const):
(WebCore::imageOverlayHost):
(WebCore::HTMLElement::isInsideImageOverlay):

Add a helper function to determine whether or not a given range in the DOM is inside an image overlay shadow
root. To avoid code duplication, pull out some logic to grab the image overlay's element host (if it exists) out
into a separate static helper function (imageOverlayHost), and use it here and also in isImageOverlayText.

(WebCore::HTMLElement::isImageOverlayText):

Move the UA shadow root check into HTMLElement::hasImageOverlay, so that hasImageOverlay can be invoked for
elements with non-UA shadow roots without hitting an assertion.

  • html/HTMLElement.h:
  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::populate):

Pull logic that determines whether or not we should show text-selection-related context menu items out into a
separate lambda function, so that it's easier to take advantage of early returns; then, in the case where we
have an image URL, additionally show selected text options if the selection is inside the image overlay.

LayoutTests:

Add a layout test to exercise copying via the context menu.

  • fast/images/image-extraction/mac/copy-image-overlay-text-with-context-menu-expected.txt: Added.
  • fast/images/image-extraction/mac/copy-image-overlay-text-with-context-menu.html: Added.
12:02 PM Changeset in webkit [274771] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Allow user to force canonicalization for a specific set of commits
https://bugs.webkit.org/show_bug.cgi?id=223579
<rdar://problem/75693154>

Reviewed by Aakash Jain.

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

(Canonicalize.parser): Add --number argument.
(Canonicalize.main): Use --number to set the number of commits to be canonicalized.

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

(TestCanonicalize.test_number):

12:01 PM Changeset in webkit [274770] by weinig@apple.com
  • 54 edits in trunk/Source

Use the PropertyName parameter passed to custom getters/setters rather than a redundant const char* in DOM attribute prologues
https://bugs.webkit.org/show_bug.cgi?id=223542

Reviewed by Alexey Shvayka.

Source/JavaScriptCore:

Add throwVMDOMAttributeSetterTypeError to match existing throwVMDOMAttributeGetterTypeError and move
additional helpers used by WebCore here to avoid redundant work.

Removes some now unused functions.

  • runtime/Error.cpp:

(JSC::createGetterTypeError):
(JSC::makeDOMAttributeGetterTypeErrorMessage):
(JSC::makeDOMAttributeSetterTypeErrorMessage):
(JSC::throwDOMAttributeGetterTypeError):
(JSC::throwDOMAttributeSetterTypeError):
(JSC::throwGetterTypeError): Deleted.

  • runtime/Error.h:

(JSC::throwVMRangeError):
(JSC::throwVMDOMAttributeSetterTypeError):
(JSC::throwVMGetterTypeError): Deleted.

Source/WebCore:

Use the PropertyName parameter passed to custom getters/setters rather than a
redundant const char* in DOM attribute prologues. This will allow us to share
IDLAttribute prologue implementations in cases where the same bound function
should be called for multiple attributes, as will be the case for CSSStyleDeclaration.

Also took the opertunity to do some cleanup

  • Made CastedThisErrorBehavior conditions use if constexpr to ensure the non-requested cases are compiled out, even in debug builds.
  • Moves all attribute Getter/Setter TypeError related functions to JSC, where there were already some, to remove duplication of strings and prepare for hoisting setter prologues in the future (as is already done for getters).
  • Remove AttributeSetter::call as it was redundant with invokeFunctorPropagatingExceptionIfNecessary.
  • bindings/js/JSDOMAttribute.h:

(WebCore::IDLAttribute::set):
(WebCore::IDLAttribute::setStatic):
(WebCore::IDLAttribute::get):
(WebCore::IDLAttribute::getStatic):
(WebCore::AttributeSetter::call): Deleted.

  • bindings/js/JSDOMExceptionHandling.cpp:

(WebCore::rejectPromiseWithGetterTypeError):
(WebCore::makeGetterTypeErrorMessage): Deleted.
(WebCore::throwGetterTypeError): Deleted.
(WebCore::throwSetterTypeError): Deleted.

  • bindings/js/JSDOMExceptionHandling.h:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSC_DEFINE_HOST_FUNCTION):

  • bindings/js/JSDOMOperation.h:

(WebCore::IDLOperation::call):

  • bindings/js/JSDOMOperationReturningPromise.h:

(WebCore::IDLOperationReturningPromise::call):
(WebCore::IDLOperationReturningPromise::callReturningOwnPromise):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateAttributeGetterTrampolineDefinition):
(GenerateAttributeSetterBodyDefinition):
(GenerateAttributeSetterTrampolineDefinition):

  • bindings/scripts/test/JS/*:

Update test results.

12:00 PM Changeset in webkit [274769] by commit-queue@webkit.org
  • 4 edits in trunk

AppleWin can't start due to "Failed to determine path to AAS directory." because iTunes changed the registry key
https://bugs.webkit.org/show_bug.cgi?id=219015

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-03-22
Reviewed by Alex Christensen.

It appears that iTunes no longer sets the Apple Application Support
Source/JavaScriptCore:

registry entry. Fall back to trying to find the iTunes installation
directory if the AAS directory is not present.

  • shell/DLLLauncherMain.cpp:

(iTunesDirectory): Added.
(modifyPath):

Tools:

registry entry. Fallback to trying to find the iTunes installation
directory if the AAS directory is not present.

  • win/DLLLauncher/DLLLauncherMain.cpp:

(iTunesDirectory): Added.
(modifyPath):

12:00 PM Changeset in webkit [274768] by Chris Gambrell
  • 17 edits
    11 adds
    10 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/workers convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=223522
<rdar://problem/75624689>

Reviewed by Alex Christensen.

  • http/tests/workers/resources/subworker-encoded.php: Removed.
  • http/tests/workers/resources/subworker-encoded.py: Added.
  • http/tests/workers/resources/worker-encoded.php: Removed.
  • http/tests/workers/resources/worker-encoded.py: Added.
  • http/tests/workers/resources/worker-importScripts-banned-mimetype.php: Removed.
  • http/tests/workers/resources/worker-importScripts-banned-mimetype.py: Added.
  • http/tests/workers/resources/xhr-query-utf8.php: Removed.
  • http/tests/workers/resources/xhr-query-utf8.py: Added.
  • http/tests/workers/resources/xhr-response.py: Added.
  • http/tests/workers/service/basic-timeout.https-expected.txt:
  • http/tests/workers/service/controller-change.html:
  • http/tests/workers/service/page-caching.html:
  • http/tests/workers/service/registration-updateViaCache-all.html:
  • http/tests/workers/service/registration-updateViaCache-none.html:
  • http/tests/workers/service/resources/basic-timeout.js:
  • http/tests/workers/service/resources/cacheable-script-worker.php: Removed.
  • http/tests/workers/service/resources/cacheable-script-worker.py: Added.
  • http/tests/workers/service/resources/download-binary.php: Removed.
  • http/tests/workers/service/resources/download-binary.py: Added.
  • http/tests/workers/service/resources/import-cacheable-script-worker.js:
  • http/tests/workers/service/resources/self_registration_update-worker.php: Removed.
  • http/tests/workers/service/resources/self_registration_update-worker.py: Added.
  • http/tests/workers/service/resources/succeed-fallback-check.php: Removed.
  • http/tests/workers/service/resources/succeed-fallback-check.py: Added.
  • http/tests/workers/service/resources/updating-fetch-worker.php: Removed.
  • http/tests/workers/service/resources/updating-fetch-worker.py: Added.
  • http/tests/workers/service/resources/updating-worker.php: Removed.
  • http/tests/workers/service/resources/updating-worker.py: Added.
  • http/tests/workers/service/self_registration_update.html:
  • http/tests/workers/service/service-worker-download-async-delegates.https-expected.txt:
  • http/tests/workers/service/service-worker-download-async-delegates.https.html:
  • http/tests/workers/service/service-worker-download.https-expected.txt:
  • http/tests/workers/service/service-worker-download.https.html:
  • http/tests/workers/service/service-worker-registration-gc-event.html:
  • http/tests/workers/text-encoding.html:
  • http/tests/workers/worker-importScripts-banned-mimetype-expected.txt:
  • http/tests/workers/worker-importScripts-banned-mimetype.html:
11:51 AM Changeset in webkit [274767] by Chris Dumez
  • 8 edits in trunk/Source/WebCore

Avoid heap allocation under AudioNodeInput::disable() / AudioNodeInput::enable()
https://bugs.webkit.org/show_bug.cgi?id=223529

Reviewed by Eric Carlson.

Avoid heap allocation under AudioNodeInput::disable() / AudioNodeInput::enable() since those can
get called on the audio thread.

AudioNodeInput used to have a m_disabledOutputs container to keep disabled outputs separated
from enabled ones (in m_outputs). Instead, we now store all outputs in m_outputs with a 'isEnabled'
flag. As a result, we no longer need to make any heap allocations when enabling/disabling an
output, we merely need to flip a flag in m_outputs.

For convenience, since clients of rendering outputs only care about enabled outputs, I introduced
a new RenderingOutputCollection container with iterators. This way clients do not need to worry
about disabled outputs.

  • Modules/webaudio/AudioNodeInput.cpp:

(WebCore::AudioNodeInput::connect):
(WebCore::AudioNodeInput::disconnect):
(WebCore::AudioNodeInput::didDisableOutput):
(WebCore::AudioNodeInput::didEnableOutput):
(WebCore::AudioNodeInput::bus):
(WebCore::AudioNodeInput::sumAllConnections):
(WebCore::AudioNodeInput::pull):

  • Modules/webaudio/AudioNodeInput.h:
  • Modules/webaudio/AudioNodeOutput.cpp:

(WebCore::AudioNodeOutput::disable):
(WebCore::AudioNodeOutput::enable):

  • Modules/webaudio/AudioParam.cpp:

(WebCore::AudioParam::calculateFinalValues):

  • Modules/webaudio/AudioSummingJunction.cpp:

(WebCore::AudioSummingJunction::numberOfConnections const):
(WebCore::AudioSummingJunction::addOutput):
(WebCore::AudioSummingJunction::removeOutput):
(WebCore::AudioSummingJunction::updateRenderingState):
(WebCore::AudioSummingJunction::maximumNumberOfChannels const):
(WebCore::AudioSummingJunction::didDisableOutput):
(WebCore::AudioSummingJunction::didEnableOutput):
(WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutput::RenderingOutput):
(WebCore::WebCore::AudioSummingJunction::RenderingOutputCollection::remove):
(WebCore::WebCore::AudioSummingJunction::RenderingOutputCollection::setEnabled):
(WebCore::WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutputCollection):

  • Modules/webaudio/AudioSummingJunction.h:

(WebCore::AudioSummingJunction::RenderingOutputCollection::isEmpty const):
(WebCore::AudioSummingJunction::RenderingOutputCollection::size const):
(WebCore::AudioSummingJunction::RenderingOutputCollection::clear):
(WebCore::AudioSummingJunction::RenderingOutputCollection::append):
(WebCore::AudioSummingJunction::RenderingOutputCollection::ConstIterator::ConstIterator):
(WebCore::AudioSummingJunction::RenderingOutputCollection::ConstIterator::operator* const):
(WebCore::AudioSummingJunction::RenderingOutputCollection::ConstIterator::operator!= const):
(WebCore::AudioSummingJunction::RenderingOutputCollection::ConstIterator::operator++):
(WebCore::AudioSummingJunction::RenderingOutputCollection::begin const):
(WebCore::AudioSummingJunction::RenderingOutputCollection::end const):
(WebCore::AudioSummingJunction::renderingOutputs const):
(WebCore::AudioSummingJunction::isConnected const):

  • Modules/webaudio/WebKitAudioPannerNode.cpp:

(WebCore::WebKitAudioPannerNode::notifyAudioSourcesConnectedToNode):

11:47 AM Changeset in webkit [274766] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Add an early return in UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList
https://bugs.webkit.org/show_bug.cgi?id=223571

Reviewed by Eric Carlson.

Update code to early return as soon as possible.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList):

11:46 AM Changeset in webkit [274765] by Russell Epstein
  • 1 copy in tags/Safari-610.4.3.0.5

Tag Safari-610.4.3.0.5.

11:45 AM Changeset in webkit [274764] by Darin Adler
  • 27 edits
    1 delete in trunk

[Cocoa] Make it possible to release a WKWebView on a non-main thread without a crash due to WKScriptMessage race
https://bugs.webkit.org/show_bug.cgi?id=222336

Reviewed by Chris Dumez.

Source/JavaScriptCore:

  • API/ObjcRuntimeExtras.h: Removed declarations of objc_initWeak and objc_destroyWeak, since

these are already in <wtf/spi/cocoa/objcSPI.h>.

Source/WebKit:

  • Platform/spi/Cocoa/objcSPI.h: Removed this unused file.
  • UIProcess/API/C/mac/WKPagePrivateMac.mm:

(WKPageGetWebView): Use WKPageProxy::cocoaView instead of fromWebPageProxy.

  • UIProcess/API/Cocoa/WKDownload.mm:

(-[WKDownload webView]): Ditto.

  • UIProcess/API/Cocoa/WKFrameInfo.mm:

(-[WKFrameInfo webView]): Ditto.

  • UIProcess/API/Cocoa/WKUserContentController.mm:

(ScriptMessageHandlerDelegate::didPostMessage): Use WKPageProxy::cocoaView
instead of fromWebPageProxy and add null checks.
(ScriptMessageHandlerDelegate::didPostMessageWithAsyncReply): Ditto.

  • UIProcess/API/Cocoa/WKWebView.mm:

(pageToViewMap): Deleted.
(fromWebPageProxy): Deleted.
(-[WKWebView _initializeWithConfiguration:]): Use WKPageProxy::setCocoaView
instead of adding the page/view pair to a map.
(-[WKWebView dealloc]): Removed code that removed the page/view pair from the map.

  • UIProcess/API/Cocoa/WKWebViewInternal.h: Removed fromWebPageProxy.
  • UIProcess/API/Cocoa/_WKDownload.mm:

(-[_WKDownload originatingWebView]): Use WKPageProxy::cocoaView instead of fromWebPageProxy.

  • UIProcess/API/Cocoa/_WKFrameTreeNode.mm:

(-[_WKFrameTreeNode webView]): Ditto.

  • UIProcess/API/Cocoa/_WKInspector.mm:

(-[_WKInspector webView]): Ditto.

  • UIProcess/API/Cocoa/_WKInspectorTesting.mm:

(-[_WKInspector inspectorWebView]): Ditto.

  • UIProcess/Cocoa/AutomationSessionClient.mm:

(WebKit::AutomationSessionClient::requestSwitchToPage): Use WKPageProxy::cocoaView
instead of fromWebPageProxy and add a null check.
(WebKit::AutomationSessionClient::requestHideWindowOfPage): Ditto.
(WebKit::AutomationSessionClient::requestRestoreWindowOfPage): Ditto.
(WebKit::AutomationSessionClient::requestMaximizeWindowOfPage): Ditto.
(WebKit::AutomationSessionClient::isShowingJavaScriptDialogOnPage): Ditto.
(WebKit::AutomationSessionClient::dismissCurrentJavaScriptDialogOnPage): Ditto.
(WebKit::AutomationSessionClient::acceptCurrentJavaScriptDialogOnPage): Ditto.
(WebKit::AutomationSessionClient::messageOfCurrentJavaScriptDialogOnPage): Ditto.
(WebKit::AutomationSessionClient::setUserInputForCurrentJavaScriptPromptOnPage): Ditto.
(WebKit::AutomationSessionClient::typeOfCurrentJavaScriptDialogOnPage): Ditto.
(WebKit::AutomationSessionClient::currentPresentationOfPage): Ditto.

  • UIProcess/Cocoa/MediaPermissionUtilities.mm:

(WebKit::alertForPermission): Use WKPageProxy::cocoaView instead of fromWebPageProxy.

  • UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm:

(WebKit::PopUpSOAuthorizationSession::abortInternal): Added a null check since
initSecretWebView is no longer guaranteed to allocate m_secretWebView in the case
where the WKWebView is nil.
(WebKit::PopUpSOAuthorizationSession::completeInternal): Ditto.
(WebKit::PopUpSOAuthorizationSession::initSecretWebView): Use WKPageProxy::cocoaView
instead of fromWebPageProxy and added a null check.

  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:

(WebKit::SOAuthorizationSession::continueStartAfterDecidePolicy): Use WKPageProxy::cocoaView
instead of fromWebPageProxy.

  • UIProcess/Cocoa/WebURLSchemeHandlerCocoa.mm:

(WebKit::WebURLSchemeHandlerCocoa::platformStartTask): Use WKPageProxy::cocoaView
instead of fromWebPageProxy and added a null check.
(WebKit::WebURLSchemeHandlerCocoa::platformStopTask): Ditto. Also call the
new suppressTaskStoppedExceptions if we are unable to call the delegate method due to
the WKWebView already being nil.

  • UIProcess/PDF/WKPDFHUDView.mm:

(-[WKPDFHUDView hitTest:]): Use WKPageProxy::cocoaView instead of fromWebPageProxy.

  • UIProcess/WebURLSchemeTask.cpp:

(WebKit::WebURLSchemeTask::didPerformRedirection): Don't raise the "task stopped"
exception if it has been explicitly suppressed.
(WebKit::WebURLSchemeTask::didReceiveResponse): Ditto.
(WebKit::WebURLSchemeTask::didReceiveData): Ditto.
(WebKit::WebURLSchemeTask::didComplete): Ditto.

  • UIProcess/WebURLSchemeTask.h: Added a suppressTaskStoppedExceptions function,

which we use to prevent exceptions in the case where the WKWebView was deallocated.
Since we were not able to call the delegate method in that case, the caller can't
be expected to refrain from calling methods. Eventually, clients of WKWebView could avoid this
by calling the _close method instead of relying for deallocation to do web view teardown,
but we need to promote that from SPI to API.

  • UIProcess/WebPageProxy.h: Tweaked forward declarations a bit, and added one for WKWebView.

Marked the class final and use final instead of override. Added Cocoa-only cocoaView and
setCocoaView function members, and m_cocoaView data member. Also added inline implementations
but only compile them when included from an Objective-C source file.

  • WebKit.xcodeproj/project.pbxproj: Removed objcSPI.h.

Source/WTF:

  • wtf/spi/cocoa/objcSPI.h: Removed unnecessary #if so functions are correctly compiled for

non-Objective-C source files. Added include of <objc/objc.h> so that "id" is defined.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:

Use _close instead of WKWebView deallocation to trigger a call to stopURLSchemeTask,
since such delegate methods will intentionally no longer be delivered if triggered by deallocation.

11:45 AM Changeset in webkit [274763] by Russell Epstein
  • 12 edits in branches/safari-610.4.3.0-branch/Source/WebCore

Apply patch. rdar://problem/75634407

11:41 AM Changeset in webkit [274762] by Russell Epstein
  • 1 copy in tags/Safari-607.3.11

Tag Safari-607.3.11.

11:39 AM Changeset in webkit [274761] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

REGRESSION (r274711): [iOS 14 Wk2] webgl/conformance/extensions/khr-parallel-shader-compile.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=223586

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
11:38 AM Changeset in webkit [274760] by Russell Epstein
  • 9 edits in branches/safari-607-branch/Source/WebCore

Apply patch. rdar://problem/75634407

11:34 AM Changeset in webkit [274759] by Russell Epstein
  • 7 edits in branches/safari-607-branch/Source

Versioning WebKit-7607.3.11

11:29 AM Changeset in webkit [274758] by youenn@apple.com
  • 45 edits
    7 copies
    9 adds in trunk

Implement RTCDataChannel transfer out of process
https://bugs.webkit.org/show_bug.cgi?id=223443

Reviewed by Eric Carlson.

Source/WebCore:

Add support for serialization/deserialization of RTCDataChannel information so that it can be MessagePort transfered or transfered to out-of-process contexts like Window or Service Worker.
Add infrastructure for remote sources (that allows to send data or close data channels) and remote handlers which receive messages from out-of-process data channels.

Covered by API tests.

  • Modules/mediastream/DetachedRTCDataChannel.h: Added.

(WebCore::DetachedRTCDataChannel::DetachedRTCDataChannel):
(WebCore::DetachedRTCDataChannel::memoryCost const):
(WebCore::DetachedRTCDataChannel::encode const):
(WebCore::DetachedRTCDataChannel::decode):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::RTCDataChannel):
(WebCore::rtcDataChannelLocalMap):
(WebCore::RTCDataChannel::handlerFromIdentifier):
(WebCore::RTCDataChannel::create):

  • Modules/mediastream/RTCDataChannel.h:
  • Modules/mediastream/RTCDataChannelRemoteHandler.cpp: Added.

(WebCore::RTCDataChannelRemoteHandler::create):
(WebCore::RTCDataChannelRemoteHandler::RTCDataChannelRemoteHandler):
(WebCore::RTCDataChannelRemoteHandler::~RTCDataChannelRemoteHandler):
(WebCore::RTCDataChannelRemoteHandler::didChangeReadyState):
(WebCore::RTCDataChannelRemoteHandler::didReceiveStringData):
(WebCore::RTCDataChannelRemoteHandler::didReceiveRawData):
(WebCore::RTCDataChannelRemoteHandler::didDetectError):
(WebCore::RTCDataChannelRemoteHandler::bufferedAmountIsDecreasing):
(WebCore::RTCDataChannelRemoteHandler::readyToSend):
(WebCore::RTCDataChannelRemoteHandler::setClient):
(WebCore::RTCDataChannelRemoteHandler::sendStringData):
(WebCore::RTCDataChannelRemoteHandler::sendRawData):
(WebCore::RTCDataChannelRemoteHandler::close):

  • Modules/mediastream/RTCDataChannelRemoteHandler.h: Added.
  • Modules/mediastream/RTCDataChannelRemoteSource.cpp: Copied from Source/WebCore/platform/mediastream/RTCDataChannelHandler.h.

(WebCore::RTCDataChannelRemoteSource::RTCDataChannelRemoteSource):
(WebCore::RTCDataChannelRemoteSource::~RTCDataChannelRemoteSource):

  • Modules/mediastream/RTCDataChannelRemoteSource.h: Added.

(WebCore::RTCDataChannelRemoteSource::create):
(WebCore::RTCDataChannelRemoteSource::sendStringData):
(WebCore::RTCDataChannelRemoteSource::sendRawData):
(WebCore::RTCDataChannelRemoteSource::close):

  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:

(WebCore::LibWebRTCDataChannelHandler::postTask):

  • Modules/webaudio/AudioWorkletMessagingProxy.cpp:

(WebCore::AudioWorkletMessagingProxy::createRTCDataChannelRemoteHandlerConnection):

  • Modules/webaudio/AudioWorkletMessagingProxy.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::SerializedScriptValue):

  • bindings/js/SerializedScriptValue.h:

(WebCore::SerializedScriptValue::encode const):
(WebCore::SerializedScriptValue::decode):

  • dom/Document.cpp:

(WebCore::Document::createRTCDataChannelRemoteHandlerConnection):

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

(WebCore::ScriptExecutionContext::createRTCDataChannelRemoteHandlerConnection):

  • platform/ScriptExecutionContextIdentifier.h: Copied from Source/WebCore/platform/mediastream/RTCDataChannelState.h.
  • platform/mediastream/RTCDataChannelHandler.h:

(WebCore::RTCDataChannelInit::encode const):
(WebCore::RTCDataChannelInit::decode):

  • platform/mediastream/RTCDataChannelIdentifier.h: Copied from Source/WebCore/platform/mediastream/RTCDataChannelHandler.h.

(WebCore::RTCDataChannelIdentifier::encode const):
(WebCore::RTCDataChannelIdentifier::decode):

  • platform/mediastream/RTCDataChannelRemoteHandlerConnection.h: Copied from Source/WebCore/platform/mediastream/RTCDataChannelHandler.h.
  • platform/mediastream/RTCDataChannelRemoteSourceConnection.h: Copied from Source/WebCore/platform/mediastream/RTCDataChannelHandler.h.
  • platform/mediastream/RTCDataChannelState.h:
  • platform/mediastream/RTCPriorityType.h:
  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::createRTCDataChannelRemoteHandlerConnection):

  • workers/WorkerGlobalScope.h:
  • workers/WorkerLoaderProxy.h:
  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::createRTCDataChannelRemoteHandlerConnection):

  • workers/WorkerMessagingProxy.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::createRTCDataChannelRemoteHandlerConnection):

  • workers/service/context/ServiceWorkerThreadProxy.h:

Source/WebKit:

Add support for connecting remote sources to remote data channels.
This is done by connection detached data channels to remote source that will send messages to network process.
Network process then sends to the process in which was reattached the data channel.
Pairing of data channels is done in main thread through connectToSource message.
The data then flows in background threads, network process being the proxy between web processes.
RTCDataChannelRemoteManagerProxy is the forwarding entity in NetworkProcess.
RTCDataChannelRemoteManager is the entity in WebProcess doing the messaging from and to data channels.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::~NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::connectToRTCDataChannelRemoteSource):
(WebKit::NetworkConnectionToWebProcess::registerToRTCDataChannelProxy):
(WebKit::NetworkConnectionToWebProcess::unregisterToRTCDataChannelProxy):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::rtcDataChannelProxy):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/webrtc/RTCDataChannelRemoteManagerProxy.cpp: Added.

(WebKit::RTCDataChannelRemoteManagerProxy::RTCDataChannelRemoteManagerProxy):
(WebKit::RTCDataChannelRemoteManagerProxy::registerConnectionToWebProcess):
(WebKit::RTCDataChannelRemoteManagerProxy::unregisterConnectionToWebProcess):
(WebKit::RTCDataChannelRemoteManagerProxy::sendData):
(WebKit::RTCDataChannelRemoteManagerProxy::close):
(WebKit::RTCDataChannelRemoteManagerProxy::changeReadyState):
(WebKit::RTCDataChannelRemoteManagerProxy::receiveData):
(WebKit::RTCDataChannelRemoteManagerProxy::detectError):
(WebKit::RTCDataChannelRemoteManagerProxy::bufferedAmountIsDecreasing):

  • NetworkProcess/webrtc/RTCDataChannelRemoteManagerProxy.h: Added.
  • NetworkProcess/webrtc/RTCDataChannelRemoteManagerProxy.messages.in: Added.
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::connectToRTCDataChannelRemoteSource):

  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Network/NetworkProcessConnection.messages.in:
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::createRTCDataChannelRemoteHandlerConnection):

  • WebProcess/Network/webrtc/LibWebRTCProvider.h:
  • WebProcess/Network/webrtc/RTCDataChannelRemoteManager.cpp: Added.

(WebKit::RTCDataChannelRemoteManager::sharedManager):
(WebKit::RTCDataChannelRemoteManager::RTCDataChannelRemoteManager):
(WebKit::RTCDataChannelRemoteManager::setConnection):
(WebKit::RTCDataChannelRemoteManager::connectToRemoteSource):
(WebKit::RTCDataChannelRemoteManager::remoteHandlerConnection):
(WebKit::RTCDataChannelRemoteManager::remoteSourceConnection):
(WebKit::RTCDataChannelRemoteManager::postTaskToHandler):
(WebKit::RTCDataChannelRemoteManager::sourceFromIdentifier):
(WebKit::RTCDataChannelRemoteManager::sendData):
(WebKit::RTCDataChannelRemoteManager::close):
(WebKit::RTCDataChannelRemoteManager::changeReadyState):
(WebKit::RTCDataChannelRemoteManager::receiveData):
(WebKit::RTCDataChannelRemoteManager::detectError):
(WebKit::RTCDataChannelRemoteManager::bufferedAmountIsDecreasing):
(WebKit::RTCDataChannelRemoteManager::RemoteHandlerConnection::create):
(WebKit::RTCDataChannelRemoteManager::RemoteHandlerConnection::RemoteHandlerConnection):
(WebKit::RTCDataChannelRemoteManager::RemoteHandlerConnection::connectToSource):
(WebKit::RTCDataChannelRemoteManager::RemoteHandlerConnection::sendData):
(WebKit::RTCDataChannelRemoteManager::RemoteHandlerConnection::close):
(WebKit::RTCDataChannelRemoteManager::RemoteSourceConnection::create):
(WebKit::RTCDataChannelRemoteManager::RemoteSourceConnection::RemoteSourceConnection):
(WebKit::RTCDataChannelRemoteManager::RemoteSourceConnection::didChangeReadyState):
(WebKit::RTCDataChannelRemoteManager::RemoteSourceConnection::didReceiveStringData):
(WebKit::RTCDataChannelRemoteManager::RemoteSourceConnection::didReceiveRawData):
(WebKit::RTCDataChannelRemoteManager::RemoteSourceConnection::didDetectError):
(WebKit::RTCDataChannelRemoteManager::RemoteSourceConnection::bufferedAmountIsDecreasing):

  • WebProcess/Network/webrtc/RTCDataChannelRemoteManager.h: Added.
  • WebProcess/Network/webrtc/RTCDataChannelRemoteManager.messages.in: Copied from Source/WebKit/WebProcess/Network/NetworkProcessConnection.messages.in.
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
11:25 AM Changeset in webkit [274757] by Russell Epstein
  • 8 edits in branches/safari-610.4.3.0-branch/Source

Versioning.

WebKit-7610.4.3.0.5

11:25 AM Changeset in webkit [274756] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix a mistake in r274725 spotted by Darin.

I accidentally removed the case statement for CSSPropertyWebkitTextSizeAdjust.

  • css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):

11:25 AM Changeset in webkit [274755] by Simon Fraser
  • 6 edits
    2 moves in trunk/Source/WebCore

Rename WebCore's DisplayRefreshMonitorMac to indicate that it's only used in legacy WebKit
https://bugs.webkit.org/show_bug.cgi?id=223543

Reviewed by Tim Horton.

DisplayRefreshMonitorMac in WebCore is only used for WebKitLegacy; WebProcess doesn't have
WindowServer access so is unable to create CVDisplayLinkRefs.

Rename it to indicate this, and reduce confusion with DisplayRefreshMonitorMac in WebKit2.
Also add an assertion that LegacyDisplayRefreshMonitorMac is not being created in the
WebProcess.

For EmptyPageClients (like the Page used by createPageForSanitizingWebContent()) we need
a DisplayRefreshMonitor implementation that doesn't try to CVDisplayLinkRefs in the
Web Process, so add an EmptyDisplayRefreshMonitor that never fires.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/EmptyClients.cpp:

(WebCore::EmptyDisplayRefreshMonitor::create):
(WebCore::EmptyDisplayRefreshMonitor::EmptyDisplayRefreshMonitor):
(WebCore::EmptyChromeClient::createDisplayRefreshMonitor const):

  • loader/EmptyClients.h:
  • platform/graphics/DisplayRefreshMonitor.cpp:

(WebCore::DisplayRefreshMonitor::createDefaultDisplayRefreshMonitor):

  • platform/graphics/mac/LegacyDisplayRefreshMonitorMac.cpp: Renamed from Source/WebCore/platform/graphics/mac/DisplayRefreshMonitorMac.cpp.

(WebCore::LegacyDisplayRefreshMonitorMac::LegacyDisplayRefreshMonitorMac):
(WebCore::LegacyDisplayRefreshMonitorMac::~LegacyDisplayRefreshMonitorMac):
(WebCore::LegacyDisplayRefreshMonitorMac::stop):
(WebCore::displayLinkCallback):
(WebCore::LegacyDisplayRefreshMonitorMac::requestRefreshCallback):
(WebCore::LegacyDisplayRefreshMonitorMac::displayLinkFired):

  • platform/graphics/mac/LegacyDisplayRefreshMonitorMac.h: Renamed from Source/WebCore/platform/graphics/mac/DisplayRefreshMonitorMac.h.

(WebCore::LegacyDisplayRefreshMonitorMac::create):

11:15 AM Changeset in webkit [274754] by youenn@apple.com
  • 2 edits in trunk/Tools

Remove some spurious logging lines appearing in WebRTC tests
https://bugs.webkit.org/show_bug.cgi?id=223502

Reviewed by Alex Christensen.

  • Scripts/webkitpy/port/mac.py:

(MacPort.logging_patterns_to_strip):

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

Add Jean-Yves Avenard to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=223555

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-22
Reviewed by Eric Carlson.

  • Scripts/webkitpy/common/config/contributors.json:
11:10 AM Changeset in webkit [274752] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[GPU Process] Style: Remove unnecessary { }s from case statements in DisplayListItemBuffer.cpp
https://bugs.webkit.org/show_bug.cgi?id=223550

Reviewed by Wenson Hsieh.

They're unnecessary, and none of the other case statements in displaylists/ have them.
Deleting them allows more of the program to fit on the screen at a time.

No new tests because there is no behavior change.

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

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

11:10 AM Changeset in webkit [274751] by Adrian Perez de Castro
  • 2 edits in trunk

[CMake] Wrong variable used in FindFontconfig used to pick version from pkg-config
https://bugs.webkit.org/show_bug.cgi?id=223557

Reviewed by Michael Catanzaro.

  • Source/cmake/FindFontconfig.cmake: Fix to use ${PC_FONTCONFIG_VERSION}.
8:52 AM WebKitGTK/2.32.x edited by Philippe Normand
(diff)
Note: See TracTimeline for information about the timeline view.