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

Timeline



Sep 22, 2020:

9:47 PM Changeset in webkit [267464] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: Change InspectorAnimationAgent->startTracking to not error on repeated calls
https://bugs.webkit.org/show_bug.cgi?id=216385

Patch by Patrick Angle <Patrick Angle> on 2020-09-22
Reviewed by Devin Rousso.

InpsectorAnimationAgent now mirrors the behavior of other timeline agents by no longer returning an error on a
repeated invocation of startTracking.

  • inspector/agents/InspectorAnimationAgent.cpp:

(WebCore::InspectorAnimationAgent::startTracking):

9:39 PM Changeset in webkit [267463] by Antti Koivisto
  • 7 edits
    1 copy
    1 add in trunk/Source/WebCore

[LFC][Integration] Basic pagination support
https://bugs.webkit.org/show_bug.cgi?id=215451
<rdar://problem/67482721>

Reviewed by Zalan Bujtas.

Port the Simple Line Layout pagination code to LFC integration layer.
Pagination is the last remaining use of SLL so this patch turns it into dead code.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/displaytree/DisplayInlineContent.h:

(WebCore::Display::InlineContent::create):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::canUseFor):

This now the same as SLL test, covering all cases.

(WebCore::LayoutIntegration::LineLayout::contentLogicalHeight const):
(WebCore::LayoutIntegration::LineLayout::adjustForPagination):
(WebCore::LayoutIntegration::LineLayout::ensureDisplayInlineContent):

This is fairly direct copy of the SLL code. It is not future proof or otherwise great but it serves the job for now.

  • layout/integration/LayoutIntegrationLineLayout.h:

(WebCore::LayoutIntegration::LineLayout::isPaginated const):

  • layout/integration/LayoutIntegrationPagination.cpp: Added.

(WebCore::LayoutIntegration::computeLineTopAndBottomWithOverflow):
(WebCore::LayoutIntegration::computeLineBreakIndex):
(WebCore::LayoutIntegration::computeOffsetAfterLineBreak):
(WebCore::LayoutIntegration::setPageBreakForLine):
(WebCore::LayoutIntegration::updateMinimumPageHeight):
(WebCore::LayoutIntegration::makeAdjustedContent):
(WebCore::LayoutIntegration::adjustLinePositionsForPagination):

  • layout/integration/LayoutIntegrationPagination.h: Copied from Source/WebCore/layout/displaytree/DisplayInlineContent.h.
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutLFCLines):
(WebCore::RenderBlockFlow::ensureLineBoxes):

9:08 PM Changeset in webkit [267462] by Lauro Moura
  • 3 edits in trunk/LayoutTests

[GLIB] Gardening some tests

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
8:50 PM Changeset in webkit [267461] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][Integration] Move RuntimeEnabledFeatures::layoutFormattingContextIntegrationEnabled() check out from LineBuilder::constraintsForLine
https://bugs.webkit.org/show_bug.cgi?id=216862

Reviewed by Simon Fraser.

  • layout/LayoutState.cpp:

(WebCore::Layout::LayoutState::setIsIntegratedRootBoxFirstChild):

  • layout/LayoutState.h:

(WebCore::Layout::LayoutState::isIntegratedRootBoxFirstChild const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::constraintsForLine):

8:48 PM Changeset in webkit [267460] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Floats] Remove the redundant RuntimeEnabledFeatures::layoutFormattingContextIntegrationEnabled() check from FloatingState::append
https://bugs.webkit.org/show_bug.cgi?id=216866

Reviewed by Simon Fraser.

The no-layout-box-for-the-FloatItem codepath is reserved for the IFC integration. This is temporary anyway.

  • layout/floats/FloatingState.cpp:

(WebCore::Layout::FloatingState::append):

8:41 PM Changeset in webkit [267459] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

[GPU Process] fast/canvas/canvas-blend-image.html and fast/canvas/canvas-blend-solid.html fail on macOS
https://bugs.webkit.org/show_bug.cgi?id=216860

Reviewed by Said Abou-Hallawa.

These two tests disable accelerated drawing for canvas elements; when using the GPU process, this causes us to
use ImageBufferShareableBitmapBackend as the back-end for the image buffer backing the canvas element.

On both macOS and iOS, the image buffer is backed by BGRA image data. However, we override
backendColorFormat() and return ColorFormat::BGRA only for PLATFORM(IOS_FAMILY), causing putImageData
and getImageData to result in flipped red and blue channels on macOS, which subsequently causes these two
layout tests to fail.

Fix these tests by removing the PLATFORM(IOS_FAMILY) guard.

  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
8:38 PM Changeset in webkit [267458] by Keith Rollin
  • 6 edits in trunk

Unify debug and release target aliases
https://bugs.webkit.org/show_bug.cgi?id=216863
<rdar://problem/69407746>

Reviewed by Tim Horton.

All Makefiles have "debug", "d", "release", and "r" for build
targets. Others -- but not all -- also include "dev", "develop",
"development", "dep", "deploy", and "deployment". Because of this
inconsistency, trying to use those additional targets didn't work. It
looks like all Makefiles used to support all of those targets, but
some got dropped along the way. For instance, the top-level Makefile
and Source/Makefile dropped them in 2013 as part of Bug 107863. And it
looks like WebKitLibraries/Makefile never had them. Given that those
additional targets don't work, it seems like no one uses them, so
let's remove them completely.

.:

  • Makefile.shared:

Source/ThirdParty:

  • Makefile:

Tools:

  • Makefile:
8:36 PM Changeset in webkit [267457] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

[GTK] REGRESSION(r267329): imported/blink/editing/undo/crash-redo-with-iframes.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=216778

Reviewed by Darin Adler.

Covered by existing tests.

  • editing/markup.cpp:

(WebCore::serializePreservingVisualAppearanceInternal): Return early
also for "negative" ranges to avoid hitting an assertion inside
serializeNodes, as suggested by Darin.

7:38 PM Changeset in webkit [267456] by Karl Rackler
  • 2 edits in branches/safari-610-branch/LayoutTests

REGRESSION: [ iOS wk2 ] http/wpt/cache-storage/quota-third-party.https.html is a flaky failure
rdar://69407691

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
7:37 PM Changeset in webkit [267455] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r267421.
https://bugs.webkit.org/show_bug.cgi?id=216864

Broke a test on macOS

Reverted changeset:

"[macOS] Start collecting telemetry from a set of XPC
services"
https://bugs.webkit.org/show_bug.cgi?id=216797
https://trac.webkit.org/changeset/267421

6:57 PM Changeset in webkit [267454] by ysuzuki@apple.com
  • 4 edits in trunk

[JSC] Enable Intl.DateTimeFormat dayPeriod
https://bugs.webkit.org/show_bug.cgi?id=216845

Reviewed by Mark Lam.

JSTests:

  • stress/intl-datetimeformat.js:

Source/JavaScriptCore:

Since we already have consensus, let's enable it.
For now, we keep this flag since it is possible that something
happens before the change is integrated into the spec.

  • runtime/OptionsList.h:
6:49 PM Changeset in webkit [267453] by Chris Dumez
  • 10 edits in trunk

Slightly improve AudioBufferSourceNode resampling
https://bugs.webkit.org/show_bug.cgi?id=216859

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/buffer-resampling-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching-expected.txt:

Source/WebCore:

Slightly improve AudioBufferSourceNode resampling. Use simple linear extrapolation
to resample the data when we reach the end of the buffer. Previously, the last
sample would just be repeated enough times.

This is a merge of the following Blink change by Raymond Toy:

No new tests, rebaselined existing tests.

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::renderFromBuffer):

LayoutTests:

  • webaudio/AudioBufferSource/audiobuffersource-detune-modulation-expected.txt:
  • webaudio/AudioBufferSource/audiobuffersource-playbackrate-modulation-expected.txt:
  • webaudio/gain-expected.wav:

Rebaseline tests that have slightly different output.

5:44 PM Changeset in webkit [267452] by Alan Coon
  • 1 copy in tags/Safari-610.2.6.0.1

Tag Safari-610.2.6.0.1.

5:43 PM Changeset in webkit [267451] by Russell Epstein
  • 1 copy in tags/Safari-610.2.6.1.4

Tag Safari-610.2.6.1.4.

5:32 PM Changeset in webkit [267450] by Karl Rackler
  • 2 edits in branches/safari-610-branch/LayoutTests

REGRESSION: [ iOS wk2 ] fast/text/international/complex-character-based-fallback.html is a constant failure
rdar://69401173

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
5:20 PM Changeset in webkit [267449] by weinig@apple.com
  • 21 edits
    2 copies
    54 moves in trunk/Source/WebCore

[WebIDL] Switch to new file name convention for partial interfaces
https://bugs.webkit.org/show_bug.cgi?id=216843

Reviewed by Tim Horton.

Updates all 'partial interface' IDLs to use the new naming convention adopted
in https://webkit.org/b/216729, where they are name as the construction of the
base interface '+' the supplementing spec. So, additions to Document from the
Web Animations spec becomes Document+WebAnimations.idl.

  • accessibility/AccessibilityRenderObject.cpp:
  • bindings/js/JSDocumentCustom.cpp:
  • bindings/js/JSXMLDocumentCustom.cpp:
  • html/HTMLFrameOwnerElement.h:
  • loader/FrameLoader.cpp:
  • page/FrameView.cpp:
  • svg/DocumentSVG.cpp: Added.
  • svg/DocumentSVG.h: Added.
  • svg/SVGDocument.cpp:
  • svg/SVGDocument.h:
  • svg/SVGTRefElement.cpp:
  • svg/graphics/SVGImage.cpp:
  • style/StyleAdjuster.cpp:
  • svg/Document+SVG.idl: Added.
  • svg/SVGDocument.idl: Removed.

Fix weirdness around SVGDocument. Previously, additions to the Document
interface were in a class that was also a document subclass. Now the two
are split, so the additions are in DocumentSVG.h/cpp, matching convention,
and the subclass remains SVGDocument.h/cpp, also matching convention.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Update for renames.

  • Modules/async-clipboard/Navigator+Clipboard.idl: Added.
  • Modules/async-clipboard/NavigatorClipboard.idl: Removed.
  • Modules/beacon/Navigator+Beacon.idl: Added.
  • Modules/beacon/NavigatorBeacon.idl: Removed.
  • Modules/cache/DOMWindow+Caches.idl: Added.
  • Modules/cache/DOMWindowCaches.idl: Removed.
  • Modules/cache/WorkerGlobalScope+Caches.idl: Added.
  • Modules/cache/WorkerGlobalScopeCaches.idl: Removed.
  • Modules/credentialmanagement/Navigator+Credentials.idl: Added.
  • Modules/credentialmanagement/NavigatorCredentials.idl: Removed.
  • Modules/encryptedmedia/Navigator+EME.idl: Added.
  • Modules/encryptedmedia/NavigatorEME.idl: Removed.
  • Modules/entriesapi/HTMLInputElement+EntriesAPI.idl: Added.
  • Modules/entriesapi/HTMLInputElementEntriesAPI.idl: Removed.
  • Modules/fetch/WindowOrWorkerGlobalScope+Fetch.idl: Added.
  • Modules/fetch/WindowOrWorkerGlobalScopeFetch.idl: Removed.
  • Modules/gamepad/Navigator+Gamepad.idl: Added.
  • Modules/gamepad/NavigatorGamepad.idl: Removed.
  • Modules/geolocation/Navigator+Geolocation.idl: Added.
  • Modules/geolocation/NavigatorGeolocation.idl: Removed.
  • Modules/indexeddb/DOMWindow+IndexedDatabase.idl: Added.
  • Modules/indexeddb/DOMWindowIndexedDatabase.idl: Removed.
  • Modules/indexeddb/WorkerGlobalScope+IndexedDatabase.idl: Added.
  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl: Removed.
  • Modules/mediacapabilities/Navigator+MediaCapabilities.idl: Added.
  • Modules/mediacapabilities/NavigatorMediaCapabilities.idl: Removed.
  • Modules/mediasession/HTMLMediaElement+MediaSession.idl: Added.
  • Modules/mediasession/HTMLMediaElementMediaSession.idl: Removed.
  • Modules/mediasource/AudioTrack+MediaSource.idl: Added.
  • Modules/mediasource/AudioTrackMediaSource.idl: Removed.
  • Modules/mediasource/DOMURL+MediaSource.idl: Added.
  • Modules/mediasource/DOMURLMediaSource.idl: Removed.
  • Modules/mediasource/TextTrack+MediaSource.idl: Added.
  • Modules/mediasource/TextTrackMediaSource.idl: Removed.
  • Modules/mediasource/VideoTrack+MediaSource.idl: Added.
  • Modules/mediasource/VideoTrackMediaSource.idl: Removed.
  • Modules/mediastream/Navigator+MediaDevices.idl: Added.
  • Modules/mediastream/NavigatorMediaDevices.idl: Removed.
  • Modules/pictureinpicture/Document+PictureInPicture.idl: Added.
  • Modules/pictureinpicture/DocumentOrShadowRoot+PictureInPicture.idl: Added.
  • Modules/pictureinpicture/DocumentOrShadowRootPictureInPicture.idl: Removed.
  • Modules/pictureinpicture/DocumentPictureInPicture.idl: Removed.
  • Modules/pictureinpicture/HTMLVideoElement+PictureInPicture.idl: Added.
  • Modules/pictureinpicture/HTMLVideoElementPictureInPicture.idl: Removed.
  • Modules/quota/DOMWindow+Quota.idl: Added.
  • Modules/quota/DOMWindowQuota.idl: Removed.
  • Modules/quota/Navigator+StorageQuota.idl: Added.
  • Modules/quota/NavigatorStorageQuota.idl: Removed.
  • Modules/quota/WorkerNavigator+StorageQuota.idl: Added.
  • Modules/quota/WorkerNavigatorStorageQuota.idl: Removed.
  • Modules/remoteplayback/HTMLMediaElement+RemotePlayback.idl: Added.
  • Modules/remoteplayback/HTMLMediaElementRemotePlayback.idl: Removed.
  • Modules/speech/DOMWindow+SpeechSynthesis.idl: Added.
  • Modules/speech/DOMWindowSpeechSynthesis.idl: Removed.
  • Modules/webdatabase/DOMWindow+WebDatabase.idl: Added.
  • Modules/webdatabase/DOMWindowWebDatabase.idl: Removed.
  • Modules/webdriver/Navigator+WebDriver.idl: Added.
  • Modules/webdriver/NavigatorWebDriver.idl: Removed.
  • Modules/webgpu/Navigator+GPU.idl: Added.
  • Modules/webgpu/NavigatorGPU.idl: Removed.
  • Modules/webgpu/WorkerNavigator+GPU.idl: Added.
  • Modules/webgpu/WorkerNavigatorGPU.idl: Removed.
  • Modules/webxr/Navigator+WebXR.idl: Added.
  • Modules/webxr/NavigatorWebXR.idl: Removed.
  • animation/Document+WebAnimations.idl: Added.
  • animation/DocumentAnimations.idl: Removed.
  • animation/DocumentOrShadowRoot+WebAnimations.idl: Added.
  • animation/DocumentOrShadowRootAnimations.idl: Removed.
  • animation/GlobalEventHandlers+CSSAnimations.idl: Added.
  • animation/GlobalEventHandlers+CSSTransitions.idl: Added.
  • animation/GlobalEventHandlersCSSAnimations.idl: Removed.
  • animation/GlobalEventHandlersCSSTransitions.idl: Removed.
  • css/DOMCSSNamespace+CSSPainting.idl: Added.
  • css/DOMCSSNamespace+CSSPropertiesandValues.idl: Added.
  • css/DOMCSSPaintWorklet.idl: Removed.
  • css/DOMCSSRegisterCustomProperty.idl: Removed.
  • css/DocumentOrShadowRoot+CSSOM.idl: Added.
  • css/DocumentOrShadowRootStyleSheets.idl: Removed.
  • dom/Document+CSSOMView.idl: Added.
  • dom/Document+Fullscreen.idl: Added.
  • dom/Document+HTML.idl: Added.
  • dom/Document+HTMLObsolete.idl: Added.
  • dom/Document+PageVisibility.idl: Added.
  • dom/Document+PointerLock.idl: Added.
  • dom/Document+Selection.idl: Added.
  • dom/Document+StorageAccess.idl: Added.
  • dom/Document+Touch.idl: Added.
  • dom/Document+UndoMananger.idl: Added.
  • dom/DocumentFullscreen.idl: Removed.
  • dom/DocumentHTML.idl: Removed.
  • dom/DocumentHTMLObsolete.idl: Removed.
  • dom/DocumentOrShadowRoot+PointerLock.idl: Added.
  • dom/DocumentOrShadowRootPointerLock.idl: Removed.
  • dom/DocumentPageVisibility.idl: Removed.
  • dom/DocumentPointerLock.idl: Removed.
  • dom/DocumentScrolling.idl: Removed.
  • dom/DocumentSelection.idl: Removed.
  • dom/DocumentStorageAccess.idl: Removed.
  • dom/DocumentTouch.idl: Removed.
  • dom/DocumentUndoMananger.idl: Removed.
  • dom/Element+DOMParsing.idl: Added.
  • dom/ElementDOMParsing.idl: Removed.
  • dom/GlobalEventHandlers+PointerEvents.idl: Added.
  • dom/GlobalEventHandlersPointerEvents.idl: Removed.
  • page/Navigator+IsLoggedIn.idl: Added.
  • page/NavigatorIsLoggedIn.idl: Removed.

Rename IDLs.

5:11 PM Changeset in webkit [267448] by achristensen@apple.com
  • 2 edits in trunk/Tools

Make TLSVersion API tests more robust.
https://bugs.webkit.org/show_bug.cgi?id=216704

Like I did in r267278, the TLSVersion.ShouldAllowDeprecatedTLS API test was also asserting with TCPServer,
so use HTTPServer which gracefully handles a variable number of connection attempts.
The NetworkSession tests that use NSUserDefaults need to be split into a separate test for bug 216041,
so may as well do that here, too.

  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

(TestWebKitAPI::makeWebViewWith):
(TestWebKitAPI::TEST):

5:04 PM Changeset in webkit [267447] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Limit number of emails to send for flaky and pre-existing JSC test failures
https://bugs.webkit.org/show_bug.cgi?id=216857

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeJSCTestsResults.start):

4:43 PM Changeset in webkit [267446] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Used geometry for inline level boxes should be in the coordinate system of the formatting context root
https://bugs.webkit.org/show_bug.cgi?id=216854

Reviewed by Simon Fraser.

Convert inline level box geometry from relative to the line box to relative to the formatting context root.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

4:15 PM Changeset in webkit [267445] by Ryan Haddad
  • 2 edits in branches/safari-610-branch/LayoutTests

Cherry-pick r267442. rdar://problem/66842535

[ macOS ] webgl/2.0.0/conformance/textures/misc/texture-upload-size.html is a flaky failure
rdar://66842535

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:

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

3:54 PM Changeset in webkit [267444] by Chris Dumez
  • 5 edits in trunk

Fix BiquadFilterNode's lowpass & highpass filters
https://bugs.webkit.org/show_bug.cgi?id=216852

Reviewed by Eric Carlson.

Source/WebCore:

Fix BiquadFilterNode's lowpass & highpass filters. They incorrectly clamp the
resonance to make it positive.

Formulas for the filters are specified here:

No new tests, rebaselined existing tests.

  • platform/audio/Biquad.cpp:

(WebCore::pow10):
(WebCore::Biquad::setLowpassParams):
(WebCore::Biquad::setHighpassParams):

LayoutTests:

Rebaseline tests that are now passing.

  • webaudio/BiquadFilter/tail-time-highpass-expected.txt:
  • webaudio/BiquadFilter/tail-time-lowpass-expected.txt:
3:52 PM Changeset in webkit [267443] by Chris Dumez
  • 11 edits in trunk

Merge AudioBufferSourceNode loop fixes from Blink
https://bugs.webkit.org/show_bug.cgi?id=216849

Reviewed by Eric Carlson.

Source/WebCore:

Merge AudioBufferSourceNode loop fixes from Blink, the following one in particular:

This allows us to pass all the checks in:
webaudio/AudioBufferSource/audiobuffersource-loop-comprehensive.html.

No new tests, rebaselined existing test.

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::renderFromBuffer):
(WebCore::AudioBufferSourceNode::adjustGrainParameters):
Merge loop fixes from Blink.

  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::stopLater):
Stop throwing when m_endTime is already set. Our behavior did not match
Chrome and Firefox here. This was causing some existing tests to start
failing now that providing a grain duration when calling start() would
set m_endTime if loop() returns true.

LayoutTests:

  • webaudio/AudioBufferSource/audiobuffersource-loop-comprehensive-expected.txt:

Rebaseline test that is now passing.

  • webaudio/Oscillator/oscillator-basic-expected.txt:
  • webaudio/dom-exceptions-expected.txt:

Rebaseline tests because the exception message was improved.

  • webaudio/audiobuffersource-exception-expected.txt:
  • webaudio/audiobuffersource-exception.html:

Stop expecting an exception to be thrown when AudioBufferSourceNode.stop() gets called
more than once. I have verified that Chrome and Firefox do not throw in this case.

3:40 PM Changeset in webkit [267442] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS ] webgl/2.0.0/conformance/textures/misc/texture-upload-size.html is a flaky failure
rdar://66842535

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:26 PM Changeset in webkit [267441] by Keith Rollin
  • 2 edits in trunk

Refactor build rules in Makefiles and Makefile.shared
https://bugs.webkit.org/show_bug.cgi?id=216806
<rdar://problem/69332316>

Reviewed by David Kilzer.

Build fix: Previous change for this bug broke the ability to perform a
build with just make, due to that code path invoking
set-webkit-configuration with no parameters, which causes that
script to error-out.

  • Makefile.shared:
3:23 PM Changeset in webkit [267440] by commit-queue@webkit.org
  • 4 edits in trunk

Coerce computed property before adding to |excludedList|
https://bugs.webkit.org/show_bug.cgi?id=216437

Patch by HyeockJin Kim <kherootz@gmail.com> on 2020-09-22
Reviewed by Yusuke Suzuki.

JSTests:

  • stress/object-rest-deconstruct.js:

(get 3):

Source/JavaScriptCore:

  • bytecompiler/NodesCodegen.cpp:

(JSC::ObjectPatternNode::bindValue const):

3:21 PM Changeset in webkit [267439] by sihui_liu@apple.com
  • 4 edits in trunk

REGRESSION(r266075): WebContent process crashes at TextManipulationController::getPath
https://bugs.webkit.org/show_bug.cgi?id=216846

Reviewed by Wenson Hsieh.

Source/WebCore:

TextIterator does not visit node that has no renderer, so if node has become hidden, TextManipulationController
will not find content node in paragraph range during replacement.

API Test: TextManipulation.CompleteTextManipulationParagraphBecomesHidden

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::replace):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

3:10 PM Changeset in webkit [267438] by Karl Rackler
  • 2 edits in branches/safari-610-branch/LayoutTests

[ iPadOS wk2 ] fast/forms/ios/time-picker-value-change.html times out or fails
rdar://problem/63108701

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
2:45 PM Changeset in webkit [267437] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Atomic inline-level box with margin is mispositioned
https://bugs.webkit.org/show_bug.cgi?id=216842

Reviewed by Antti Koivisto.

The inline box that an atomic inline-level box generates has the height of the margin box. Therefore the inline box's logical top position
is the position of the top edge of the margin box.
When converting the inline box geometry back to the layout box, we need to offset the top position (border box top edge)
with the value of the used margin before.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

1:47 PM Changeset in webkit [267436] by Alan Coon
  • 55 edits in branches/safari-610.2.6.0-branch/Source/WebCore

Apply patch. rdar://problem/69375258

1:13 PM Changeset in webkit [267435] by Chris Dumez
  • 4 edits in trunk

AudioParam.setValueCurveAtTime() should have an implicit call to setValueAtTime() at the end
https://bugs.webkit.org/show_bug.cgi?id=216839

Reviewed by Eric Carlson.

Source/WebCore:

AudioParam.setValueCurveAtTime() should have an implicit call to setValueAtTime() at the end,
as specified here:

"""
An implicit call to setValueAtTime() is made at time 𝑇0+𝑇𝐷 with value 𝑉[𝑁−1] so that
following automations will start from the end of the setValueCurveAtTime() event.
"""

No new tests, rebaselined existing test.

  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::setValueCurveAtTime):

LayoutTests:

Rebaseline test that is now passing.

  • webaudio/AudioParam/audioparam-setValueCurve-end-expected.txt:
1:07 PM Changeset in webkit [267434] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Add support for multiline inline box geometry.
https://bugs.webkit.org/show_bug.cgi?id=216835

Reviewed by Antti Koivisto.

This patch computes the geometry for inline boxes spanning multiple lines (e.g. <span>first line<br>next line</span).
However this is not the getBoundingClientRect() type of geometry where we provide geometry for each fragments. This is more like the
element.offset* geometry where we compute the enclosing rectangle for all the fragments.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent): Decouple the run construction and inline box geometry update logic,
where we loop through the runs and create "line runs" when needed and then we loop through the inline boxes on the current line and
update the box geometries.

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineFormattingState.h:

(WebCore::Layout::InlineFormattingState::lineBoxes const):
(WebCore::Layout::InlineFormattingState::addLineBox):
(WebCore::Layout::InlineFormattingState::clearLineAndRuns):
(WebCore::Layout::InlineFormattingState::shrinkToFit):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::containsInlineLevelBox const):

12:31 PM Changeset in webkit [267433] by Russell Epstein
  • 8 edits in branches/safari-610.2.6.0-branch/Source

Versioning.

WebKit-7610.2.6.0.1

12:25 PM Changeset in webkit [267432] by Chris Dumez
  • 26 edits in trunk

AudioParams with automations must process timelines
https://bugs.webkit.org/show_bug.cgi?id=216837

Reviewed by Darin Adler.

Source/WebCore:

Currently, if an AudioNode has no inputs connected, any automations
(or connections) to an AudioParam of the node is not processed. Thus,
time never advances on the AudioParam, and any upstream graph
connected to the AudioParam never gets pulled for data.

AudioParam should get processed so that time progresses. Normal
processing of the node causes AudioParams to be processed, so we were
only missing the case where the node has silent inputs (silent or no
inputs). Then we just need to update the AudioParams, without having
to do the full processing associated with the node.

See https://webaudio.github.io/web-audio-api/#rendering-loop, step 8.1.1
in particular that says any inputs connected to an AudioParam are
processed. There are no conditions on when this happens.

This is a merge of the following Blink change by Raymond Toy:

No new tests, rebaselined existing test.

  • Modules/webaudio/AudioBasicProcessorNode.cpp:

(WebCore::AudioBasicProcessorNode::processOnlyAudioParams):

  • Modules/webaudio/AudioBasicProcessorNode.h:
  • Modules/webaudio/AudioListener.h:
  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::processIfNecessary):

  • Modules/webaudio/AudioNode.h:

(WebCore::AudioNode::processOnlyAudioParams):

  • Modules/webaudio/BiquadFilterNode.cpp:

(WebCore::BiquadFilterNode::BiquadFilterNode):

  • Modules/webaudio/BiquadProcessor.cpp:

(WebCore::BiquadProcessor::processOnlyAudioParams):

  • Modules/webaudio/BiquadProcessor.h:
  • Modules/webaudio/DelayDSPKernel.cpp:

(WebCore::DelayDSPKernel::processOnlyAudioParams):

  • Modules/webaudio/DelayDSPKernel.h:
  • Modules/webaudio/DelayNode.cpp:

(WebCore::DelayNode::DelayNode):

  • Modules/webaudio/DynamicsCompressorNode.cpp:

(WebCore::DynamicsCompressorNode::processOnlyAudioParams):

  • Modules/webaudio/DynamicsCompressorNode.h:
  • Modules/webaudio/GainNode.cpp:

(WebCore::GainNode::processOnlyAudioParams):

  • Modules/webaudio/GainNode.h:
  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::processOnlyAudioParams):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/StereoPannerNode.cpp:

(WebCore::StereoPannerNode::processOnlyAudioParams):

  • Modules/webaudio/StereoPannerNode.h:
  • platform/audio/AudioDSPKernel.h:

(WebCore::AudioDSPKernel::processOnlyAudioParams):

  • platform/audio/AudioDSPKernelProcessor.cpp:

(WebCore::AudioDSPKernelProcessor::processOnlyAudioParams):

  • platform/audio/AudioDSPKernelProcessor.h:
  • platform/audio/AudioProcessor.h:

(WebCore::AudioProcessor::processOnlyAudioParams):

LayoutTests:

Rebaseline test that is now passing.

  • webaudio/AudioParam/audioparam-processing-expected.txt:
12:18 PM Changeset in webkit [267431] by Lauro Moura
  • 2 edits in trunk/Source/WebKit

[GTK] REGRESSION(r267398): several hidpi tests are failing
https://bugs.webkit.org/show_bug.cgi?id=216830

Reviewed by Adrian Perez de Castro.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setCustomDeviceScaleFactor): Remove check for removed define.

12:08 PM Changeset in webkit [267430] by Alan Coon
  • 8 edits in branches/safari-610-branch/Source

Versioning.

WebKit-7610.2.8

12:03 PM Changeset in webkit [267429] by Russell Epstein
  • 2 edits in branches/safari-610.2.6.1-branch/Source/WebCore

Cherry-pick r267106. rdar://problem/69375000

CRASH: Exception thrown from -[AVContentKeyRequest makeStreamingContentKeyRequestDataForApp:contentIdentifier:options:completionHandler:]
https://bugs.webkit.org/show_bug.cgi?id=216580
<rdar://problem/68866834>

Reviewed by Eric Carlson.

Protect against undocumented exceptions thrown from AVContentKeySession (and related) APIs by wrapping in @try/@catch blocks and firing
the correct failure callbacks if an exception is encountered.

  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequest): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequests): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRenewingRequest):

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

12:03 PM Changeset in webkit [267428] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Unreviewed, partial revert of r267383.

Restore GStreamer-specific implementation of FFTFrame::multiply() since it appears
r267383 introduced test failures on GTK port.

  • platform/audio/FFTFrame.cpp:

(WebCore::FFTFrame::multiply): Deleted.

  • platform/audio/FFTFrameStub.cpp:

(WebCore::FFTFrame::multiply):

  • platform/audio/gstreamer/FFTFrameGStreamer.cpp:

(WebCore::FFTFrame::multiply):

  • platform/audio/mac/FFTFrameMac.cpp:

(WebCore::FFTFrame::multiply):

12:01 PM Changeset in webkit [267427] by Peng Liu
  • 9 edits
    1 delete in trunk/Source/WebKit

[Media in GPU Process] Add missing IPC message receivers
https://bugs.webkit.org/show_bug.cgi?id=216829

Reviewed by Jer Noble.

Add missing IPC message receivers and clean up some macro usages.
Also remove the empty RemoteMediaPlayerManager.messages.in.

No new tests, no functional change.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::dispatchMessage):
(WebKit::GPUConnectionToWebProcess::dispatchSyncMessage):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/media/ios/RemoteMediaSessionHelperProxy.h:

(WebKit::RemoteMediaSessionHelperProxy::didReceiveMessageFromWebProcess):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::dispatchMessage):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in: Removed.
11:57 AM Changeset in webkit [267426] by Russell Epstein
  • 8 edits in branches/safari-610.2.6.1-branch/Source

Versioning.

WebKit-7610.2.6.1.4

11:43 AM Changeset in webkit [267425] by Russell Epstein
  • 2 edits in branches/safari-610.2.5.1-branch/Source/WebCore

Revert "Cherry-pick r267106. rdar://problem/69375000"

11:37 AM Changeset in webkit [267424] by Keith Rollin
  • 8 edits in trunk

Refactor build rules in Makefiles and Makefile.shared
https://bugs.webkit.org/show_bug.cgi?id=216806
<rdar://problem/69332316>

Reviewed by David Kilzer.

Factor out the common aspects of the build rules in Makefile.shared
and the various Makefiles. This allows us to more easily see what's
different between the various build targets, and to apply uniform
changes across all of the targets.

  • Makefile:

.:

  • Makefile.shared:
  • Source/Makefile:
11:30 AM Changeset in webkit [267423] by Russell Epstein
  • 17 edits in branches/safari-610.2.5.1-branch

Revert "Cherry-pick r266121. rdar://problem/68949249"

11:25 AM Changeset in webkit [267422] by Alan Coon
  • 1 copy in branches/safari-610.2.6.0-branch

New branch.

11:03 AM Changeset in webkit [267421] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Start collecting telemetry from a set of XPC services
<https://bugs.webkit.org/show_bug.cgi?id=216797>

Reviewed by Brent Fulgham.

  • WebProcess/com.apple.WebProcess.sb.in:
11:00 AM Changeset in webkit [267420] by Russell Epstein
  • 2 edits in branches/safari-610.2.5.1-branch/Source/WebCore

Cherry-pick r267106. rdar://problem/69375000

CRASH: Exception thrown from -[AVContentKeyRequest makeStreamingContentKeyRequestDataForApp:contentIdentifier:options:completionHandler:]
https://bugs.webkit.org/show_bug.cgi?id=216580
<rdar://problem/68866834>

Reviewed by Eric Carlson.

Protect against undocumented exceptions thrown from AVContentKeySession (and related) APIs by wrapping in @try/@catch blocks and firing
the correct failure callbacks if an exception is encountered.

  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequest): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequests): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRenewingRequest):

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

10:57 AM Changeset in webkit [267419] by Diego Pino Garcia
  • 2 edits
    3 adds in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Mark several audio related tests as failure after r267383.

Also emit baselines for 2 tests passing.

  • platform/glib/TestExpectations:
  • platform/glib/webaudio/Analyser/realtimeanalyser-fftsize-reset-expected.txt: Added.
  • platform/glib/webaudio/Analyser/realtimeanalyser-multiple-calls-expected.txt: Added.
10:33 AM Changeset in webkit [267418] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] FormattingState should never be copied.
https://bugs.webkit.org/show_bug.cgi?id=216833

Reviewed by Antti Koivisto.

Even when running a throw-away layout, we should not copy the state object but instead generate a new one for the subtree.
These objects should never be copied in general.

  • layout/FormattingState.h:
  • layout/LayoutState.h:
  • layout/tableformatting/TableFormattingContextGeometry.cpp:

(WebCore::Layout::TableFormattingContext::Geometry::usedBaselineForCell):

9:53 AM Changeset in webkit [267417] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests/imported/w3c

REGRESSION(r267354): Only import resource module on Darwin
https://bugs.webkit.org/show_bug.cgi?id=216823

Patch by Sam Sneddon <Sam Sneddon> on 2020-09-22
Reviewed by Darin Adler.

  • web-platform-tests/tools/serve/serve.py:

Move the resource import to the local point behind the Darwin platform
test. This code is only run once per process initiation, hence it makes
no difference to have the import locally.

9:45 AM Changeset in webkit [267416] by Jonathan Bedard
  • 2 edits in trunk

Correct instructions for building iOS in ReadMe
https://bugs.webkit.org/show_bug.cgi?id=216825
<rdar://problem/69372654>

Reviewed by David Kilzer.

  • ReadMe.md: Update iOS build instructions to apply to all embedded platforms.
9:40 AM Changeset in webkit [267415] by Ryan Haddad
  • 2 edits in branches/safari-610-branch/Tools

Cherry-pick r267278. rdar://problem/69374947

Make TLSVersion.NetworkSession API test more robust
https://bugs.webkit.org/show_bug.cgi?id=216704
<rdar://problem/68643674>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-09-18
Reviewed by Tim Horton.

r265573 made preconnect attempts to legacy TLS servers fail.
This caused the TLSVersion.NetworkSession to assert because the first connection attempt would fail
(and the second would succeed if it was supposed to succeed with the conditions in the test).
The test calls waitForDidFailProvisionalNavigation in cases where it is supposed to fail and
waitForDidFinishNavigation in cases where it supposed to succeed.
Like I did in r266100 with another test, use HTTPServer which allows a variable number of connection attempts.

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

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

9:32 AM Changeset in webkit [267414] by youenn@apple.com
  • 14 edits
    2 adds in trunk

Implement a default prompt for getUserMedia
https://bugs.webkit.org/show_bug.cgi?id=216821

Reviewed by Eric Carlson.

Source/WebCore:

Manually tested by running Minibrowser.

  • en.lproj/Localizable.strings:

Source/WebKit:

Move preferences used by WebRTC develop menu to internals.
This allows having them in MiniBrowser.

Enable video capture in UIProcess by default for non Safari applications.
Add support for a getUserMedia prompt, very similar to iOS current prompt.
Use the prompt in case the application does not implement any of the two delegates.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCaptureVideoInUIProcessEnabled):

  • Shared/WebPreferencesDefaultValues.h:
  • Shared/WebPreferencesExperimental.yaml:
  • Shared/WebPreferencesInternal.yaml:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::requestUserMediaAuthorizationForFrame):
(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest):

  • UIProcess/Cocoa/WKUserMediaCaptureAccessAlert.h: Added.
  • UIProcess/Cocoa/WKUserMediaCaptureAccessAlert.mm: Added.

(WebKit::visibleDomain):
(WebKit::alertMessageText):
(WebKit::presentUserMediaCaptureAccessAlert):

  • WebKit.xcodeproj/project.pbxproj:

Tools:

Remove getUserMedia delegate implementations to use WebKit built-in prompt.
Add camera and microphone entitlements to allow using real cameras and microphones.
Keep using mock devices as the default.

  • MiniBrowser/MiniBrowser.entitlements:
  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController _webView:requestMediaCaptureAuthorization:decisionHandler:]): Deleted.
(-[WK2BrowserWindowController _webView:includeSensitiveMediaDeviceDetails:]): Deleted.

9:29 AM Changeset in webkit [267413] by Chris Dumez
  • 4 edits in trunk

webaudio/AudioParam/audioparam-setTarget-timeConstant-0.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=216824

Reviewed by Darin Adler.

Source/WebCore:

If the time constant pass to AudioParam.setTargetAtTime() is 0, then insert a SetValue event in
the timeline instead of a SetTarget one, causing us to instantly jump to the target value. This
matches the Blink behavior.

No new tests, unskipped existing test.

  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::setTargetAtTime):

LayoutTests:

Unskip test that is passing and no longer crashing.

9:22 AM Changeset in webkit [267412] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

Crashtracer inside PDFPlugin::createScrollbar.
<rdar://problem/69256031> and https://bugs.webkit.org/show_bug.cgi?id=216810

Reviewed by Tim Horton.

To quote Tim from r264945:
No new tests; timing is such that I can't reproduce without inserting
intentional delays into the main thread hops, which is further than
I'm willing to go for a test.

This is a speculative fix due to the aforementioned reproducibility issue.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::installPDFDocument): With all the past fixes in place, its apparent

the plug-in HAS been torn down, and it's somewhat common to bypass the other "hasBeenDestroyed"
checks. So put an explicit check here followed by an explicit release assert.

9:14 AM Changeset in webkit [267411] by BJ Burg
  • 44 edits
    2 copies in trunk

[Cocoa] _WKInspectorDelegate should handle showing external resources
https://bugs.webkit.org/show_bug.cgi?id=216334

Reviewed by Devin Rousso.

Source/WebCore:

Adapt to the rename of InspectorFrontendHost.{openInNewTab => openURLExternally}.

  • inspector/InspectorFrontendClient.h:
  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openURLExternally):
(WebCore::InspectorFrontendClientLocal::openInNewTab): Deleted.

  • inspector/InspectorFrontendClientLocal.h:
  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::openURLExternally):
(WebCore::InspectorFrontendHost::openInNewTab): Deleted.

  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.idl:

Source/WebInspectorUI:

Adapt to the rename of InspectorFrontendHost.{openInNewTab => openURLExternally}.

  • UserInterface/Base/Main.js:
  • UserInterface/Debug/UncaughtExceptionReporter.js:

(sheetElement.innerHTML.div):

  • UserInterface/Protocol/InspectorFrontendAPI.js:
  • UserInterface/Views/ResourceTreeElement.js:

(WI.ResourceTreeElement.prototype.ondblclick):

Source/WebKit:

WebKit clients need a way to control the loading and presentation of
external resources that are linked in Web Inspector's user interface.

Rename InspectorFrontendHost.openInNewTab to openURLExternally. Change
the implementation to forward the request to UIProcess rather than the
inspected WebProcess.

When a navigation is triggered in WKInspectorViewController's WKWebView,
allow the delegate to open the requested resource. Otherwise, redirect
the navigation to the inspected WebView or open it using NSWorkspace
(for the remote case).

New API test: WKInspectorDelegate.OpenURLExternally.

  • UIProcess/API/Cocoa/_WKInspectorPrivateForTesting.h: Added.
  • UIProcess/API/Cocoa/_WKInspectorTesting.mm: Added.

(snippetToOpenURLExternally):
(-[_WKInspector _openURLExternallyForTesting:useFrontendAPI:]):
Add some helpers for writing API tests.

  • UIProcess/API/APIInspectorClient.h:

(API::InspectorClient::openURLExternally):

  • UIProcess/API/Cocoa/_WKInspectorDelegate.h:
  • UIProcess/Cocoa/PageClientImplCocoa.mm:
  • UIProcess/Inspector/Cocoa/InspectorDelegate.h:
  • UIProcess/Inspector/Cocoa/InspectorDelegate.mm:

(WebKit::InspectorDelegate::setDelegate):
(WebKit::InspectorDelegate::InspectorClient::openURLExternally):
Add new delegate method to _WKInspectorDelegate.

  • UIProcess/Inspector/RemoteWebInspectorProxy.messages.in:
  • UIProcess/Inspector/RemoteWebInspectorProxy.h:
  • UIProcess/Inspector/RemoteWebInspectorProxy.cpp:

(WebKit::RemoteWebInspectorProxy::openURLExternally):
(WebKit::RemoteWebInspectorProxy::platformOpenURLExternally):
(WebKit::RemoteWebInspectorProxy::openInNewTab): Deleted.
(WebKit::RemoteWebInspectorProxy::platformOpenInNewTab): Deleted.

  • UIProcess/Inspector/gtk/RemoteWebInspectorProxyGtk.cpp:

(WebKit::RemoteWebInspectorProxy::platformURLExternally):
(WebKit::RemoteWebInspectorProxy::platformOpenInNewTab): Deleted.

  • UIProcess/Inspector/mac/RemoteWebInspectorProxyMac.mm:

(WebKit::RemoteWebInspectorProxy::platformOpenURLExternally):
(WebKit::RemoteWebInspectorProxy::platformOpenInNewTab): Deleted.

  • UIProcess/Inspector/win/RemoteWebInspectorProxyWin.cpp:

(WebKit::RemoteWebInspectorProxy::platformOpenURLExternally):
(WebKit::RemoteWebInspectorProxy::platformOpenInNewTab): Deleted.
Rename openInNewTab to openURLExternally. In some cases the client
may not choose to present a new tab, so the name is no longer accurate.

  • UIProcess/Inspector/WebInspectorProxy.messages.in:
  • UIProcess/Inspector/WebInspectorProxy.h:
  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::inspectorWindow const):
(WebKit::WebInspectorProxy::openURLExternally):
(WebKit::WebInspectorProxy::evaluateInFrontendForTesting):

  • UIProcess/Inspector/mac/WebInspectorProxyMac.mm:

(-[WKWebInspectorProxyObjCAdapter inspectorViewController:openURLExternally:]):
Add some helpers for writing API tests. Add an IPC message
for evaluating a JavaScript expression in the frontend page.
Also, add a message receiver for the OpenURLExternally message
which passes the request to the API layer.

  • UIProcess/Inspector/mac/WKInspectorViewController.h:
  • UIProcess/Inspector/mac/WKInspectorViewController.mm:

(-[WKInspectorViewController webView:decidePolicyForNavigationAction:decisionHandler:]):
Call the delegate method if a navigation inside the inspector WKWebView is an external URL.
Specifically the request is to load something other than the Web Inspector's main HTML page.

  • WebProcess/Inspector/WebInspector.cpp:

(WebKit::WebInspector::openInNewTab): Deleted.

  • WebProcess/Inspector/WebInspector.h:
  • WebProcess/Inspector/WebInspector.messages.in:

No need to handle this message anymore in the inspected WebProcess.

  • WebProcess/Inspector/RemoteWebInspectorUI.h:
  • WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::openURLExternally):
(WebKit::RemoteWebInspectorUI::openInNewTab): Deleted.

  • WebProcess/Inspector/WebInspectorUI.messages.in:
  • WebProcess/Inspector/WebInspectorUI.h:
  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::updateConnection):
(WebKit::WebInspectorUI::closeWindow):
(WebKit::WebInspectorUI::openURLExternally):
(WebKit::WebInspectorUI::evaluateInFrontendForTesting):
(WebKit::WebInspectorUI::openInNewTab): Deleted.
When we need to open the URL externally, send an IPC message to UIProcess.
The old implementation triggered the navigation from the inspected WebProcess.
That approach is no longer desirable. Remove the unneeded IPC connection.

  • WebProcess/Inspector/WebInspectorFrontendAPIDispatcher.h:
  • WebProcess/Inspector/WebInspectorFrontendAPIDispatcher.cpp:

(WebKit::WebInspectorFrontendAPIDispatcher::evaluateExpressionForTesting):
Fulfill the request to evaluate the expression in the frontend page.

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:

Some files were added.

Tools:

Test the delegate using WebKit API and using InspectorFrontendHost API.

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:

(-[InspectorDelegate inspector:openURLExternally:]): Added.
(TEST):

9:00 AM Changeset in webkit [267410] by Truitt Savell
  • 4 edits in trunk/Tools

Unreviewed, reverting r267380.

Broke multiple test suites on Liberty

Reverted changeset:

"[webkitpy] Use webkitcorepy's auto installer for pytest
packages"
https://bugs.webkit.org/show_bug.cgi?id=215895
https://trac.webkit.org/changeset/267380

8:30 AM Changeset in webkit [267409] by Karl Rackler
  • 2 edits in branches/safari-610-branch/LayoutTests

[ iOS wk2 ] compositing/clipping/border-radius-on-webgl.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=215324

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
8:28 AM Changeset in webkit [267408] by weinig@apple.com
  • 7 edits
    4 adds in trunk/Source/WebCore

[WebIDL] Split up Performance.idl into component partials
https://bugs.webkit.org/show_bug.cgi?id=216729

Reviewed by Darin Adler.

Split additions to the Peformance interface from the Navagation Timing,
Resource Timing, User Timing and Performance Timeline specs into their
own IDL files. Trying something new with the naming (using Performance
'+' name of the spec supplying the addition) for these partials to test
the waters.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • page/Performance+NavigationTiming.idl: Added.
  • page/Performance+PerformanceTimeline.idl: Added.
  • page/Performance+ResourceTiming.idl: Added.
  • page/Performance+UserTiming.idl: Added.
  • page/Performance.idl:
8:15 AM Changeset in webkit [267407] by Karl Rackler
  • 2 edits in branches/safari-610-branch/LayoutTests

[iOS] Update fast/text/opticalFontWithTextStyle.html for iOS 14
https://bugs.webkit.org/show_bug.cgi?id=215667

Unreviewed test gardening.

  • platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt:
7:59 AM Changeset in webkit [267406] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK] Mark compositing/video/video-update-rendering.html as flaky crash

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
7:54 AM Changeset in webkit [267405] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Start collecting telemetry from message filtering
<https://bugs.webkit.org/show_bug.cgi?id=216803>

Reviewed by Darin Adler.

Start collecting telemetry for message filtering in the WebContent sandbox on macOS.

  • WebProcess/com.apple.WebProcess.sb.in:
6:34 AM Changeset in webkit [267404] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] TextUtil::split needs logical left
https://bugs.webkit.org/show_bug.cgi?id=216798

Reviewed by Antti Koivisto.

Measuring text content requires logical left offset (e.g. tab size depends on the logical position).
Let's pass in the current logical left position to TextUtil::split.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::ContinuousContent::runs const):
(WebCore::Layout::ContinuousContent::isEmpty const):
(WebCore::Layout::ContinuousContent::logicalWidth const):
(WebCore::Layout::ContinuousContent::logicalLeft const):
(WebCore::Layout::ContinuousContent::nonCollapsibleLogicalWidth const):
(WebCore::Layout::LineBreaker::isContentWrappingAllowed const):
(WebCore::Layout::LineBreaker::shouldKeepEndOfLineWhitespace const):
(WebCore::Layout::LineBreaker::shouldWrapInlineContent):
(WebCore::Layout::LineBreaker::tryWrappingInlineContent const):
(WebCore::Layout::LineBreaker::wrapTextContent const):
(WebCore::Layout::LineBreaker::tryBreakingTextRun const):
(WebCore::Layout::ContinuousContent::ContinuousContent):
(WebCore::Layout::ContinuousContent::hasTextContentOnly const):
(WebCore::Layout::ContinuousContent::isVisuallyEmptyWhitespaceContentOnly const):
(WebCore::Layout::ContinuousContent::firstTextRunIndex const):
(WebCore::Layout::ContinuousContent::lastContentRunIndex const):
(WebCore::Layout::ContinuousContent::hasNonContentRunsOnly const):
(WebCore::Layout::ContinuousContent::size const): Deleted.
(WebCore::Layout::ContinuousContent::width const): Deleted.
(WebCore::Layout::ContinuousContent::nonCollapsibleWidth const): Deleted.

  • layout/inlineformatting/InlineLineBreaker.h:
  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::handleFloatsAndInlineContent):

5:10 AM Changeset in webkit [267403] by youenn@apple.com
  • 6 edits in trunk

Move Media in GPU Process flag from internal to experimental
https://bugs.webkit.org/show_bug.cgi?id=216473
<rdar://problem/69318786>

Reviewed by Eric Carlson.

Source/WebKit:

No change of behavior.

  • Shared/WebPreferencesExperimental.yaml:
  • Shared/WebPreferencesInternal.yaml:

Tools:

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):
Disable Media in GPU Process flag and WebRTC codec experimental features by default.
This can be overriden by WebKitTestRunner options.

1:46 AM Changeset in webkit [267402] by weinig@apple.com
  • 39 edits
    11 adds in trunk

Update User Timing interfaces to User Timing Level 3
https://bugs.webkit.org/show_bug.cgi?id=216787

Reviewed by Alex Christensen.
LayoutTests/imported/w3c:

Import missing case-sensitivity test case from upstream and update the results
of User Timing tests now that we support Level 3.

  • web-platform-tests/user-timing/case-sensitivity.any-expected.txt: Added.
  • web-platform-tests/user-timing/case-sensitivity.any.html: Added.
  • web-platform-tests/user-timing/case-sensitivity.any.js: Added.
  • web-platform-tests/user-timing/case-sensitivity.any.worker-expected.txt: Added.
  • web-platform-tests/user-timing/case-sensitivity.any.worker.html: Added.
  • web-platform-tests/user-timing/idlharness.any-expected.txt:
  • web-platform-tests/user-timing/idlharness.any.worker-expected.txt:
  • web-platform-tests/user-timing/mark-entry-constructor.any-expected.txt:
  • web-platform-tests/user-timing/mark-entry-constructor.any.worker-expected.txt:
  • web-platform-tests/user-timing/mark-errors.any-expected.txt:
  • web-platform-tests/user-timing/mark-errors.any.worker-expected.txt:
  • web-platform-tests/user-timing/mark-l3.any-expected.txt:
  • web-platform-tests/user-timing/mark-l3.any.worker-expected.txt:
  • web-platform-tests/user-timing/mark-measure-return-objects.any-expected.txt:
  • web-platform-tests/user-timing/mark-measure-return-objects.any.worker-expected.txt:
  • web-platform-tests/user-timing/measure-l3.any-expected.txt:
  • web-platform-tests/user-timing/measure-l3.any.worker-expected.txt:
  • web-platform-tests/user-timing/measure-with-dict.any-expected.txt:
  • web-platform-tests/user-timing/measure-with-dict.any.worker-expected.txt:
  • web-platform-tests/user-timing/measure_exception-expected.txt:
  • web-platform-tests/user-timing/performance-measure-invalid.worker-expected.txt:
  • web-platform-tests/user-timing/structured-serialize-detail.any-expected.txt:
  • web-platform-tests/user-timing/structured-serialize-detail.any.worker-expected.txt:

Source/WebCore:

Adds support for User Timing Level 3 which adds more flexibility in how PerformanceMarks
and PerformanceMeasures are created via synthetic start/end times and associate 'details'
values serialized with events themselves.

Updates results to existing WPT and standalone tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add new files.

  • page/Performance.cpp:

(WebCore::Performance::mark):
(WebCore::Performance::clearMarks):
(WebCore::Performance::measure):
(WebCore::Performance::clearMeasures):

  • page/Performance.h:
  • page/Performance.idl:

Update for new signatures for mark and measure, and rename of UserTiming to PerformanceUserTiming.

  • page/PerformanceMark.cpp: Added.

(WebCore::peformanceNow):
(WebCore::PerformanceMark::create):
(WebCore::PerformanceMark::PerformanceMark):
(WebCore::PerformanceMark::detail):

  • page/PerformanceMark.h:
  • page/PerformanceMark.idl:

Add support for PerformanceMark's constructor detail getter. While the spec says to
serialize and the deserialize in the constructor, we only serialize, and delay deserialization
until the first access, which is a non-observable difference. We also utilize [CachedAttribute]
to only ever deserialize once per wrapper world (and also greatly simplify the GC shenanigans).

  • page/PerformanceMarkOptions.h: Added.
  • page/PerformanceMarkOptions.idl: Added.

Import and bind PerformanceMarkOptions dictionary to a new struct.

  • page/PerformanceMeasure.cpp: Added.

(WebCore::PerformanceMeasure::create):
(WebCore::PerformanceMeasure::PerformanceMeasure):
(WebCore::PerformanceMeasure::detail):

  • page/PerformanceMeasure.h:
  • page/PerformanceMeasure.idl:

Like with PerformanceMark, but there is no constructor here, so we only need to handle adding
support for the detail getter.

  • page/PerformanceMeasureOptions.h: Added.
  • page/PerformanceMeasureOptions.idl: Added.

Import and bind PerformanceMeasureOptions dictionary to a new struct.

  • page/PerformanceUserTiming.cpp:

(WebCore::restrictedMarkNamesToNavigationTimingFunctionMap):
(WebCore::restrictedMarkFunction):
(WebCore::isRestrictedMarkNameNonMainThread):
(WebCore::PerformanceUserTiming::isRestrictedMarkName):
Split up existing map to enable accessing it safely from a worker using conservative
callOnMainThreadAndWait approach, though since the map is immutable after initialization,
we can probably optimize this to allow concurrent querying in the future.

(WebCore::addPerformanceEntry):
Add helper, mirroring clearPerformanceEntries, to add entries.

(WebCore::PerformanceUserTiming::mark):
Matching the spec language, utilize the new PerformanceMark constructor to create
the mark.

(WebCore::PerformanceUserTiming::convertMarkToTimestamp const):
(WebCore::isNonEmptyDictionary):
(WebCore::PerformanceUserTiming::measure):
Implement measure support by dispatching various combinations of arguments to
overloads manually by inspecting the Variant.

  • page/PerformanceUserTiming.h:

Renames class from UserTiming to PerformanceUserTiming to match file names.

LayoutTests:

Update error text due to some changes in which exceptions are thrown due to
new support for User Timing Level 3.

  • performance-api/performance-measure-name-expected.txt:
  • performance-api/performance-now-api-expected.txt:
  • performance-api/user-timing-apis-expected.txt:
1:03 AM Changeset in webkit [267401] by youenn@apple.com
  • 5 edits in trunk

toRTCIceProtocol should handle ssltcp candidates
https://bugs.webkit.org/show_bug.cgi?id=216762

Reviewed by Darin Adler.

Source/WebCore:

Covered by mock WebRTC backend pushing ssltcp candidates.

  • Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:

(WebCore::toRTCIceProtocol):

  • testing/MockLibWebRTCPeerConnection.cpp:

LayoutTests:

  • fast/mediastream/RTCPeerConnection-icecandidate-event-expected.txt:

Sep 21, 2020:

11:58 PM Changeset in webkit [267400] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Enable MediaRecorder by default on iOS
https://bugs.webkit.org/show_bug.cgi?id=216664

Reviewed by Darin Adler.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultMediaRecorderEnabled):

11:52 PM Changeset in webkit [267399] by Adrian Perez de Castro
  • 7 edits in trunk

[CMake] Use imported targets in find module for the ATK SPI2 bridge dependency
https://bugs.webkit.org/show_bug.cgi?id=216773

Reviewed by Don Olmstead.

.:

  • Source/cmake/FindATKBridge.cmake: Rewrite to define an ATK::Bridge imported target.
  • Source/cmake/OptionsWPE.cmake: Use the ATK::Bridge imported target.

Source/WebKit:

No new tests needed.

  • PlatformWPE.cmake: Use the ATK::Bridge imported target.

Tools:

  • wpe/backends/CMakeLists.txt: Use the ATK::Bridge imported target.
11:08 PM Changeset in webkit [267398] by Adrian Perez de Castro
  • 10 edits in trunk/Source

[GTK] Bump cairo version to support HiDPI
https://bugs.webkit.org/show_bug.cgi?id=133378

Reviewed by Carlos Garcia Campos.

Remove conditional compilation around cairo_{g,s}et_device_scale() as there is no need to
support older versions of Cairo which lack the functions. The minimum version of Cairo
being required by CMake is 1.14.0, which already includes them.

Source/WebCore:

No new tests needed.

  • platform/graphics/cairo/BackingStoreBackendCairoImpl.cpp:

(WebCore::createCairoImageSurfaceWithFastMalloc): Use cairo_surface_set_device_scale()
directly.
(WebCore::BackingStoreBackendCairoImpl::scroll): Use cairo_surface_get_device_scale()
directly.

  • platform/graphics/cairo/BackingStoreBackendCairoX11.cpp:

(WebCore::BackingStoreBackendCairoX11::BackingStoreBackendCairoX11): Use
cairo_surface_set_device_scale() directly.
(WebCore::BackingStoreBackendCairoX11::scroll): Use cairo_surface_get_device_scale()
directly.

  • platform/graphics/cairo/CairoUtilities.cpp: Remove helper functions

cairoSurfaceSetDeviceScale() and cairoSurfaceGetDeviceScale().

  • platform/graphics/cairo/CairoUtilities.h: Ditto.

Source/WebKit:

  • Shared/cairo/ShareableBitmapCairo.cpp:

(WebKit::ShareableBitmap::paint): use cairo_surface_set_device_scale() directly.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseTakeViewSnapshot): Ditto.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::displayBuffer): Ditto.
(WebKit::AcceleratedBackingStoreWayland::downloadTexture): Ditto.

  • UIProcess/gtk/AcceleratedBackingStoreX11.cpp:

(WebKit::AcceleratedBackingStoreX11::update): Ditto.

10:07 PM Changeset in webkit [267397] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKitLegacy/mac

Remove deprecated script and stylesheet injection SPI, replaced with more inclusively-named SPI
https://bugs.webkit.org/show_bug.cgi?id=214936

Patch by Alex Christensen <achristensen@webkit.org> on 2020-09-21
Reviewed by Youenn Fablet.

rdar://64376341 tracks the adoption of the replacement. Once that is done, we can remove the old SPI.

  • WebView/WebView.mm:

(+[WebView _addUserScriptToGroup:world:source:url:whitelist:blacklist:injectionTime:]): Deleted.
(+[WebView _addUserScriptToGroup:world:source:url:whitelist:blacklist:injectionTime:injectedFrames:]): Deleted.
(+[WebView _addUserStyleSheetToGroup:world:source:url:whitelist:blacklist:]): Deleted.
(+[WebView _addUserStyleSheetToGroup:world:source:url:whitelist:blacklist:injectedFrames:]): Deleted.

  • WebView/WebViewPrivate.h:
10:03 PM Changeset in webkit [267396] by Diego Pino Garcia
  • 3 edits
    1 delete in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Update baselines after r267389.

  • platform/glib/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt: Update after r267357.
  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-automation-expected.txt: Removed.
9:56 PM Changeset in webkit [267395] by Paulo Matos
  • 2 edits in trunk/Source/JavaScriptCore

Fix MIPS leai,leap when offset is nonzero
https://bugs.webkit.org/show_bug.cgi?id=216772

Reviewed by Mark Lam.

Fix required by change from webkit#216685

  • offlineasm/mips.rb:
9:44 PM Changeset in webkit [267394] by timothy_horton@apple.com
  • 5 edits in trunk/Source

paper.io ad close buttons cannot be iteracted with via trackpad on iPad
https://bugs.webkit.org/show_bug.cgi?id=216812
<rdar://problem/68738585>

Reviewed by Wenson Hsieh.

Source/WebCore:

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

(WebCore::IOSApplication::isPaperIO):

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm:

(applicationIsKnownToIgnoreMouseEvents):

8:51 PM Changeset in webkit [267393] by Ryan Haddad
  • 2 edits in branches/safari-610-branch/LayoutTests

Cherry-pick r266058. rdar://problem/69343370

[ macOS wk1 Debug ] inspector/animation/nameChanged.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=215767

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:

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

8:50 PM Changeset in webkit [267392] by Ryan Haddad
  • 3 edits in branches/safari-610-branch/LayoutTests

Cherry-pick r266041. rdar://problem/69341725

Make fast/text/letter-spacing-shaping.html more robust
https://bugs.webkit.org/show_bug.cgi?id=215711

Unreviewed test gardening.

  • fast/text/letter-spacing-shaping-expected.html:
  • fast/text/letter-spacing-shaping.html:

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

8:48 PM Changeset in webkit [267391] by Ryan Haddad
  • 2 edits in branches/safari-610-branch/LayoutTests

Cherry-pick r266494. rdar://problem/69341549

Rebaseline after macOS build progression.
Rebaseline fast/block/margin-collapse/103 for Mojave

Unreviewed test gardening.

  • platform/mac-mojave/fast/block/margin-collapse/103-expected.txt:

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

8:48 PM Changeset in webkit [267390] by Ryan Haddad
  • 2 edits in branches/safari-610-branch/LayoutTests

Cherry-pick r266490. rdar://problem/69341549

Rebaseline after macOS build progression.
Rebaseline fast/block/margin-collapse/103 for Catalina

Unreviewed test gardening.

  • platform/mac-catalina/fast/block/margin-collapse/103-expected.txt:

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

8:48 PM Changeset in webkit [267389] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GLIB] fast/mediastream/getUserMedia-webaudio.html is failing since 267383

Unreviewed test gardening.

  • platform/glib/TestExpectations:
6:30 PM Changeset in webkit [267388] by Chris Dumez
  • 4 edits in trunk

Value returned by AudioParamTimeline::valuesForTimeRange() is sometimes incorrect for exponential ramps
https://bugs.webkit.org/show_bug.cgi?id=216811

Reviewed by Darin Adler.

Source/WebCore:

AudioParamTimeline::valuesForTimeRangeImpl() always need to return the *last* value since this is
what will be used to update AudioParam::m_value to its latest value. We had a bug in our exponential
ramp processing causing value to be multiplied one extra time.

No new tests, rebaselined existing test.

  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::valuesForTimeRangeImpl):

LayoutTests:

Rebaseline test that is now passing.

  • webaudio/AudioParam/audioparam-update-value-attribute-expected.txt:
5:37 PM Changeset in webkit [267387] by timothy@apple.com
  • 3 edits in trunk/Source/WebKit

Add some WKWebProcessPlugInFrame SPI needed by Safari.
https://bugs.webkit.org/show_bug.cgi?id=216809
rdar://problem/69336928

Reviewed by Brian Weinstein.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(+[WKWebProcessPlugInFrame lookUpFrameFromJSContext:]): Added.
(-[WKWebProcessPlugInFrame _securityOrigin]): Added.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h:
5:17 PM Changeset in webkit [267386] by Chris Dumez
  • 5 edits in trunk

AudioBufferSourceNode should update grain parameters when buffer is set after rendering has started
https://bugs.webkit.org/show_bug.cgi?id=216808

Reviewed by Eric Carlson.

Source/WebCore:

AudioBufferSourceNode should update grain parameters when buffer is set after rendering has
started. The grain parameters need to be adjusted so that they make sense given the buffer
length. Previously, we would only update grain parameters in AudioBufferSourceNode::startPlaying(),
when a buffer is set. We would fail to update those grain parameters when the buffer is set,
in setBuffer(), if startPlaying() has already been called.

No new tests, rebaselined existing test.

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::setBuffer):
(WebCore::AudioBufferSourceNode::startLater):
(WebCore::AudioBufferSourceNode::startPlaying):
(WebCore::AudioBufferSourceNode::updateGrainParameters):

  • Modules/webaudio/AudioBufferSourceNode.h:

LayoutTests:

Rebaseline test that is now passing.

  • webaudio/AudioBufferSource/audiobuffersource-loop-grain-no-duration-expected.txt:
4:49 PM Changeset in webkit [267385] by Andres Gonzalez
  • 3 edits in trunk/Source/WebKit

Make accessibility isolated tree a non-experimental feature.
https://bugs.webkit.org/show_bug.cgi?id=216792

Reviewed by Chris Fleizach.

Promote accessibility isolated tree from an experimental feature to a
non-experimental one. This avoids the problem where a user can turn off
the feature through the Safari > Develop > Experimental Features submenu,
while the accessibility request are still coming on a secondary thread,
which leads to random crashes.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesExperimental.yaml:
4:42 PM Changeset in webkit [267384] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, unskip webaudio/Analyser/handle-silent-inputs.html.

This test should no longer be flaky now that it is passing.

4:27 PM Changeset in webkit [267383] by Chris Dumez
  • 14 edits
    2 deletes in trunk

Values returned by FFTFrame::doFFT() are twice as large as they should be
https://bugs.webkit.org/show_bug.cgi?id=216781

Reviewed by Darin Adler.

Source/WebCore:

To provide the best possible execution speeds, the vDSP library's functions don't always adhere strictly
to textbook formulas for Fourier transforms, and must be scaled accordingly [1].

In the case of a Real forward Transform like in FFTFrame::doFFT(): RFimp = RFmath * 2 so we need to
divide the output by 2 to get the correct value. We were failing to do this scaling and this was causing
AnalyserNode tests to fail.

[1] See https://developer.apple.com/library/archive/documentation/Performance/Conceptual/vDSP_Programming_Guide/UsingFourierTransforms/UsingFourierTransforms.html#//apple_ref/doc/uid/TP40005147-CH3-SW5

No new tests, rebaselined existing tests.

  • Modules/webaudio/PeriodicWave.cpp:

(WebCore::PeriodicWave::createBandLimitedTables):
Update normalization factor now that FFTFrame::doInverseFFT() has been fixed. The new normalization factor
matches the value used by blink at:

  • platform/audio/FFTFrame.cpp:

(WebCore::FFTFrame::multiply):
We were applying a 0.5 scaling factor to the output of vDSP_zvmul(). However, the documentation for vDSP_zvmul()
does not indicate that its output is twice as large as expected. Odds are that this was done because we used
to have a bug in FFTFrame::doFFT() that was returning values twice as large as expected. SInce this function
relies on VectorMath, there is no need for its implementation to be platform-specific.

  • platform/audio/FFTFrameStub.cpp:
  • platform/audio/gstreamer/FFTFrameGStreamer.cpp:

(WebCore::FFTFrame::doFFT):
(WebCore::FFTFrame::doInverseFFT):
Drop 2 factor in the GStreamer implementation that was added to try and be consistent with the incorrect Mac
implementation.

  • platform/audio/mac/FFTFrameMac.cpp:

(WebCore::FFTFrame::doFFT):
Fix issue where the values returned by doFFT() were twice as large as expected due to the odd behavior of
vDSP_fft_zrip().

(WebCore::FFTFrame::doInverseFFT):
Drop 2 factor in doInverseFFT that was added because the output of doFFT() was twice as large as expected
and we wanted x == InverseFFT(FFT(x)).

LayoutTests:

  • webaudio/Analyser/realtimeanalyser-downmix-expected.txt:
  • webaudio/Analyser/realtimeanalyser-freq-data-expected.txt:
  • webaudio/Analyser/realtimeanalyser-freq-data-smoothing-expected.txt:
  • webaudio/Analyser/realtimeanalyser-multiple-calls-expected.txt:

Rebaseline tests that are passing now that the bug has been fixed.

  • webaudio/realtimeanalyser-fft-scaling-expected.txt: Removed.
  • webaudio/realtimeanalyser-fft-scaling.html: Removed.

Drop outdated test. This test was imported into WPT and now resides at:

  • imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html
4:25 PM Changeset in webkit [267382] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

[GPU Process] Several tests in canvas/philip/tests are failing with text diffs
https://bugs.webkit.org/show_bug.cgi?id=216800

Reviewed by Darin Adler.

When using the GPU process to render canvas elements, we currently fail the 7 tests in canvas/philip/tests
below, due to gradient and pattern fill/stroke styles lingering on the 2D graphics context state after a fill or
stroke color is set, respectively.

This happens when:

  1. The fill color is set to a color C.
  2. A fill pattern or gradient is applied.
  3. The fill color is set to the color C again.

In this case, after step (2), we propagate a graphics context state change indicating that the fill pattern has
changed, but we leave the fill color unchanged (i.e., it remains equal to C). In step (3), we then set the
fill color to C again, which doesn't propagate a state change to the GPU process, since the fill color is the
same (C). As such, the state in the GPU process keeps its fill gradient, and we end up filling with this old
gradient instead of the fill color C.

To fix this, we simply revert fillColor and strokeColor to the invalid color when setting a gradient or
pattern in the same way that we currently clear out the fill/stroke gradient and pattern when setting a fill/
stroke color, which ensures that a state change will be sent to the GPU process during step (3).

Fixes the following canvas-related layout tests when using the GPU process:

  • canvas/philip/tests/2d.gradient.radial.cone.shape2.html
  • canvas/philip/tests/2d.pattern.basic.nocontext.html
  • canvas/philip/tests/2d.pattern.paint.norepeat.coord3.html
  • canvas/philip/tests/2d.pattern.paint.repeatx.coord1.html
  • canvas/philip/tests/2d.pattern.paint.repeatx.outside.html
  • canvas/philip/tests/2d.pattern.paint.repeaty.coord1.html
  • canvas/philip/tests/2d.pattern.paint.repeaty.outside.html

The entire canvas/ directory is currently skipped when enabling the GPU process for canvas rendering, but once
we're down to a smaller number of failures, I intend to unskip these directories for GPU process, and
individually track any remaining test failures.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::setStrokePattern):
(WebCore::GraphicsContext::setFillPattern):
(WebCore::GraphicsContext::setStrokeGradient):
(WebCore::GraphicsContext::setFillGradient):

4:14 PM Changeset in webkit [267381] by Chris Dumez
  • 5 edits in trunk

Properly handle AudioParam.setTargetAtTime() followed by a ramp
https://bugs.webkit.org/show_bug.cgi?id=216804

Reviewed by Darin Adler.

Source/WebCore:

Properly handle AudioParam.setTargetAtTime() followed by a ramp:

This is a merge of the following Blink change:

No new tests, rebaselined existing test.

  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
(WebCore::AudioParamTimeline::processSetTargetFollowedByRamp):

  • Modules/webaudio/AudioParamTimeline.h:

LayoutTests:

Rebaseline test that is now passing.

  • webaudio/AudioParam/audioparam-setTargetAtTime-continuous-expected.txt:
4:10 PM Changeset in webkit [267380] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitpy] Use webkitcorepy's auto installer for pytest packages
https://bugs.webkit.org/show_bug.cgi?id=215895
<rdar://problem/67885471>

Rubber-stamped by Aakash Jain.

  • Scripts/webkitpy/init.py: Add pytest and it's dependencies.
  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook.find_module): Remove pytest and pytest_timeout.
(AutoinstallImportHook._install_pytest_timeout): Deleted.
(AutoinstallImportHook._install_pytest): Deleted.

  • Scripts/webkitpy/webdriver_tests/pytest_runner.py: Implicitly use webkitcorepy's autoinstaller.
4:09 PM Changeset in webkit [267379] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: Missing node for given nodeId
https://bugs.webkit.org/show_bug.cgi?id=216067
<rdar://problem/68520144>

Reviewed by Devin Rousso.

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WI.ContentBrowserTabContentView.prototype.showDetailsSidebarPanels):
Rewrite showDetailsSidebarPanels in such way that causes no more than one change of selectedSidebarPanel.
Previously, removeSidebarPanel would cause the change of selectedSidebarPanel, resulting in showing
a panel with outdated this.domNode.

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

Display a useful error with a relevant location instead of a generic Connection.js error.

  • UserInterface/Views/Sidebar.js:

(WI.Sidebar.prototype.removeSidebarPanel):
After removing a panel, don't select the nearest panel. There doesn't seem to be a useful case for it.
The selected panel is determined at the removeSidebarPanel callsites.

3:59 PM Changeset in webkit [267378] by Karl Rackler
  • 2 edits in branches/safari-610-branch/LayoutTests

REGRESSION (r264117): [ Mac iOS ] imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/blob.https.html
https://bugs.webkit.org/show_bug.cgi?id=214155

Unreviewed test gardening.

  • platform/ios/TestExpectations:
3:56 PM Changeset in webkit [267377] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

Remove unused NodeFlag::HasCSSAnimation
https://bugs.webkit.org/show_bug.cgi?id=216785

Reviewed by Antti Koivisto.

  • dom/Element.h:

(WebCore::Element::hasCSSAnimation const): Deleted.
(WebCore::Element::setHasCSSAnimation): Deleted.
(WebCore::Element::clearHasCSSAnimation): Deleted.

  • dom/Node.h:
3:50 PM Changeset in webkit [267376] by Chris Dumez
  • 9 edits in trunk

Throw when AudioConnect::connect() is called for an output that has no channels
https://bugs.webkit.org/show_bug.cgi?id=216802

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline existing tests because I improved exception messages.

  • web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-expected.txt:

Source/WebCore:

Throw when AudioConnect::connect() is called for an output that has no channels, for consistency
with Blink. The ScriptProcessorNode cannot have an output node that has zero channels.

No new tests, rebaselined existing tests.

  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::connect):

LayoutTests:

  • webaudio/MediaElementAudioSource/mediaelementaudiosourcenode-expected.txt:
  • webaudio/dom-exceptions-expected.txt:

Rebaseline existing tests because I improved exception messages.

  • webaudio/ScriptProcessor/scriptprocessornode-0-output-channels-expected.txt:

Rebaseline test that is now passing.

3:29 PM Changeset in webkit [267375] by Russell Epstein
  • 1 copy in tags/Safari-610.2.7

Tag Safari-610.2.7.

3:21 PM Changeset in webkit [267374] by Karl Rackler
  • 2 edits in branches/safari-610-branch/LayoutTests

[iOS] Update fast/text/opticalFontWithTextStyle.html for iOS 14
https://bugs.webkit.org/show_bug.cgi?id=215667

Unreviewed test gardening.

  • platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt:
3:10 PM Changeset in webkit [267373] by ysuzuki@apple.com
  • 18 edits
    3 adds in trunk

[JSC] BigInt should work with Map / Set
https://bugs.webkit.org/show_bug.cgi?id=216667
JSTests:

<rdar://problem/69107221>

Reviewed by Robin Morisset.

  • stress/bigint-and-map-set.js: Added.

(shouldBe):
(opaque1n):
(testMap):
(let.set new):

  • stress/bigint-string-map-set.js: Added.

(shouldBe):
(testMap):

  • stress/bigint32-map-set.js: Added.

(shouldBe):
(testMap):

Source/JavaScriptCore:

Reviewed by Robin Morisset.

This patch makes BigInt supported in Map / Set.

  1. In NormalizeMapKey, we always attempt to convert HeapBigInt to BigInt32 (if supported). So we ensure that,

normalized BigInt has one unique form for BigInt32 range. This allows us to use hashing for BigInt32 bit pattern directly.

  1. In MapHash, for BigInt32, we directly has the JSValue bits. For HeapBigInt, we calculate hash via Hasher.
  2. In GetMapBucket, we consider HeapBigInt case correctly.
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixupNormalizeMapKey):

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

(JSC::DFG::SpeculativeJIT::compileNormalizeMapKey):

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileMapHash):
(JSC::FTL::DFG::LowerDFGToB3::compileNormalizeMapKey):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMapBucket):

  • runtime/HashMapImpl.h:

(JSC::normalizeMapKey):
(JSC::jsMapHash):
(JSC::concurrentJSMapHash):

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::concurrentHash):

  • runtime/JSBigInt.h:

(JSC::tryConvertToBigInt32):

Source/WebCore:

<rdar://problem/69107221>

Reviewed by Robin Morisset.

Strongly ensure that BigInt32 is always selected since Map / Set could use it as a key.

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readBigInt):

Source/WTF:

Reviewed by Robin Morisset.

  • wtf/Hasher.h:

(WTF::Hasher::hash const):
(WTF::add):

3:03 PM Changeset in webkit [267372] by Peng Liu
  • 2 edits in trunk/Source/WebCore

Tapping to zoom in and out causes video to become very small on some iPhone models
https://bugs.webkit.org/show_bug.cgi?id=216635

Reviewed by Jer Noble.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerLayer resolveBounds]): On some iPhone models, AVKit does not
change "bounds" of WebAVPlayerLayer after changing its video gravity. Therefore,
in this function, "modelVideoLayerFrame" and "bounds" might be the same. But we
still need to update the video layer frame in the Web process.

(-[WebAVPlayerLayer setVideoGravity:]): On some iPhone models, AVKit does
not call -[WebAVPlayerLayer:layoutSublayers] immediately after changing
the video gravity. Forcing a layout can fix that.

3:01 PM Changeset in webkit [267371] by mark.lam@apple.com
  • 21 edits in trunk/Source

Move some LLInt globals into JSC::Config.
https://bugs.webkit.org/show_bug.cgi?id=216685
rdar://68964544

Reviewed by Keith Miller.

Source/bmalloc:

Introduce ConfigAlignment to match WTFConfig.h.
Added BENABLE(UNIFIED_AND_FREEZABLE_CONFIG_RECORD) support to match WTF.

  • bmalloc/BPlatform.h:
  • bmalloc/Gigacage.cpp:

(Gigacage::ensureGigacage):

  • bmalloc/GigacageConfig.h:
  • bmalloc/mbmalloc.cpp:

Source/JavaScriptCore:

  1. Moved the following into g_jscConfig:

Data::s_exceptionInstructions ==> g_jscConfig.llint.exceptionInstructions
Data::s_wasmExceptionInstructions ==> g_jscConfig.llint.wasmExceptionInstructions
g_opcodeMap ==> g_jscConfig.llint.opcodeMap
g_opcodeMapWide16 ==> g_jscConfig.llint.opcodeMapWide16
g_opcodeMapWide32 ==> g_jscConfig.llint.opcodeMapWide32

  1. Fixed cloop.rb so that it can take an offset for the leap offlineasm instruction.
  2. Fixed x86.rb so that it can take an offset for the leap offlineasm instruction.
  3. Fixed arm.rb so that it can take an offset for the leap offlineasm instruction.

Note: arm64.rb already does this right.

  1. Added JSC::Config::singleton() to return a reference to g_jscConfig. This is useful when debugging with lldb since g_jscConfig is not an actual label, but is a macro that computes the address of the Config record.

This patch has been smoke tested on arm64e, x86_64, and cloop (on x86_64 and armv7k).

  • llint/LLIntData.cpp:

(JSC::LLInt::LLIntInitializeAssertScope::LLIntInitializeAssertScope):
(JSC::LLInt::LLIntInitializeAssertScope::~LLIntInitializeAssertScope):
(JSC::LLInt::LLIntInitializeAssertScope::assertInitializationIsAllowed):
(JSC::LLInt::initialize):

  • llint/LLIntData.h:

(JSC::LLInt::exceptionInstructions):
(JSC::LLInt::wasmExceptionInstructions):
(JSC::LLInt::opcodeMap):
(JSC::LLInt::opcodeMapWide16):
(JSC::LLInt::opcodeMapWide32):
(JSC::LLInt::getOpcode):
(JSC::LLInt::getOpcodeWide16):
(JSC::LLInt::getOpcodeWide32):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter.cpp:
  • llint/LowLevelInterpreter64.asm:
  • llint/WebAssembly.asm:
  • offlineasm/arm.rb:
  • offlineasm/cloop.rb:
  • offlineasm/x86.rb:
  • runtime/JSCConfig.cpp:

(JSC::Config::singleton):

  • runtime/JSCConfig.h:

Source/WTF:

  1. Introduce ConfigAlignment as a distinct value from ConfigSizeToProtect. This is because ConfigSizeToProtect is now larger than 1 CeilingOnPageSize on some platforms, but ConfigAlignment only needs to match CeilingOnPageSize.
  1. Introduced ENABLE(UNIFIED_AND_FREEZABLE_CONFIG_RECORD) to disable using the unified g_config record for Windows ports.

This is needed because WTF is built as a DLL on Windows. offlineasm does not
know how to resolve a DLL exported variable. Additionally, the Windows ports
have never supported freezing of the Config record to begin with. So, we're
working around this by disabling ENABLE(UNIFIED_AND_FREEZABLE_CONFIG_RECORD)
for Windows. This allows JSC to have its own g_jscConfig record, which solves
this issue for now.

  • wtf/PlatformEnable.h:
  • wtf/WTFConfig.cpp:

(WTF::Config::permanentlyFreeze):

  • wtf/WTFConfig.h:
2:45 PM Changeset in webkit [267370] by basuke.suzuki@sony.com
  • 14 edits in trunk/Source

[WinCairo][PlayStation] Support different instances of listener client.
https://bugs.webkit.org/show_bug.cgi?id=216733

Reviewed by Don Olmstead.

Source/JavaScriptCore:

Currently RemoteInspectorSocketEndpoint support one client instance for all
listeners. This patch allows listeners to create its own listener client on
accept timing.

  • inspector/remote/RemoteControllableTarget.h:
  • inspector/remote/RemoteInspector.h:
  • inspector/remote/socket/RemoteInspectorConnectionClient.cpp:

(Inspector::RemoteInspectorConnectionClient::didReceive):

  • inspector/remote/socket/RemoteInspectorConnectionClient.h:
  • inspector/remote/socket/RemoteInspectorServer.cpp:

(Inspector::RemoteInspectorServer::start):
(Inspector::RemoteInspectorServer::doAccept):

  • inspector/remote/socket/RemoteInspectorServer.h:
  • inspector/remote/socket/RemoteInspectorSocket.cpp:

(Inspector::RemoteInspector::didClose):

  • inspector/remote/socket/RemoteInspectorSocket.h:
  • inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp:

(Inspector::RemoteInspectorSocketEndpoint::RemoteInspectorSocketEndpoint):
(Inspector::RemoteInspectorSocketEndpoint::~RemoteInspectorSocketEndpoint):
(Inspector::RemoteInspectorSocketEndpoint::listenInet):
(Inspector::RemoteInspectorSocketEndpoint::workerThread):
(Inspector::RemoteInspectorSocketEndpoint::generateConnectionID):
(Inspector::RemoteInspectorSocketEndpoint::createClient):
(Inspector::RemoteInspectorSocketEndpoint::disconnect):
(Inspector::RemoteInspectorSocketEndpoint::createListener):
(Inspector::RemoteInspectorSocketEndpoint::invalidateClient):
(Inspector::RemoteInspectorSocketEndpoint::invalidateListener):
(Inspector::RemoteInspectorSocketEndpoint::getPort const):
(Inspector::RemoteInspectorSocketEndpoint::recvIfEnabled):
(Inspector::RemoteInspectorSocketEndpoint::sendIfEnabled):
(Inspector::RemoteInspectorSocketEndpoint::send):
(Inspector::RemoteInspectorSocketEndpoint::acceptInetSocketIfEnabled):

  • inspector/remote/socket/RemoteInspectorSocketEndpoint.h:

Source/WebKit:

Follows the change of RemoteInspectorSocketEndpoint::Client interface change.

No new tests because there's no behaivior change.

  • UIProcess/Inspector/socket/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::didClose):

  • UIProcess/Inspector/socket/RemoteInspectorClient.h:
2:32 PM Changeset in webkit [267369] by jiewen_tan@apple.com
  • 13 edits in trunk

[WebAuthn] Don't set the UV option if the authenticator doesn't support it
https://bugs.webkit.org/show_bug.cgi?id=215836
<rdar://problem/67817359>

Reviewed by Darin Adler.

Source/WebCore:

Covered by new API tests.

UV in the the CTAP 2.0 spec only means internal UV:
https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorGetInfo

If an authenticator supports ClientPin, it can set the uv bit in the responses to true but it
will not advertise itself supporting internal UV, which is the uv in the options.
https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorMakeCredential

Hence, setting it to true could result in error if the authenticator doesn't support internal UV even if it supports ClientPin.
It's not a way to ask the authenticator to set the uv bit in the response.

  • Modules/webauthn/fido/DeviceRequestConverter.cpp:

(fido::encodeMakeCredenitalRequestAsCBOR):
(fido::encodeGetAssertionRequestAsCBOR):

Tools:

  • TestWebKitAPI/Tests/WebCore/CtapRequestTest.cpp:

(TestWebKitAPI::TEST):

LayoutTests:

  • http/wpt/webauthn/public-key-credential-create-failure-hid-silent.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-hid.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-hid-silent.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-hid.https.html:
2:20 PM Changeset in webkit [267368] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitpy] Use webkitcorepy's auto installer for moz* packages
https://bugs.webkit.org/show_bug.cgi?id=215889
<rdar://problem/67877935>

Rubber-stamped by Aakash Jain.

  • Scripts/webkitpy/init.py: Add mozprocess, mozlog and mozterm to AutoInstalled packages.
  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook.find_module): Remove mozlog and mozprocess.
(AutoinstallImportHook._install_mozlog): Deleted.
(AutoinstallImportHook._install_mozprocess): Deleted.

  • Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py: Implicitly use webkitcorepy's auto-installer.
2:17 PM Changeset in webkit [267367] by Chris Dumez
  • 6 edits in trunk

AudioParam.exponentialRampToValueAtTime() does not properly deal with negative values
https://bugs.webkit.org/show_bug.cgi?id=216790

Reviewed by Eric Carlson.

Source/WebCore:

AudioParam.exponentialRampToValueAtTime() does not properly deal with negative values.
The specification [1] says:
"If V0 and V1 have opposite signs or if V0 is zero, then v(t) = V0 for T0 <= t < T1."

Our implementation did not match the specification and would just special-case if either
V0 or V1 was negative.

[1] https://www.w3.org/TR/webaudio/#dom-audioparam-exponentialramptovalueattime

No new tests, rebaselined existing test.

  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::valuesForTimeRangeImpl):

LayoutTests:

Rebaseline test that is now passing.

  • webaudio/AudioParam/audioparam-negative-exponentialRamp-expected.txt:
1:57 PM Changeset in webkit [267366] by youenn@apple.com
  • 7 edits
    2 adds in trunk

[iOS] MediaRecorder incorrect screen orientation handling
https://bugs.webkit.org/show_bug.cgi?id=198912
<rdar://problem/51802521>

Reviewed by Eric Carlson.

Source/WebCore:

Update MediaRecorderPrivateWriterCocoa to pass a MediaSample down to handle rotation.
Set AVAssetWriterInput transform according the first MediaSample rotation value.

Test: http/wpt/mediarecorder/video-rotation.html

  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:

(WebCore::MediaRecorderPrivateAVFImpl::videoSampleAvailable):

  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(WebCore::MediaRecorderPrivateWriter::appendVideoSampleBuffer):

Source/WebKit:

  • GPUProcess/webrtc/RemoteMediaRecorder.cpp:

(WebKit::RemoteMediaRecorder::videoSampleAvailable):

LayoutTests:

  • http/wpt/mediarecorder/video-rotation-expected.txt: Added.
  • http/wpt/mediarecorder/video-rotation.html: Added.
1:55 PM Changeset in webkit [267365] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitpy] Use webkitcorepy's auto installer for six
https://bugs.webkit.org/show_bug.cgi?id=215770
<rdar://problem/67683133>

Rubber-stamped by Aakash Jain.

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook._install_mechanize): Remove six.
(AutoinstallImportHook._install_pytest): Ditto.
(AutoinstallImportHook._install_six): Deleted.

1:41 PM Changeset in webkit [267364] by keith_miller@apple.com
  • 56 edits in trunk/Source

Functions should consistently enumerate length before name
https://bugs.webkit.org/show_bug.cgi?id=216789

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

In https://github.com/tc39/ecma262/pull/2116, which has been
approved to be merged into the main JS spec, it's expected that
all functions should have their length property enumerated before
the name property. To ensure this invariant, this patch moves the
length set into InternalFunction::finishCreation.

There are no new tests since tests will be added to test262 when
the spec PR is merged. Adding tests to stress just means we will
have the same test twice, which seems like a waste.

  • API/JSCallbackFunction.cpp:

(JSC::JSCallbackFunction::finishCreation):

  • API/ObjCCallbackFunction.mm:

(JSC::ObjCCallbackFunction::create):

  • API/glib/JSCCallbackFunction.cpp:

(JSC::JSCCallbackFunction::create):

  • runtime/AggregateErrorConstructor.cpp:

(JSC::AggregateErrorConstructor::finishCreation):

  • runtime/ArrayConstructor.cpp:

(JSC::ArrayConstructor::finishCreation):

  • runtime/AsyncFunctionConstructor.cpp:

(JSC::AsyncFunctionConstructor::finishCreation):

  • runtime/AsyncGeneratorFunctionConstructor.cpp:

(JSC::AsyncGeneratorFunctionConstructor::finishCreation):

  • runtime/BigIntConstructor.cpp:

(JSC::BigIntConstructor::finishCreation):

  • runtime/BooleanConstructor.cpp:

(JSC::BooleanConstructor::finishCreation):

  • runtime/DateConstructor.cpp:

(JSC::DateConstructor::finishCreation):

  • runtime/ErrorConstructor.cpp:

(JSC::ErrorConstructor::finishCreation):

  • runtime/FinalizationRegistryConstructor.cpp:

(JSC::FinalizationRegistryConstructor::finishCreation):

  • runtime/FunctionConstructor.cpp:

(JSC::FunctionConstructor::finishCreation):

  • runtime/FunctionPrototype.cpp:

(JSC::FunctionPrototype::finishCreation):

  • runtime/GeneratorFunctionConstructor.cpp:

(JSC::GeneratorFunctionConstructor::finishCreation):

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::finishCreation):
(JSC::InternalFunction::createFunctionThatMasqueradesAsUndefined):

  • runtime/InternalFunction.h:
  • runtime/IntlCollatorConstructor.cpp:

(JSC::IntlCollatorConstructor::finishCreation):

  • runtime/IntlDateTimeFormatConstructor.cpp:

(JSC::IntlDateTimeFormatConstructor::finishCreation):

  • runtime/IntlDisplayNamesConstructor.cpp:

(JSC::IntlDisplayNamesConstructor::finishCreation):

  • runtime/IntlLocaleConstructor.cpp:

(JSC::IntlLocaleConstructor::finishCreation):

  • runtime/IntlNumberFormatConstructor.cpp:

(JSC::IntlNumberFormatConstructor::finishCreation):

  • runtime/IntlPluralRulesConstructor.cpp:

(JSC::IntlPluralRulesConstructor::finishCreation):

  • runtime/IntlRelativeTimeFormatConstructor.cpp:

(JSC::IntlRelativeTimeFormatConstructor::finishCreation):

  • runtime/IntlSegmenterConstructor.cpp:

(JSC::IntlSegmenterConstructor::finishCreation):

  • runtime/JSArrayBufferConstructor.cpp:

(JSC::JSGenericArrayBufferConstructor<sharingMode>::finishCreation):

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::JSGenericTypedArrayViewConstructor<ViewClass>::finishCreation):

  • runtime/JSTypedArrayViewConstructor.cpp:

(JSC::JSTypedArrayViewConstructor::finishCreation):

  • runtime/MapConstructor.cpp:

(JSC::MapConstructor::finishCreation):

  • runtime/NativeErrorConstructor.cpp:

(JSC::NativeErrorConstructorBase::finishCreation):

  • runtime/NullGetterFunction.h:
  • runtime/NullSetterFunction.h:
  • runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::finishCreation):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::finishCreation):

  • runtime/ProxyConstructor.cpp:

(JSC::ProxyConstructor::finishCreation):

  • runtime/ProxyRevoke.cpp:

(JSC::ProxyRevoke::finishCreation):

  • runtime/RegExpConstructor.cpp:

(JSC::RegExpConstructor::finishCreation):

  • runtime/SetConstructor.cpp:

(JSC::SetConstructor::finishCreation):

  • runtime/StringConstructor.cpp:

(JSC::StringConstructor::finishCreation):

  • runtime/SymbolConstructor.cpp:

(JSC::SymbolConstructor::finishCreation):

  • runtime/WeakMapConstructor.cpp:

(JSC::WeakMapConstructor::finishCreation):

  • runtime/WeakObjectRefConstructor.cpp:

(JSC::WeakObjectRefConstructor::finishCreation):

  • runtime/WeakSetConstructor.cpp:

(JSC::WeakSetConstructor::finishCreation):

  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::WebAssemblyCompileErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyGlobalConstructor.cpp:

(JSC::WebAssemblyGlobalConstructor::finishCreation):

  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::WebAssemblyInstanceConstructor::finishCreation):

  • wasm/js/WebAssemblyLinkErrorConstructor.cpp:

(JSC::WebAssemblyLinkErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::WebAssemblyMemoryConstructor::finishCreation):

  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::WebAssemblyModuleConstructor::finishCreation):

  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:

(JSC::WebAssemblyRuntimeErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::WebAssemblyTableConstructor::finishCreation):

Source/WebCore:

RuntimeMethod inherits from InternalFunction which now sets length by default.
RuntimeMethod intercepts length in getOwnPropertySlot so the value we pick
doesn't actually matter. Technically, this uses a little extra memory but
that's not too big of a deal because RuntimeMethod's are rare (and I believe
deprecated).

  • bridge/runtime_method.cpp:

(JSC::RuntimeMethod::finishCreation):

Source/WebKit:

JSNPMethod inherits from InternalFunction which now sets length by default.
I chose 0 because it looks like this function doesn't directly look at any
arguments and I doubt anyone is looking at the length anyway.

  • WebProcess/Plugins/Netscape/JSNPMethod.cpp:

(WebKit::JSNPMethod::finishCreation):

1:28 PM Changeset in webkit [267363] by Darin Adler
  • 41 edits in trunk/Source

Next step towards eliminating deprecated legacy positions
https://bugs.webkit.org/show_bug.cgi?id=216751

Reviewed by Sam Weinig.

Source/WebCore:

Eliminating our old deprecated legacy editing positions is probably a relatively long
road. This next step starts using the makeContainerOffsetPosition function in more
places, requesting that we not use any of the deprecated legacy position logic. Also
renames createLegacyEditingPosition to makeDeprecatedLegacyPosition. The hard part of
this project will be removing code that is not inside Position that depends on the old
style of position/offset pairs. For this patch, tried to stick to converting cases
where it seems clear we don't depend on the legacy behavior. Flaw in that is that we
might still depend on legacy behavior where it's unconditionally implemented, without
checking the flag on the m_isLegacyEditingPosition Position class; that will be a
problem long term, should not be in this patch.

  • dom/Position.h:

(WebCore::createLegacyEditingPosition): Deleted.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::visiblePositionForTextMarkerData):
(WebCore::AXObjectCache::rangeMatchesTextNearRange):
(WebCore::AXObjectCache::visiblePositionFromCharacterOffset):
(WebCore::AXObjectCache::localCaretRectForCharacterOffset):
(WebCore::AXObjectCache::indexForCharacterOffset):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::stringForRange const):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::linkClickPoint):
(WebCore::AccessibilityRenderObject::setSelectedTextRange):
(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange const):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:spellCheck:]):

  • dom/Position.cpp:

(WebCore::Position::previous const):
(WebCore::Position::next const):
(WebCore::Position::downstream const):

  • dom/PositionIterator.cpp:

(WebCore::PositionIterator::operator Position const):

  • dom/Range.cpp:

(WebCore::Range::expand):

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::applyAutocorrectionBeforeTypingIfAppropriate):
(WebCore::AlternativeTextController::processMarkersOnTextToBeReplacedByResult):
(WebCore::AlternativeTextController::applyAlternativeTextToRange):

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyBlockStyle):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::handleGeneralDelete):

  • editing/Editing.cpp:

(WebCore::visiblePositionForIndex):
(WebCore::visiblePositionForIndexUsingCharacterIterator):
(WebCore::isNodeVisiblyContainedWithin):

  • editing/Editor.cpp:

(WebCore::Editor::canDeleteRange const):
(WebCore::Editor::selectComposition):
(WebCore::Editor::advanceToNextMisspelling):
(WebCore::Editor::markAndReplaceFor):
(WebCore::Editor::firstRectForRange const):
(WebCore::extendSelection):
(WebCore::Editor::adjustedSelectionRange):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::elementRangeContainingCaretSelection const):

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::doApplyForSingleParagraph):

  • editing/RenderedPosition.cpp:

(WebCore::RenderedPosition::positionAtLeftBoundaryOfBiDiRun const):
(WebCore::RenderedPosition::positionAtRightBoundaryOfBiDiRun const):

  • editing/TextCheckingHelper.cpp:

(WebCore::expandToParagraphBoundary):
(WebCore::TextCheckingParagraph::expandRangeToNextEnd):
(WebCore::TextCheckingHelper::findFirstMisspelledWordOrUngrammaticalPhrase const):

  • editing/TextIterator.cpp:

(WebCore::resolveCharacterRange):

  • editing/VisiblePosition.cpp:

(WebCore::VisiblePosition::leftVisuallyDistinctCandidate const):
(WebCore::VisiblePosition::rightVisuallyDistinctCandidate const):

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::appendTrailingWhitespace):

  • editing/VisibleUnits.cpp:

(WebCore::previousRootInlineBoxCandidatePosition):
(WebCore::nextRootInlineBoxCandidatePosition):
(WebCore::previousBoundary):
(WebCore::nextBoundary):
(WebCore::startOfDocument):
(WebCore::endOfDocument):
(WebCore::closestWordBoundaryForPosition):
(WebCore::wordBoundaryForPositionWithoutCrossingLine):

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverter::HTMLConverter):

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::setTextAsChildOfElement):

  • editing/markup.cpp:

(WebCore::serializePreservingVisualAppearance):
(WebCore::contextPreservesNewline):
(WebCore::createFragmentFromText):

  • page/DragController.cpp:

(WebCore::DragController::insertDroppedImagePlaceholdersAtCaret):

  • page/Page.cpp:

(WebCore::Page::replaceRangesWithText):

  • page/ios/FrameIOS.mm:

(WebCore::Frame::interpretationsForCurrentRoot const):

  • platform/DragImage.cpp:

(WebCore::createDragImageForRange):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::positionForBox const):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::createVisiblePosition const):
(WebCore::RenderObject::collectSelectionRectsInternal):

  • testing/Internals.cpp:

(WebCore::Internals::setSelectionWithoutValidation):
Replaced calls to createLegacyEditingPosition with calls to
makeDeprecatedLegacyPosition or makeContainerOffsetPosition.

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::selectWithGesture):
(WebKit::WebPage::extendSelection):
(WebKit::WebPage::updateSelectionWithExtentPointAndBoundary):
(WebKit::WebPage::requestAutocorrectionData):
(WebKit::WebPage::applyAutocorrectionInternal):
(WebKit::focusedElementPositionInformation):
(WebKit::dataDetectorLinkPositionInformation):
(WebKit::WebPage::requestDocumentEditingContext):
Replaced calls to createLegacyEditingPosition with calls to
makeDeprecatedLegacyPosition or makeContainerOffsetPosition.

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebVisiblePosition.mm:

(-[DOMNode startPosition]):
(-[DOMNode endPosition]):
Replaced calls to createLegacyEditingPosition with calls to
makeDeprecatedLegacyPosition or makeContainerOffsetPosition.

Source/WebKitLegacy/mac:

  • DOM/DOMUIKitExtensions.mm:

(-[DOMNode rangeOfContainingParagraph]):

  • WebView/WebFrame.mm:

(-[WebFrame spaceFollowsWordInRange:]):
(-[WebFrame caretRectAtNode:offset:affinity:]):
(-[WebFrame focusedNodeHasContent]):
Replaced calls to createLegacyEditingPosition with calls to
makeDeprecatedLegacyPosition or makeContainerOffsetPosition.

1:23 PM Changeset in webkit [267362] by Darin Adler
  • 6 edits in trunk

Selection API: A few more refinements to DOMSelection and VisibleSelection to pass all WPT tests
https://bugs.webkit.org/show_bug.cgi?id=216756

Reviewed by Ryosuke Niwa.

Source/WebCore:

After these changes, we pass all the tests in imported/w3c/web-platform-tests/selection
with no failures except for one due to the rules about absorbing newlines at the start
and end <style> and <script> elements.

However, that's with the live selection range feature enabled, and there are likely issues
with other tests in that mode, so that testing still needs to be done. Then we also have to
decide how we are going to deal with the compatibility risk of changing the behavior to
match the standard.

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::VisibleSelection): Updated to rename m_baseIsFirst to
m_anchorIsFirst. Not required for the fix, but helpful for clarity.
(WebCore::VisibleSelection::uncanonicalizedStart const): Ditto.
(WebCore::VisibleSelection::uncanonicalizedEnd const): Ditto.
(WebCore::VisibleSelection::setBaseAndExtentToDeepEquivalents): Compute whether
the anchor is first *before* canonicalization, otherwise we will reverse the two
if their canonical values are equal. Canonicalization is not allowed to change
the ordering other than making two values equal.
(WebCore::VisibleSelection::validate): Updated for name.
(WebCore::VisibleSelection::setWithoutValidation): Ditto, also tweaked other names in the
function and removed an if statement.
(WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries): Ditto.
(WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries): Ditto.

  • editing/VisibleSelection.h: Renamed m_baseIsFirst to m_anchorIsFirst and improved the

comment about m_isDirectional.

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::anchorPosition const): Removed use of parentAnchoredEquivalent.
The name makes it sound like it would be useful, but really it just triggers some
editing behaviors that don't belong in Position code.
(WebCore::DOMSelection::focusPosition const): Ditto.
(WebCore::DOMSelection::basePosition const): Ditto.
(WebCore::DOMSelection::extentPosition const): Ditto.
(WebCore::DOMSelection::collapse): Reversed the order of the document check and the
check for invalid nodes and offsets. There are some inconsistencies between the
specification and WPT but for now matching WPT seems like the way to go.
(WebCore::DOMSelection::setBaseAndExtent): Ditto.
(WebCore::DOMSelection::extend): Use VisibleSelection::setExtent, which does exactly
what we want, rather than FrameSelection::setExtent, which does not. In the future
we may want to cut down on the number of subtly-different selection functions,
like these two, but for now this fixes this DOM method to work as specified.

LayoutTests:

  • editing/inserting/insert-list-in-table-cell-07-expected.txt: Updated results

for a slight change in where the insertion point ends up. This is neither a
progression nor a regression, but this is also a very strange edge case. It
would be better at some point to enhance the editing code so the selection stays
intact, which I think means that the entire table body would be selected, but
the current behavior, before this patch and after, yields an insertion point.

1:22 PM Changeset in webkit [267361] by Chris Dumez
  • 9 edits in trunk

Remove emphasis/de-emphasis filters from DynamicsCompressor
https://bugs.webkit.org/show_bug.cgi?id=216796

Reviewed by Darin Adler.

Source/WebCore:

Remove emphasis/de-emphasis filters from DynamicsCompressor as these have been removed
from the specification.

This is a merge of the following Blink change:

No new tests, rebaselined existing tests.

  • platform/audio/DynamicsCompressor.cpp:

(WebCore::DynamicsCompressor::DynamicsCompressor):
(WebCore::DynamicsCompressor::process):
(WebCore::DynamicsCompressor::reset):
(WebCore::DynamicsCompressor::setNumberOfChannels):

  • platform/audio/DynamicsCompressor.h:
  • platform/audio/DynamicsCompressorKernel.cpp:

(WebCore::DynamicsCompressorKernel::process):
(WebCore::DynamicsCompressorKernel::tailTime const):

  • platform/audio/DynamicsCompressorKernel.h:

LayoutTests:

Rebaseline tests that are now passing.

  • webaudio/AudioParam/audioparam-processing-expected.txt:
  • webaudio/DynamicsCompressor/dynamicscompressor-clear-internal-state-expected.txt:
  • webaudio/DynamicsCompressor/dynamicscompressor-simple-expected.txt:
1:08 PM Changeset in webkit [267360] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Timelines: remove "stop requested" marker
https://bugs.webkit.org/show_bug.cgi?id=216423

Patch by Patrick Angle <Patrick Angle> on 2020-09-21
Reviewed by Devin Rousso.

Removed the "Stop Requested" timeline marker, which was made unneccesary in r267038 which makes the recording
head marker stop at the moment the stop was requested, even if more time is required to complete the processing
of incoming data.

  • UserInterface/Models/TimelineMarker.js:
  • UserInterface/Views/TimelineOverview.js:

(WI.TimelineOverview):
(WI.TimelineOverview.prototype._recordingReset):
(WI.TimelineOverview.prototype._handleTimelineCapturingStateChanged):

  • UserInterface/Views/TimelineRuler.css:

(.timeline-ruler > .markers > .marker.current-time::after):
(.timeline-ruler > .markers > .marker.stopping-time): Deleted.
(.timeline-ruler > .markers > .marker:matches(.stopping-time, .current-time)::after): Deleted.
(@media (prefers-color-scheme: dark) .timeline-ruler > .markers > .marker.stopping-time): Deleted.

  • UserInterface/Views/TimelineRuler.js:

(WI.TimelineRuler.prototype.addMarker):

1:07 PM Changeset in webkit [267359] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Adjust the human readable names some GPU process internal feature flags
https://bugs.webkit.org/show_bug.cgi?id=216794

Reviewed by Darin Adler.

Change the human readable names so that all the GPU-process-specific internal features start are of the form
"Use GPU Process…".

  • Shared/WebPreferencesInternal.yaml:
1:02 PM Changeset in webkit [267358] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

Enable AddressSanitizer in C++ std library templates
<https://webkit.org/b/216746>

Reviewed by Darin Adler.

This change also prevents duplicate command-line switches from
being passed to clang since OTHER_CFLAGS is used when compiling
C++ sources.

  • sanitizer/asan.xcconfig:

(WK_SANITIZER_OTHER_CPLUSPLUSFLAGS_YES): Add.

  • Undefines _LIBCPP_HAS_NO_ASAN macro to enable ASan for C++ std library templates.
  • sanitizer/sanitizer.xcconfig:

(WK_SANITIZER_OTHER_CPLUSPLUSFLAGS_YES): Add.

  • Provide placeholder.

(OTHER_CPLUSPLUSFLAGS):

  • Switch from WK_SANITIZER_OTHER_CFLAGS_ prefix to WK_SANITIZER_OTHER_CPLUSPLUSFLAGS_ prefix.
12:51 PM Changeset in webkit [267357] by Chris Dumez
  • 14 edits
    2 deletes in trunk

Vectorize linearRampToValueAtTime processing in AudioParamTimeline
https://bugs.webkit.org/show_bug.cgi?id=216788

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-linearRampToValueAtTime-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-automation-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/realtime-conv-expected.txt:

Source/WebCore:

Vectorize linearRampToValueAtTime processing in AudioParamTimeline. This patch is based on
the Blink implementation at [1] but updated to use VectorMath to work on more platforms.

We were failing some tests due to precision issues in our linearRampToValueAtTime implementation.
Those tests are now passing since our implementation matches Blink's more closely.

[1] https://github.com/chromium/chromium/blob/master/third_party/blink/renderer/modules/webaudio/audio_param_timeline.cc

No new tests, rebaselined existing tests.

  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
(WebCore::AudioParamTimeline::processLinearRamp):

  • Modules/webaudio/AudioParamTimeline.h:

LayoutTests:

  • webaudio/AudioParam/audioparam-cancel-and-hold-expected.txt:
  • webaudio/AudioParam/audioparam-negative-exponentialRamp-expected.txt:
  • webaudio/AudioParam/audioparam-setTargetAtTime-continuous-expected.txt:

Rebaseline existing tests now that more checks are passing.

  • webaudio/audioparam-linearRampToValueAtTime-expected.txt: Removed.
  • webaudio/audioparam-linearRampToValueAtTime.html: Removed.

Drop outdated test. This test was imported into WPT and now resides at:

  • imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-linearRampToValueAtTime.html
12:34 PM Changeset in webkit [267356] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.30.1

WPE WebKit 2.30.1

12:34 PM Changeset in webkit [267355] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.30

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

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.30.1.
12:31 PM Changeset in webkit [267354] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests/imported/w3c

Increase the maximum number of open files for wpt's servers
https://bugs.webkit.org/show_bug.cgi?id=215829

Patch by Sam Sneddon <Sam Sneddon> on 2020-09-21
Reviewed by Youenn Fablet.

macOS has a much lower limits than other OSes by default, and the iOS bots often run into it with their level of parallel test execution. This bumps the limit for each wptserve process up to 2048, which is double the limit on Debian, and should probably be safe.

  • web-platform-tests/tools/serve/serve.py:

(ServerProc.create_daemon):

12:18 PM Changeset in webkit [267353] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Make ews-app robust against config.json issues (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=216705

Unreviewed follow-up fix to change a log statement.

  • BuildSlaveSupport/ews-app/ews/common/buildbot.py:

(Buildbot.update_icons_for_queues_mapping):

12:17 PM Changeset in webkit [267352] by James Savage
  • 3 edits
    2 adds in trunk/Source/WebKit

WKWebView Swift overlay has mis-annotated nullability for evaluateJavaScript
<http://webkit.org/b/216198>
<rdar://problem/68035950>

Reviewed by Darin Adler.

Due to a mistranslation of evaluateJavaScript, we are vending an API which does not expect
to receive nil as a valid result value. This change fixes the crash, but does not yet fix
the API to have the correct signature. That will come in a later patch.

To fix the crash, we need to produce a valid Result<Any, Error> to pass back to clients.
Fortunately, instead of inventing something clever, we can just use nil. It's valid to box
optional values into Any, and clients can technically retrieve them with the right dynamic cast
as well. Since client code must be using dynamic casting to convert the result Any to a usable
type, and because in the case where we now return a new value at runtime we would have previously
crashed, this shouldn't have any binary compatibility impact either.

To better validate these changes, I also add new unit tests for the conversion of JavaScript
results into Swift values, including a test for the deprecated API.

  • SwiftOverlay/SwiftOverlay/ObjectiveCBlockConversions.swift: Added. For clarity I'm factoring

helper methods into a single namespace, as it also makes a nice place to document their expectations.
(ObjectiveCBlockConversion.exclusive.exclusive(_:)): This is renamed from the free function,

makeResultHandler(_:). It still has the same fatalError (now precondition) as before, but
hopefully a better name to clarify that it expects exactly-one value.

(ObjectiveCBlockConversions.boxingNilAsAnyForCompatibility(_:)): This is a variant of exclusive(_:)

that makes the tradeoff of boxing any nil values as Any to avoid crashing. This is still safe,
since as mentioned our clients will need to cast the value they recieve to do anything with it,
and since the deprecated API expects Any, no one could have been successfully comparing it
to nil today anyways.

  • SwiftOverlay/Tests/JavaScriptToSwiftTypeConversions.swift: Added.

(JavaScriptToSwiftConversions.setUp): Construct a new web view, and add it to a window so that it is

in an expected state. I'm using about:blank as the URL, since page content doesn't matter for
these tests and I want the web content to be ready immediately.

(JavaScriptToSwiftConversions.tearDown): Just perform some window cleanup.
(JavaScriptToSwiftConversions.evaluateJavaScript(_:andExpect:)): Helper method to evaluate script and

check its result. I'm using String.debugDescription because it escapes quotes and special characters
which makes the readout easier to parse.

(JavaScriptToSwiftConversions.testNull): JavaScript's null is actually mapped to NSNull, not nil.
(JavaScriptToSwiftConversions.testInteger): Some standard type coercion tests. The underlying value for

all number types should be NSNumber, so this is actually check against a float or integer type
without issue.

(JavaScriptToSwiftConversions.testDecimal): Ditto.
(JavaScriptToSwiftConversions.testBoolean): Ditto.
(JavaScriptToSwiftConversions.testString): Ditto.
(JavaScriptToSwiftConversions.testArray): Ditto.
(JavaScriptToSwiftConversions.testDictionary): Ditto, only you can't evaluate an object literal directly

so I need to store it in a temporary location first.

(JavaScriptToSwiftConversions.testUndefined): Test our boxing of nil. The exact value matters less than

not crashing at all.

  • SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj: Added new files to project. I kept the

new test file and helper files within the SwiftOverlay group, because they do not contribute any API.

  • UIProcess/API/Cocoa/WebKitSwiftOverlay.swift:

(WKWebView.callAsyncJavaScript(_:arguments:in:in:completionHandler:)): Switch to a conversion which does

not trap on nil.

(WKWebView.createPDF(_:completionHandler:)): Updated to use new helper method name.
(WKWebView.createWebArchiveData(_:)): Ditto.
(WKWebView.evaluateJavaScript(_:in:in:completionHandler:Error:)): See above.
(makeResultHandler(_:): This has been subsumed by ObjCBlockConversions.

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

[GTK][WPE] WKTR has lost access to Pulseaudio
https://bugs.webkit.org/show_bug.cgi?id=216745

Patch by Philippe Normand <pnormand@igalia.com> on 2020-09-21
Reviewed by Carlos Garcia Campos.

Let Pulseaudio env vars pass through in the test environment, this is specially needed when
the test harness runs in the Flatpak sandbox.

  • Scripts/webkitpy/port/gtk.py:

(GtkPort.setup_environ_for_server):

  • Scripts/webkitpy/port/wpe.py:

(WPEPort.setup_environ_for_server):

11:58 AM Changeset in webkit [267350] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[GTK][WPE] Missing support for multi-word $WEBKIT_MINI_BROWSER_PREFIX
https://bugs.webkit.org/show_bug.cgi?id=216604

Patch by Philippe Normand <pnormand@igalia.com> on 2020-09-21
Reviewed by Adrian Perez de Castro.

Gracefully handle cases where the env var contains multiple words, by splitting its contents
to a list and inserting it at the beginning of the final minibrowser command.

  • Scripts/webkitpy/port/gtk.py:

(GtkPort.run_minibrowser):

  • Scripts/webkitpy/port/wpe.py:

(WPEPort.run_minibrowser):

11:56 AM Changeset in webkit [267349] by Chris Dumez
  • 6 edits in trunk

AnalyserNode's getByteFrequencyData() / getFloatFrequencyData() should only do FFT analysis once per render quantum
https://bugs.webkit.org/show_bug.cgi?id=216735

Reviewed by Darin Adler.

Source/WebCore:

AnalyserNode's getByteFrequencyData() / getFloatFrequencyData() should only do FFT analysis once per render quantum:

"""
If another call to getByteFrequencyData() or getFloatFrequencyData() occurs within the same render quantum as a
previous call, the current frequency data is not updated with the same data. Instead, the previously computed data
is returned.
"""

No new tests, rebaselined existing test.

  • Modules/webaudio/RealtimeAnalyser.cpp:

(WebCore::RealtimeAnalyser::writeInput):
(WebCore::RealtimeAnalyser::doFFTAnalysisIfNecessary):
(WebCore::RealtimeAnalyser::getFloatFrequencyData):
(WebCore::RealtimeAnalyser::getByteFrequencyData):

  • Modules/webaudio/RealtimeAnalyser.h:

LayoutTests:

Rebaseline webaudio tests now that more checks are passing.

  • webaudio/Analyser/realtimeanalyser-freq-data-smoothing-expected.txt:
  • webaudio/Analyser/realtimeanalyser-multiple-calls-expected.txt:
11:28 AM Changeset in webkit [267348] by ysuzuki@apple.com
  • 5 edits
    1 add in trunk

[JSC] Proxy should be trapped if base value is primitive
https://bugs.webkit.org/show_bug.cgi?id=216764

Reviewed by Darin Adler.

JSTests:

  • stress/proxy-trap-in-primitive.js: Added.

(shouldBe):

  • test262/expectations.yaml:

Source/JavaScriptCore:

While we have special care in JSObject::putInline etc., we missed it in JSValue::putToPrimitive.
So, if proxy exists in the prototype chain for the primitive values (e.g. StringPrototype -> Proxy chain),
we miss the Proxy trap. We should have ProxyObject special check in JSValue::putToPrimitive too.

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::putToPrimitive):

9:13 AM Changeset in webkit [267347] by graouts@webkit.org
  • 4 edits in trunk/Source/WebCore

Remove dedicated HashSet<Element*> for DocumentTimeline::runningAnimationsForElementAreAllAccelerated()
https://bugs.webkit.org/show_bug.cgi?id=216775

Reviewed by Antti Koivisto.

  • animation/AnimationTimeline.h:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::detachFromDocument):
(WebCore::DocumentTimeline::animationAcceleratedRunningStateDidChange):
(WebCore::DocumentTimeline::runningAnimationsForElementAreAllAccelerated const):
(WebCore::DocumentTimeline::animationWasAddedToElement): Deleted.
(WebCore::DocumentTimeline::animationWasRemovedFromElement): Deleted.
(WebCore::DocumentTimeline::updateListOfElementsWithRunningAcceleratedAnimationsForElement): Deleted.

  • animation/DocumentTimeline.h:
8:34 AM Changeset in webkit [267346] by Chris Dumez
  • 5 edits in trunk

AnalyserNode should downmix input audio to mono
https://bugs.webkit.org/show_bug.cgi?id=216736

Reviewed by Sam Weinig.

Source/WebCore:

AnalyserNode should downmix input audio to mono:

This patch is based on the following Blink change:

No new tests, rebaselined existing test.

  • Modules/webaudio/RealtimeAnalyser.cpp:

(WebCore::RealtimeAnalyser::RealtimeAnalyser):
(WebCore::RealtimeAnalyser::writeInput):

  • Modules/webaudio/RealtimeAnalyser.h:

LayoutTests:

Rebaseline test now that more checks are passing.

  • webaudio/Analyser/realtimeanalyser-downmix-expected.txt:
8:11 AM Changeset in webkit [267345] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

REGRESSION (r257839): Can't add a memo when transferring funds in First Tech Credit Union App
https://bugs.webkit.org/show_bug.cgi?id=216754
<rdar://problem/67045862>

Reviewed by Antti Koivisto.

Source/WebCore:

After r257839, attempting to add a memo by tapping on a text box in the First Tech Credit Union app on iOS fails
to cause the text box (a textarea element) to be focused. This is because the textarea is initially hidden
away in a display: none; parent container, which becomes display: block; immediately before focus() is
called from the page's script.

Augment the mechanism added in r266887, so that we avoid consulting stale computed styles when checking for
hidden ancestors in Element::isVisibleWithoutResolvingFullStyle(). To do this, we pull logic to get or compute
the RenderStyle for the current element or one of its composed ancestors (which respects
IsComputedStyleInvalidFlag) into a lambda function, and use this lambda function below, when we walk up the
ancestor chain in search of a hidden element.

Note that in Speedometer 2.0, this change does not have any significant impact on the number of partial (i.e.
RenderedOnly) style resolutions we attempt to perform underneath Element::resolveComputedStyle (a little
over 3000 before and after this change).

Test: fast/forms/programmatic-focus-after-displaying-parent.html

  • dom/Element.cpp:

(WebCore::Element::isVisibleWithoutResolvingFullStyle const):

LayoutTests:

Add a new layout test to exercise the bug by programmatically focusing a textarea element that was just shown by
setting display: block; on a parent container that was previously display: none;.

  • fast/forms/programmatic-focus-after-displaying-parent-expected.txt: Added.
  • fast/forms/programmatic-focus-after-displaying-parent.html: Added.
7:57 AM Changeset in webkit [267344] by Kate Cheney
  • 6 edits in trunk

Allow about:blank subframe loads for non app-bound top frames
https://bugs.webkit.org/show_bug.cgi?id=216715
<rdar://problem/69070720>

Reviewed by Darin Adler.

Source/WebKit:

In the original implementation of App Bound Domains, any loads using
certain protocols like about: were automatically considered app-bound.
When a subframe loads about:blank for example, this forces web views
into app-bound mode even if the top frame is not app-bound, which
should not be the case.

These special protocols inherit security origins from their top-frame
loads, so we can refer to those to determine whether subframe loads
should be considered app-bound. For about: loads in a main frame there
is no behavior change and WKWebViews will still automatically be considered
app-bound in this case.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomainAndCheckIfPermitted):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
Refer to the security origin if the subframe load is one of the
special protocols caught by the shouldTreatURLProtocolAsAppBound() function.

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::schemeOrDomainIsAppBound):
(WebKit::WebsiteDataStore::beginAppBoundDomainCheck):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

Two new tests for about:blank loaded under an app-bound domain and
non-app bound domain respectively. Tests that the subframe load
has the same app-bound status as the parent frame by testing script
injection powers.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

Fixed two test names that didn't make sense.

(-[InAppBrowserSchemeHandler webView:startURLSchemeTask:]):
(TEST):

6:49 AM Changeset in webkit [267343] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][BFC] Move hasClearance out of BoxGeometry
https://bugs.webkit.org/show_bug.cgi?id=216757

Reviewed by Antti Koivisto.

Do not cache the hasClearance state in BoxGeometry.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeVerticalPositionForFloatClear):
(WebCore::Layout::BlockFormattingContext::verticalPositionWithMargin const):

  • layout/blockformatting/BlockFormattingState.h:

(WebCore::Layout::BlockFormattingState::setHasClearance):
(WebCore::Layout::BlockFormattingState::clearClearance):
(WebCore::Layout::BlockFormattingState::hasClearance const):

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::hasClearance const):

  • layout/layouttree/LayoutBoxGeometry.cpp:

(WebCore::Layout::BoxGeometry::BoxGeometry):

  • layout/layouttree/LayoutBoxGeometry.h:

(WebCore::Layout::BoxGeometry::hasClearance const): Deleted.
(WebCore::Layout::BoxGeometry::setHasClearance): Deleted.

6:34 AM Changeset in webkit [267342] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] Remove unused EscapeReason::StrokeOverflowNeedsViewportGeometry
https://bugs.webkit.org/show_bug.cgi?id=216759

Reviewed by Antti Koivisto.

This escape reason was used to read ICB geometry to compute ink overflow (prior to r267325).

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::geometryForBox const):

  • layout/FormattingContext.h:
6:32 AM Changeset in webkit [267341] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][MarginCollapse] The block level box passed in to MarginCollapse::positiveNegativeValues is in the current formatting context
https://bugs.webkit.org/show_bug.cgi?id=216758

Reviewed by Antti Koivisto.

Let's use the current formatting state when grabbing vertical margin values.

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues const):

6:27 AM Changeset in webkit [267340] by Philippe Normand
  • 2 edits in trunk/LayoutTests

[GTK] media/media-can-play-mp3.html is failing since added in r267210
https://bugs.webkit.org/show_bug.cgi?id=216765

Unreviewed, unflag now-passing test, since r267335.

  • platform/gtk/TestExpectations: Unflag now-passing test.
3:42 AM Changeset in webkit [267339] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Adjust test expectations of several tests failing.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
2:49 AM Changeset in webkit [267338] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Gardened several failures of new tests added.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
2:43 AM Changeset in webkit [267337] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.30.1

WebKitGTK 2.30.1

2:42 AM Changeset in webkit [267336] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.30

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.30.1 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.30.1.
1:42 AM WebKitGTK/2.30.x edited by Carlos Garcia Campos
(diff)
1:26 AM Changeset in webkit [267335] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] media/media-can-play-mp3.html fails
https://bugs.webkit.org/show_bug.cgi?id=216692

Patch by Philippe Normand <pnormand@igalia.com> on 2020-09-21
Reviewed by Darin Adler.

Add mp3 to supported codecs map when a valid decoder has been
found by the GStreamer registry scanner.

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::initialize):

12:42 AM Changeset in webkit [267334] by Diego Pino Garcia
  • 1 edit
    3 adds in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Emit new baselines for WebAudio tests after r267307.

The results are slightly different in GLIB ports.

  • platform/glib/webaudio/BiquadFilter/tail-time-lowpass-expected.txt: Added.
  • platform/glib/webaudio/BiquadFilter/tail-time-peaking-expected.txt: Added.
Note: See TracTimeline for information about the timeline view.