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

Timeline



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:
Note: See TracTimeline for information about the timeline view.