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

Timeline



Sep 23, 2020:

11:15 PM Changeset in webkit [267519] by Ross Kirsling
  • 9 edits
    1 add in trunk

%ArrayIteratorPrototype%.next must check for detached buffers
https://bugs.webkit.org/show_bug.cgi?id=216904

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/detach-buffer-during-iteration.js: Added.
  • test262/expectations.yaml:

Mark two test cases as passing.

Source/JavaScriptCore:

Per https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next:

  1. If a has a TypedArrayName internal slot, then
    1. If IsDetachedBuffer(a.ViewedArrayBuffer) is true, throw a TypeError exception.
  • builtins/ArrayIteratorPrototype.js:

(next):

  • builtins/BuiltinNames.h:
  • bytecode/LinkTimeConstant.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::typedArrayViewPrivateFuncIsNeutered):

  • runtime/JSTypedArrayViewPrototype.h:
10:59 PM Changeset in webkit [267518] by ysuzuki@apple.com
  • 18 edits in trunk/Source/JavaScriptCore

[JSC] Simply some of template-specialized host functions by defining each function
https://bugs.webkit.org/show_bug.cgi?id=216907

Reviewed by Saam Barati.

This makes automatically-registering these functions in JIT-caging easy.

  • API/APICallbackFunction.h:

(JSC::APICallbackFunction::callImpl):
(JSC::APICallbackFunction::constructImpl):
(JSC::APICallbackFunction::call): Deleted.
(JSC::APICallbackFunction::construct): Deleted.

  • API/JSCallbackConstructor.cpp:

(JSC::constructJSCallbackConstructor):
(JSC::JSCallbackConstructor::getConstructData):

  • API/JSCallbackFunction.cpp:

(JSC::callJSCallbackFunction):
(JSC::JSCallbackFunction::JSCallbackFunction):

  • API/ObjCCallbackFunction.mm:

(JSC::callObjCCallbackFunction):
(JSC::constructObjCCallbackFunction):
(JSC::ObjCCallbackFunction::ObjCCallbackFunction):

  • API/glib/JSCCallbackFunction.cpp:

(JSC::callJSCCallbackFunction):
(JSC::constructJSCCallbackFunction):
(JSC::JSCCallbackFunction::JSCCallbackFunction):

  • dfg/DFGOperations.h:
  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jsc.cpp:

(accessorMakeMasquerader):

  • runtime/JSArrayBufferConstructor.cpp:

(JSC::JSGenericArrayBufferConstructor<sharingMode>::JSGenericArrayBufferConstructor):
(JSC::JSGenericArrayBufferConstructor<sharingMode>::constructImpl):
(JSC::constructArrayBuffer):
(JSC::constructSharedArrayBuffer):
(JSC::JSGenericArrayBufferConstructor<sharingMode>::constructArrayBuffer): Deleted.

  • runtime/JSArrayBufferConstructor.h:
  • runtime/JSCustomGetterSetterFunction.cpp:

(JSC::customGetterSetterFunctionCall):
(JSC::JSCustomGetterSetterFunction::customGetterSetterFunctionCall): Deleted.

  • runtime/JSCustomGetterSetterFunction.h:
  • runtime/NativeErrorConstructor.cpp:

(JSC::NativeErrorConstructor<errorType>::constructImpl):
(JSC::NativeErrorConstructor<errorType>::callImpl):
(JSC::callEvalError):
(JSC::constructEvalError):
(JSC::callRangeError):
(JSC::constructRangeError):
(JSC::callReferenceError):
(JSC::constructReferenceError):
(JSC::callSyntaxError):
(JSC::constructSyntaxError):
(JSC::callTypeError):
(JSC::constructTypeError):
(JSC::callURIError):
(JSC::constructURIError):
(JSC::callFunction):
(JSC::constructFunction):
(JSC::NativeErrorConstructor<errorType>::NativeErrorConstructor):
(JSC::NativeErrorConstructorBase::finishCreation):
(JSC::NativeErrorConstructor<errorType>::constructNativeErrorConstructor): Deleted.
(JSC::NativeErrorConstructor<errorType>::callNativeErrorConstructor): Deleted.

  • runtime/NativeErrorConstructor.h:
  • runtime/RegExpConstructor.cpp:

(JSC::regExpConstructorDollarImpl):
(JSC::regExpConstructorDollar1):
(JSC::regExpConstructorDollar2):
(JSC::regExpConstructorDollar3):
(JSC::regExpConstructorDollar4):
(JSC::regExpConstructorDollar5):
(JSC::regExpConstructorDollar6):
(JSC::regExpConstructorDollar7):
(JSC::regExpConstructorDollar8):
(JSC::regExpConstructorDollar9):
(JSC::regExpConstructorInput):
(JSC::regExpConstructorMultiline):
(JSC::regExpConstructorLastMatch):
(JSC::regExpConstructorLastParen):
(JSC::regExpConstructorLeftContext):
(JSC::regExpConstructorRightContext):
(JSC::setRegExpConstructorInput):
(JSC::setRegExpConstructorMultiline):
(JSC::regExpConstructorDollar): Deleted.

  • tools/JSDollarVM.cpp:
9:33 PM Changeset in webkit [267517] by Antti Koivisto
  • 3 edits in trunk/Tools

[Windows] Ignore render tree dump based results on Windows
https://bugs.webkit.org/show_bug.cgi?id=209897

Reviewed by Darin Adler.

Render tree dumps are port specific and so difficult to maintain. They are mostly very old and
have been superseded by more modern ref and text dump tests. They rarely reveal any port specific bugs.

This patch adds --ignore-render-tree-dump-results option to run-webkit-tests and enables it by
default on Apple Windows port.

With the option set the render tree dump tests are still run (so crashes are detected) but their
output is treated as if it always passed. Missing results are not written to disk.

  • Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:

(SingleTestRunner._compare_text):

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):
(_set_up_derived_options):

8:36 PM Changeset in webkit [267516] by Peng Liu
  • 18 edits in trunk/Source

Add feature flags for GPU Process features
https://bugs.webkit.org/show_bug.cgi?id=216901

Reviewed by Tim Horton.

Source/WebCore:

Rename useGPUProcessForMedia to useGPUProcessForMediaEnabled.

No new tests since no functional changes.

  • page/Settings.yaml:

Source/WebKit:

Add feature flags for the following GPU Process features:

  • 2D canvas in GPU process
  • WebGL in GPU process
  • DOM rendering in GPU Process

Also, clean up some related feature/function names.

  • FeatureFlags/WebKit.plist:

Add keys for the GPU process features and sort all keys.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultUseGPUProcessForCanvasRenderingEnabled):
(WebKit::defaultUseGPUProcessForDOMRenderingEnabled):
(WebKit::defaultUseGPUProcessForMediaEnabled):
(WebKit::defaultUseGPUProcessForWebGLEnabled):
(WebKit::defaultCaptureAudioInGPUProcessEnabled):
(WebKit::defaultCaptureVideoInGPUProcessEnabled):
(WebKit::defaultWebRTCCodecsInGPUProcess):
(WebKit::defaultUseGPUProcessForMedia): Deleted.
(WebKit::defaultRenderCanvasInGPUProcessEnabled): Deleted.

  • Shared/WebPreferencesDefaultValues.h:
  • Shared/WebPreferencesInternal.yaml:

Add preferences and corresponding default values.

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
Rename useGPUProcessForMedia to useGPUProcessForMediaEnabled.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):
Use useGPUProcessForCanvasRenderingEnabled instead of renderCanvasInGPUProcessEnabled.

  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::updatePreferences):
Use useGPUProcessForMediaEnabled instead of useGPUProcessForMedia.

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Ditto.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains): Ditto.
(WebKit::WebPage::updatePreferences): Ditto.

Source/WebKitLegacy/mac:

Minor cleanups.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences useGPUProcessForMediaEnabled]):
(-[WebPreferences setUseGPUProcessForMediaEnabled:]):
(-[WebPreferences useGPUProcessForMedia]): Deleted.
(-[WebPreferences setUseGPUProcessForMedia:]): Deleted.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

8:15 PM Changeset in webkit [267515] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][Integration] Line layout logic should consult LayoutState whether remove trailing letter spacing.
https://bugs.webkit.org/show_bug.cgi?id=216905

Reviewed by Sam Weinig.

This is in preparation for completely moving away from the RuntimeEnabledFeatures check.

  • layout/LayoutState.cpp:

(WebCore::Layout::LayoutState::shouldIgnoreTrailingLetterSpacing const):

  • layout/LayoutState.h:
  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::Line):
(WebCore::Layout::Line::appendTextContent):

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

(WebCore::Layout::LineCandidate::InlineContent::appendInlineItem):

7:46 PM Changeset in webkit [267514] by Alexey Shvayka
  • 9 edits
    58 adds in trunk

Update Array.prototype.sort to be consistent with tightened spec
https://bugs.webkit.org/show_bug.cgi?id=202582

Reviewed by Yusuke Suzuki and Keith Miller.

JSTests:

Provided microbenchmarks test receivers that are half-sorted: 50% of their
items and item pairs (to accomodate merge sort) are at the right place.

Arrays of multiple sizes (8/24/64 items) are tested with both userland
and default comparator (to cover bucket sort).

  • ChakraCore/test/Array/array_sort.baseline-jsc: Fix typo in error message.
  • microbenchmarks/array-prototype-sort-large-array-comparator.js: Added.
  • microbenchmarks/array-prototype-sort-large-array.js: Added.
  • microbenchmarks/array-prototype-sort-medium-array-comparator.js: Added.
  • microbenchmarks/array-prototype-sort-medium-array.js: Added.
  • microbenchmarks/array-prototype-sort-small-array-comparator.js: Added.
  • microbenchmarks/array-prototype-sort-small-array.js: Added.
  • mozilla/js1_5/Array/regress-157652.js: Skip sorting sparse array of UINT_MAX size.
  • stress/regress-188577.js: Replace sort() with unshift() and refactor.

Source/JavaScriptCore:

This patch implements the spec change [1] that reduces amount of cases resulting
in an implementation-defined sort order, aligning JSC with V8 and SpiderMonkey.

To achieve this, we collect all existing non-undefined receiver elements to a
temporary array, sort it, and write back sorted items, followed by undefined
values and holes.

This change is proven to be web-compatible (shipping since Chrome 76) and neutral
on peak memory consumption in the wild.

Although we can unobservably detect sparse receivers, we can't avoid creating a
temporary array for common case since userland comparators may throw; string
sorting won't measurably benefit from this, only increasing code complexity.

This change uses @putByValDirect unless the spec requires Set, avoids using
closure variables, and adds a few drive-by optimizations, resulting in ~22%
faster string sorting and 13% speed-up for userland comparators.
Dromaeo/jslib is neutral.

[1]: https://github.com/tc39/ecma262/pull/1585

  • builtins/ArrayPrototype.js:

(sort.stringComparator):
Optimization #1: replace char-by-char comparison loop with > operator, aligning
JSC with V8 and SpiderMonkey. This semantically equivalent change alone is a ~15%
progression for string sort.

(sort.compact):
(sort.commit):
Optimization #2: copy large non-numeric arrays in a loop rather than @appendMemcpy.
Using the latter unconditionally regresses provided microbenchmarks.

(sort.merge):
Optimization #3: replace typeof check and negation with strict equality.

(sort.mergeSort):
Optimization #4: always return sorted array instead of copying, even if it's the buffer.
Tweak: create the buffer with correct length.

(sort.bucketSort):
Optimization #5: avoid emitting 2 extra get_by_val ops by saving bucket lookup to a variable.
Tweak: create new bucket via array literal.

(sort): Fix typo in error message.
(sort.compactSparse): Deleted.
(sort.compactSlow): Deleted.
(sort.comparatorSort): Deleted.
(sort.stringSort): Deleted.

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::finishCreation):
Remove @Object.@getPrototypeOf as it's now unused and we have @getPrototypeOf intrinsic anyway.

LayoutTests:

While adding new LayoutTests for JS-only features is undesirable, it's a
quick-and-dirty way to import the tests [1] and fix the call count/order
of observable operations via debug() and text expectations.

The tests are imported into LayoutTests/js/dom instead of LayoutTests/js for
run-javascriptcore-tests to ignore them as they require array-sort-harness.js.

These files will be removed shortly in favor of thorough test262 coverage,
which is required for the proposal [2] to be merged.

[1]: https://gist.github.com/szuend/05ae15b4e1329b264ab4c9a1cda09242
[2]: https://github.com/tc39/ecma262/pull/1585

  • TestExpectations: Mark a test as slow.
  • js/dom/array-sort-*-expected.txt: Added.
  • js/dom/array-sort-*.html: Added.
  • js/dom/script-tests/array-sort-*.js: Added.
  • js/resources/array-sort-harness.js: Added.
7:34 PM Changeset in webkit [267513] by Alan Coon
  • 1 copy in tags/Safari-610.2.6.1.5

Tag Safari-610.2.6.1.5.

6:36 PM Changeset in webkit [267512] by ysuzuki@apple.com
  • 1 edit
    3 moves in trunk/LayoutTests

Unreviewed, we should put it under js/dom since it is not usable in JSC shell
https://bugs.webkit.org/show_bug.cgi?id=216851

  • js/dom/script-tests/transform-stream.js: Renamed from LayoutTests/js/script-tests/transform-stream.js.
  • js/dom/transform-stream-expected.txt: Renamed from LayoutTests/js/transform-stream-expected.txt.
  • js/dom/transform-stream.html: Renamed from LayoutTests/js/transform-stream.html.
5:22 PM Changeset in webkit [267511] by Matt Lewis
  • 2 edits in trunk/Tools

Unreviewed config fix.

  • BuildSlaveSupport/build.webkit.org-config/config.json: Fixing random unicode character.
4:41 PM Changeset in webkit [267510] by Matt Lewis
  • 5 edits
    12 adds in trunk/Tools

Update iOS, watchOS and tvOS builders and tester with new SDKs
https://bugs.webkit.org/show_bug.cgi?id=216658

Reviewed by Jonathan Bedard.

Bumped the versions on iOS, tvOS, and watchOS in config, dashboard and main CSS. Also, added the updated
images for the queues.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/IOS14Device.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/IOS14Device@2x.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/IOS14Simulator.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/IOS14Simulator@2x.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/TvOS14.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/TvOS14@2x.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/TvOS14Simulator.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/TvOS14Simulator@2x.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/WatchOS7.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/WatchOS7@2x.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/WatchOSSimulator7.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/WatchOSSimulator7@2x.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:

(table.queue-grid tr.platform.ios-simulator-14 img.logo):
(table.queue-grid tr.platform.ios-14 img.logo):
(table.queue-grid tr.platform.tvos-simulator-14 img.logo):
(table.queue-grid tr.platform.tvos-14 img.logo):
(table.queue-grid tr.platform.watchos-simulator-7 img.logo):
(table.queue-grid tr.platform.watchos-7 img.logo):
(table.queue-grid tr.platform.ios-simulator-13 img.logo): Deleted.
(table.queue-grid tr.platform.ios-13 img.logo): Deleted.
(table.queue-grid tr.platform.tvos-simulator-13 img.logo): Deleted.
(table.queue-grid tr.platform.tvos-13 img.logo): Deleted.
(table.queue-grid tr.platform.watchos-simulator-6 img.logo): Deleted.
(table.queue-grid tr.platform.watchos-6 img.logo): Deleted.

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
4:39 PM Changeset in webkit [267509] by Simon Fraser
  • 10 edits
    13 copies
    4 adds
    2 deletes in trunk/Source/WebCore

[LFC Display] Add the beginnings of a CSS display box hierarchy and CSS painter
https://bugs.webkit.org/show_bug.cgi?id=216752

Reviewed by Zalan Bujtas.

Add some Display::Box subclasses to display/css, a Display::Tree class to own the
display tree, and a DisplayTreeBuilder. Also add css/DisplayCSSPainter which is
the beginnings of a class that knows how to paint a CSS stacking context.

This code other than DisplayCSSPainter is deliberately vague about how much is
CSS specific. It's likely that some box classes will be shared with SVG painting.

  • CMakeLists.txt:
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • display/DisplayLayerController.cpp:

(WebCore::Display::LayerController::RootLayerClient::paintContents):
(WebCore::Display::LayerController::RootLayerClient::deviceScaleFactor const):
(WebCore::Display::LayerController::prepareForDisplay):
(WebCore::Display::LayerController::ensureRootLayer):
(WebCore::Display::LayerController::updateRootLayerGeometry):

  • display/DisplayLayerController.h:
  • display/DisplayTree.cpp: Copied from Source/WebCore/display/DisplayView.h.

(WebCore::Display::Tree::Tree):

  • display/DisplayTree.h: Copied from Source/WebCore/display/DisplayView.h.

(WebCore::Display::Tree::rootBox const):

  • display/DisplayTreeBuilder.cpp: Added.

(WebCore::Display::TreeBuilder::TreeBuilder):
(WebCore::Display::TreeBuilder::build const):
(WebCore::Display::TreeBuilder::recursiveBuildDisplayTree const):
(WebCore::Display::TreeBuilder::displayBoxForRootBox const):
(WebCore::Display::TreeBuilder::displayBoxForLayoutBox const):
(WebCore::Display::outputDisplayBox):
(WebCore::Display::outputDisplayTree):
(WebCore::Display::showDisplayTree):

  • display/DisplayTreeBuilder.h: Copied from Source/WebCore/display/DisplayView.h.
  • display/DisplayView.cpp:

(WebCore::Display::View::prepareForDisplay):
(WebCore::Display::View::deviceScaleFactor const):

  • display/DisplayView.h:
  • display/css/DisplayBox.cpp: Copied from Source/WebCore/display/DisplayView.h.

(WebCore::Display::Box::Box):
(WebCore::Display::Box::setNextSibling):
(WebCore::Display::Box::debugDescription const):

  • display/css/DisplayBox.h: Copied from Source/WebCore/display/DisplayView.h.

(WebCore::Display::Box::Box):
(WebCore::Display::Box::style const):
(WebCore::Display::Box::borderBoxFrame const):
(WebCore::Display::Box::isContainerBox const):
(WebCore::Display::Box::isImageBox const):
(WebCore::Display::Box::isReplacedBox const):
(WebCore::Display::Box::nextSibling const):

  • display/css/DisplayCSSPainter.cpp: Added.

(WebCore::Display::CSSPainter::paintBoxDecorations):
(WebCore::Display::CSSPainter::paintBoxContent):
(WebCore::Display::CSSPainter::paintBox):
(WebCore::Display::CSSPainter::recursivePaintDescendants):
(WebCore::Display::CSSPainter::paintStackingContext):
(WebCore::Display::CSSPainter::isStackingContextPaintingBoundary):
(WebCore::Display::CSSPainter::recursiveCollectLayers):
(WebCore::Display::CSSPainter::paintTree):

  • display/css/DisplayCSSPainter.h: Copied from Source/WebCore/display/DisplayView.h.
  • display/css/DisplayContainerBox.cpp: Copied from Source/WebCore/display/DisplayView.h.

(WebCore::Display::ContainerBox::ContainerBox):
(WebCore::Display::ContainerBox::setFirstChild):
(WebCore::Display::ContainerBox::debugDescription const):

  • display/css/DisplayContainerBox.h: Copied from Source/WebCore/display/DisplayView.h.

(WebCore::Display::ContainerBox::firstChild const):

  • display/css/DisplayImageBox.cpp: Copied from Source/WebCore/display/DisplayView.h.

(WebCore::Display::ImageBox::ImageBox):
(WebCore::Display::ImageBox::setImage):
(WebCore::Display::ImageBox::debugDescription const):

  • display/css/DisplayImageBox.h: Copied from Source/WebCore/display/DisplayView.h.

(WebCore::Display::ImageBox::image const):

  • display/css/DisplayReplacedBox.cpp: Copied from Source/WebCore/display/DisplayView.h.

(WebCore::Display::ReplacedBox::ReplacedBox):

  • display/css/DisplayReplacedBox.h: Copied from Source/WebCore/display/DisplayView.h.

(WebCore::Display::ReplacedBox::replacedContentRect const):

  • display/css/DisplayStyle.cpp: Copied from Source/WebCore/display/DisplayView.cpp.

(WebCore::Display::Style::Style):
(WebCore::Display::Style::hasBackground const):
(WebCore::Display::Style::hasVisibleBorder const):

  • display/css/DisplayStyle.h: Added.

(WebCore::Display::Style::backgroundColor const):
(WebCore::Display::Style::hasBackgroundImage const):
(WebCore::Display::Style::borderLeft const):
(WebCore::Display::Style::borderRight const):
(WebCore::Display::Style::borderTop const):
(WebCore::Display::Style::borderBottom const):
(WebCore::Display::Style::zIndex const):
(WebCore::Display::Style::isStackingContext const):
(WebCore::Display::Style::isPositioned const):
(WebCore::Display::Style::isFloating const):
(WebCore::Display::Style::participatesInZOrderSorting const):
(WebCore::Display::Style::setIsPositioned):
(WebCore::Display::Style::setIsFloating):

  • layout/displaytree/DisplayBox.cpp: Removed.
  • layout/displaytree/DisplayBox.h: Removed.
  • layout/layouttree/LayoutIterator.h: Unified sources build fix.
4:28 PM Changeset in webkit [267508] by Jonathan Bedard
  • 3 edits in trunk/Tools

webkitpy: Make sw_vers the source of truth for the MacOS version
https://bugs.webkit.org/show_bug.cgi?id=216903
<rdar://problem/69462735>

Reviewed by Dewei Zhu.

  • Scripts/webkitpy/common/system/platforminfo.py:

(PlatformInfo.init): Use sw_vers instead of platform.mac_ver().

  • Scripts/webkitpy/common/system/platforminfo_unittest.py:

(fake_executive): Set a valid return value for sw_vers by default.

4:25 PM Changeset in webkit [267507] by Chris Dumez
  • 4 edits
    2 copies
    2 adds in trunk

web audio api outputs silence for 302 redirected resource in safari
https://bugs.webkit.org/show_bug.cgi?id=214932
<rdar://problem/66300050>

Reviewed by Darin Adler.

Source/WebCore:

If the resource is redirected to another origin, treat it as tainted only if the crossorigin attribute
is not set. This is done for consistency with Blink:

The new behavior also seems to match Firefox.

Tests: http/tests/security/webaudio-render-remote-audio-allowed-crossorigin-redirect.html

http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin-redirect.html

  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::wouldTaintOrigin):

LayoutTests:

Add layout test coverage. Update existing test to reflect the fact that the frequency returned by
the AnalyserNode is -Infinity when input is silent, not minDecibels (this has changed fairly
recently).

  • http/tests/security/webaudio-render-remote-audio-allowed-crossorigin-redirect-expected.txt: Added.
  • http/tests/security/webaudio-render-remote-audio-allowed-crossorigin-redirect.html: Copied from LayoutTests/http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html.
  • http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html:
  • http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin-redirect-expected.txt: Added.
  • http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin-redirect.html: Copied from LayoutTests/http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html.
4:06 PM Changeset in webkit [267506] 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/platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt:
4:06 PM Changeset in webkit [267505] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Use less explicit ref() / deref() calls in WebAudio code
https://bugs.webkit.org/show_bug.cgi?id=216894

Reviewed by Darin Adler.

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::clearPendingActivity):
(WebCore::BaseAudioContext::makePendingActivity):

  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::setFormat):
(WebCore::MediaElementAudioSourceNode::process):

  • Modules/webaudio/MediaElementAudioSourceNode.h:
  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::startRendering):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaEngineWasUpdated):
(WebCore::HTMLMediaElement::createMediaPlayer):

3:48 PM Changeset in webkit [267504] by Chris Dumez
  • 131 edits
    5 deletes in trunk

Turn off the legacy prefixed WebAudio API
https://bugs.webkit.org/show_bug.cgi?id=216886

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/webaudio/historical-expected.txt:

Rebaseline test that is now passing.

Source/WebCore:

Turn off the legacy prefixed WebAudio API, now that the modern unprefixed API has been enabled
in r267488.

No new tests, rebaselined existing tests.

  • Modules/webaudio/AudioBufferSourceNode.idl:

Make sure legacy constants get unexposed if the PrefixedWebAudio setting is disabled.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GetRuntimeEnabledStaticProperties):

  • bindings/scripts/test/JS/JSTestConditionalIncludes.cpp:

(WebCore::JSTestConditionalIncludesConstructor::initializeProperties):
(WebCore::JSTestConditionalIncludesPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:

(WebCore::JSTestEnabledBySettingConstructor::prototypeForStructure):
(WebCore::JSTestEnabledBySettingConstructor::initializeProperties):
(WebCore::JSTestEnabledBySettingPrototype::finishCreation):

  • bindings/scripts/test/TestEnabledBySetting.idl:

Add support for using [EnabledBySetting=X] on constants.

Source/WebKit:

Turn off the legacy prefixed WebAudio API, now that the modern unprefixed API has been enabled
in r267488.

  • Shared/WebPreferencesInternal.yaml:

Source/WebKitLegacy/mac:

Turn off the legacy prefixed WebAudio API, now that the modern unprefixed API has been enabled
in r267488.

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

LayoutTests:

Port existing layout tests from the prefixed WebAudio API to the new
unprefixed version.

  • fast/history/page-cache-closed-audiocontext.html:
  • fast/history/page-cache-running-audiocontext.html:
  • fast/history/page-cache-suspended-audiocontext.html:
  • fast/mediastream/getUserMedia-webaudio.html:
  • fast/mediastream/media-devices-enumerate-devices.html:
  • fast/mediastream/mediastreamtrack-audio-clone.html:
  • fast/mediastream/mock-media-source-webaudio.html:
  • http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html:
  • http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin.html:
  • http/wpt/mediarecorder/MediaRecorder-onremovetrack.html:
  • http/wpt/webaudio/resources/audiocontext-stopped-iframe.html:
  • platform/ios/webaudio/realtimeanalyser-fft-sizing-expected.txt:
  • resources/testharnessreport.js:
  • webaudio/analyser-exception.html:
  • webaudio/audiobuffer-crash-expected.txt:
  • webaudio/audiobuffer-crash.html:
  • webaudio/audiobuffer-expected.txt:
  • webaudio/audiobuffer-neuter.html:
  • webaudio/audiobuffer.html:
  • webaudio/audiobuffersource-channels-expected.txt:
  • webaudio/audiobuffersource-channels.html:
  • webaudio/audiobuffersource-ended.html:
  • webaudio/audiobuffersource-multi-channels.html:
  • webaudio/audiobuffersource-negative-playbackrate-interpolated-loop.html:
  • webaudio/audiobuffersource-negative-playbackrate-interpolated.html:
  • webaudio/audiobuffersource-negative-playbackrate-loop.html:
  • webaudio/audiobuffersource-negative-playbackrate.html:
  • webaudio/audiobuffersource-not-gced-until-ended.html:
  • webaudio/audiobuffersource-playbackState-expected.txt: Removed.
  • webaudio/audiobuffersource-playbackState.html: Removed.
  • webaudio/audiobuffersource-playbackrate.html:
  • webaudio/audiobuffersource-start.html:
  • webaudio/audiobuffersource.html:
  • webaudio/audiobuffersourcenode-legacy-api-expected.txt:
  • webaudio/audiobuffersourcenode-legacy-api.html:
  • webaudio/audiochannelmerger-basic.html:
  • webaudio/audiochannelmerger-stereo.html:
  • webaudio/audiochannelsplitter.html:
  • webaudio/audiocontext-promise-throwing-expected.txt:
  • webaudio/audiocontext-promise-throwing.html:
  • webaudio/audiocontext-promise.html:
  • webaudio/audiocontext-restriction-audiobuffersourcenode-start.html:
  • webaudio/audiocontext-restriction.html:
  • webaudio/audiocontext-state-interrupted.html:
  • webaudio/audiocontext-state.html:
  • webaudio/audionode-connect-order.html:
  • webaudio/audionode.html:
  • webaudio/audioparam-connect-audioratesignal.html:
  • webaudio/audioparam-summingjunction.html:
  • webaudio/audioprocessingevent.html:
  • webaudio/automatic-pull-node.html:
  • webaudio/convolution-mono-mono.html:
  • webaudio/convolver-channels.html:
  • webaudio/convolver-setBuffer-different-samplerate.html:
  • webaudio/convolver-setBuffer-null.html:
  • webaudio/createMediaStreamSource-null-expected.txt:
  • webaudio/createMediaStreamSource-null.html:
  • webaudio/decode-audio-data-basic-expected.txt:
  • webaudio/decode-audio-data-basic.html:
  • webaudio/decode-audio-data-too-short.html:
  • webaudio/delaynode-max-default-delay.html:
  • webaudio/delaynode-max-nondefault-delay.html:
  • webaudio/delaynode-maxdelay.html:
  • webaudio/delaynode-maxdelaylimit.html:
  • webaudio/delaynode-scheduling.html:
  • webaudio/delaynode.html:
  • webaudio/distance-exponential.html:
  • webaudio/distance-inverse.html:
  • webaudio/distance-linear.html:
  • webaudio/dynamicscompressor-basic.html:
  • webaudio/finished-audio-buffer-source-nodes-should-be-collectable.html:
  • webaudio/gain-basic.html:
  • webaudio/gain.html:
  • webaudio/mediaelementaudiosourcenode-expected.txt:
  • webaudio/mediaelementaudiosourcenode-gc.html:
  • webaudio/mediaelementaudiosourcenode.html:
  • webaudio/mixing.html:
  • webaudio/offlineaudiocontext-gc.html:
  • webaudio/offlineaudiocontext-restriction.html:
  • webaudio/oscillatornode-legacy-api-expected.txt:
  • webaudio/oscillatornode-legacy-api.html:
  • webaudio/page-canstartmedia.html:
  • webaudio/panner-equalpower-stereo.html:
  • webaudio/panner-equalpower.html:
  • webaudio/prefixed-pannernode-basic-expected.txt: Removed.
  • webaudio/prefixed-pannernode-basic.html: Removed.
  • webaudio/realtimeanalyser-fft-sizing-expected.txt:
  • webaudio/realtimeanalyser-fft-sizing.html:
  • webaudio/resources/audio-codec-test.js:

(runDecodingTest):

  • webaudio/resources/audiobuffersource-ended-detached-frame-iframe.html:
  • webaudio/resources/audioparam-testing-legacy.js:

(createAudioGraphAndTest):

  • webaudio/resources/compatibility.js: Removed.
  • webaudio/resources/javascriptaudionode-testing.js:

(runJSNodeTest):

  • webaudio/resources/oscillator-testing-legacy.js:

(generateExponentialOscillatorSweep):

  • webaudio/sample-accurate-scheduling.html:
  • webaudio/silence-after-playback.html:
  • webaudio/silent-audio-interrupted-in-background.html:
  • webaudio/stereo2mono-down-mixing.html:
  • webaudio/test-basic.html:
  • webaudio/up-mixing-mono-51.html:
  • webaudio/up-mixing-mono-stereo.html:
  • webaudio/up-mixing-stereo-51.html:
  • webaudio/waveshaper.html:
  • webaudio/web-audio-is-playing.html:
  • webaudio/webaudio-gc.html:
  • webaudio/webkitofflineaudiocontext-startRendering-crash-expected.txt:
  • webaudio/webkitofflineaudiocontext-startRendering-crash.html:
  • webrtc/audio-peer-connection-g722.html:
  • webrtc/audio-peer-connection-webaudio.html:
  • webrtc/clone-audio-track.html:
  • webrtc/getUserMedia-webaudio-autoplay.html:
  • webrtc/peer-connection-audio-mute.html:
  • webrtc/peer-connection-audio-mute2.html:
  • webrtc/peer-connection-createMediaStreamDestination.html:
  • webrtc/peer-connection-remote-audio-mute.html:
  • webrtc/peer-connection-remote-audio-mute2.html:
  • webrtc/routines.js:
3:31 PM Changeset in webkit [267503] by Oriol Brufau
  • 11 edits in trunk

[css-grid] Clear the override width for computing percent margins
https://bugs.webkit.org/show_bug.cgi?id=209461

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Update test expectations.

The 2 grid-items-percentage-paddings tests are now expected to have some
failures because of bug 191964. In fact they were already failing before
this patch, as can be seen in wpt.fyi:
https://wpt.fyi/results/css/css-grid/grid-items?q=grid-items-percentage-paddings-vertical-%20-002.html
It's just that the bug that is being fixed made the test runner think
that the tests were passing, probably some racy condition or such.

  • web-platform-tests/css/css-grid/grid-definition/grid-minimum-contribution-with-percentages-expected.txt:
  • web-platform-tests/css/css-grid/grid-items/grid-item-dynamic-min-contribution-001-expected.txt:
  • web-platform-tests/css/css-grid/grid-items/grid-items-minimum-height-orthogonal-001-expected.txt:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002-expected.txt:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002-expected.txt:

Source/WebCore:

When calculating the min-content contribution of a grid item of an auto
sized grid track we must consider the grid item's margin. When the grid
item's area is indefinite, a percent margin is resolved to zero.
However, when performing a relayout, the percent margin may be solved
against the previously computed grid area, since the grid item has
already an OverrideContainingBlockLogicalWidth value.

In order to re-compute the percent margin properly, we need to clear
the previously override value. It's important to be careful of not
clearing the override value set during intrinsic size, since we need
it for the actual layout phase. Hence, we only reset the 'override'
value when we are executing a definite strategy.

This is a reland of r261841, which was reverted because it broke spotify.
This problem is now avoided thanks to bug 210089.

Tests: imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-minimum-contribution-with-percentages.html

imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-item-dynamic-min-contribution-001.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-minimum-height-orthogonal-001.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-003.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-004.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-005.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-006.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-007.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-008.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-009.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-010.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-005.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-006.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-009.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-010.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002.html

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::hasRelativeMarginOrPaddingForChild):
(WebCore::hasRelativeOrIntrinsicSizeForChild):
(WebCore::shouldClearOverrideContainingBlockContentSizeForChild):
(WebCore::GridTrackSizingAlgorithmStrategy::minSizeForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::minLogicalSizeForChild const):
(WebCore::DefiniteSizeStrategy::minLogicalSizeForChild const):
(WebCore::DefiniteSizeStrategy::minContentForChild const):

  • rendering/GridTrackSizingAlgorithm.h:

LayoutTests:

Update test expectations.

3:14 PM Changeset in webkit [267502] by commit-queue@webkit.org
  • 31 edits in trunk

[GTK][WPE] Move TLS errors API from WebKitContext to WebKitWebsiteDataManager
https://bugs.webkit.org/show_bug.cgi?id=216822

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-09-23
Reviewed by Alex Christensen.

Source/WebCore:

Make ignoreTLSErrors a member of SoupNetworkSession, instead of being global.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::setIgnoreTLSErrors):
(WebCore::SoupNetworkSession::checkTLSErrors):
(WebCore::SoupNetworkSession::setShouldIgnoreTLSErrors): Deleted.

  • platform/network/soup/SoupNetworkSession.h:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::setAllowsAnySSLCertificate): Do not use SoupNetworkSession in the web process.

Source/WebKit:

Make TLS errors policy per session instead of global to the network process. The web context API now simply
forwards the request to the website data manager. The website data manager created for an ephemeral web view
will inherit the network settings from the web context website data manager. This ensures backwards
compatibility, but it's also convenient, since it's the desired behavior in most of the cases. Apps can still
change the network settings of the web view by getting the website data manager.

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

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

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

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

(WebKit::NetworkDataTaskSoup::tlsConnectionAcceptCertificate):

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::platformInitializeNetworkProcess):
(WebKit::NetworkProcess::setIgnoreTLSErrors):

  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::NetworkSessionSoup::NetworkSessionSoup):
(WebKit::webSocketAcceptCertificateCallback):
(WebKit::webSocketMessageNetworkEventCallback):
(WebKit::NetworkSessionSoup::createWebSocketTask):
(WebKit::NetworkSessionSoup::setIgnoreTLSErrors):

  • NetworkProcess/soup/NetworkSessionSoup.h:
  • UIProcess/API/glib/WebKitAutomationSession.cpp:

(webkitAutomationSessionCreate):

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextConstructed):
(webkit_web_context_set_tls_errors_policy):
(webkit_web_context_get_tls_errors_policy):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewConstructed):
(webkit_web_view_class_init):
(webkitWebViewLoadFailedWithTLSErrors):

  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp:

(webkitWebsiteDataManagerConstructed):
(webkitWebsiteDataManagerGetDataStore):
(webkit_website_data_manager_set_tls_errors_policy):
(webkit_website_data_manager_get_tls_errors_policy):

  • UIProcess/API/gtk/WebKitWebContext.h:
  • UIProcess/API/gtk/WebKitWebsiteDataManager.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/WebKitWebContext.h:
  • UIProcess/API/wpe/WebKitWebsiteDataManager.h:
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
  • UIProcess/WebProcessPool.h:
  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::ignoreTLSErrors const):

  • UIProcess/WebsiteData/soup/WebsiteDataStoreSoup.cpp:

(WebKit::WebsiteDataStore::setIgnoreTLSErrors):

  • UIProcess/soup/WebProcessPoolSoup.cpp:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):
(WebKit::WebProcessPool::setIgnoreTLSErrors): Deleted.

Tools:

Update tests to use the new API instead of the deprecated one. Also update the TLSErrorsPolicy test to also
check that ephemeral web views inherit the network settings from its web context.

  • TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:

(testSSL):
(testInsecureContent):
(testTLSErrorsPolicy):
(testTLSErrorsRedirect):
(testTLSErrorsHTTPAuth):
(testLoadFailedWithTLSErrors):
(testSubresourceLoadFailedWithTLSErrors):
(testWebSocketTLSErrors):

2:54 PM Changeset in webkit [267501] by Jonathan Bedard
  • 3 edits in trunk/Tools

Force SYSTEM_VERSION_COMPAT=0 in Webkit scripts
https://bugs.webkit.org/show_bug.cgi?id=216895
<rdar://problem/69454393>

Reviewed by Dewei Zhu.

  • Scripts/configure-xcode-for-embedded-development:
  • Scripts/webkitpy/init.py:
2:26 PM Changeset in webkit [267500] by ysuzuki@apple.com
  • 8 edits in trunk

[JSC] Intl spec update: handle awkward rounding behavior
https://bugs.webkit.org/show_bug.cgi?id=216760

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-numberformat.js:
  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch supports new spec change of "handle awkward rounding behavior"[1].
This changes minimumFractionDigits / maximumFractionDigits calculation when the specified ones are less than currency-digits.

[1]: https://github.com/tc39/ecma402/pull/471

  • runtime/CommonIdentifiers.h:
  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::resolvedOptions const):

  • runtime/IntlNumberFormatInlines.h:

(JSC::setNumberFormatDigitOptions):

  • runtime/IntlPluralRules.cpp:

(JSC::IntlPluralRules::resolvedOptions const):

2:17 PM Changeset in webkit [267499] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix some typo'd wheel event listener logging
https://bugs.webkit.org/show_bug.cgi?id=216892

Reviewed by Wenson Hsieh.

  • rendering/EventRegion.cpp:

(WebCore::EventRegion::uniteEventListeners):
Wheel is passive, NonPassiveWheel is active.

12:52 PM Changeset in webkit [267498] by pvollan@apple.com
  • 6 edits in trunk/Source/WebKit

[macOS] Issue sandbox extension for the diagnostic daemon
https://bugs.webkit.org/show_bug.cgi?id=216834
<rdar://problem/58496834>

Reviewed by Brent Fulgham.

  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::isInternalInstall):
(WebKit::agxCompilerClasses):
(WebKit::diagnosticServices):
(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

  • WebProcess/com.apple.WebProcess.sb.in:
12:50 PM Changeset in webkit [267497] by Fujii Hironori
  • 85 edits in trunk

Remove ENABLE_SVG_FONTS macro
https://bugs.webkit.org/show_bug.cgi?id=216850

Reviewed by Don Olmstead.

.:

No ports have this disabled, so remove it.

  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmake/tools/vsprops/FeatureDefines.props:
  • Source/cmake/tools/vsprops/FeatureDefinesCairo.props:

Source/WebCore:

  • CMakeLists.txt:
  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::appendSources):
(WebCore::CSSFontFace::hasSVGFontFaceSource const):

  • css/CSSFontFace.h:
  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::CSSFontFaceSource):
(WebCore::CSSFontFaceSource::load):
(WebCore::CSSFontFaceSource::font):
(WebCore::CSSFontFaceSource::isSVGFontFaceSource const):

  • css/CSSFontFaceSource.h:
  • css/CSSFontFaceSrcValue.cpp:

(WebCore::CSSFontFaceSrcValue::isSVGFontTarget const):
(WebCore::CSSFontFaceSrcValue::isSupportedFormat const):

  • css/CSSFontFaceSrcValue.h:
  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::inspectorResourceType):

  • loader/LinkLoader.cpp:

(WebCore::createLinkPreloadResourceClient):

  • loader/ResourceLoadInfo.cpp:

(WebCore::ContentExtensions::toResourceType):

  • loader/SubresourceLoader.cpp:

(WebCore::logResourceLoaded):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::defaultPriorityForResourceType):
(WebCore::CachedResource::isCORSSameOrigin const):

  • loader/cache/CachedResource.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::createResource):
(WebCore::CachedResourceLoader::requestFont):
(WebCore::contentTypeFromResourceType):
(WebCore::CachedResourceLoader::checkInsecureContent const):
(WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const):
(WebCore::CachedResourceLoader::shouldUpdateCachedResourceWithCurrentRequest):
(WebCore::destinationForType):

  • loader/cache/CachedSVGFont.cpp:
  • loader/cache/CachedSVGFont.h:
  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::getStatistics):

  • rendering/svg/SVGTextLayoutEngineSpacing.cpp:
  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::addCurrentSVGFontFaceRules):

  • svg/SVGAltGlyphDefElement.cpp:
  • svg/SVGAltGlyphDefElement.h:
  • svg/SVGAltGlyphDefElement.idl:
  • svg/SVGAltGlyphElement.cpp:
  • svg/SVGAltGlyphElement.h:
  • svg/SVGAltGlyphElement.idl:
  • svg/SVGAltGlyphItemElement.cpp:
  • svg/SVGAltGlyphItemElement.h:
  • svg/SVGAltGlyphItemElement.idl:
  • svg/SVGDocumentExtensions.cpp:
  • svg/SVGDocumentExtensions.h:
  • svg/SVGElement.cpp:

(WebCore::SVGElement::childShouldCreateRenderer const):

  • svg/SVGFontElement.cpp:
  • svg/SVGFontElement.h:
  • svg/SVGFontElement.idl:
  • svg/SVGFontFaceElement.cpp:
  • svg/SVGFontFaceElement.h:
  • svg/SVGFontFaceElement.idl:
  • svg/SVGFontFaceFormatElement.cpp:
  • svg/SVGFontFaceFormatElement.h:
  • svg/SVGFontFaceFormatElement.idl:
  • svg/SVGFontFaceNameElement.cpp:
  • svg/SVGFontFaceNameElement.h:
  • svg/SVGFontFaceNameElement.idl:
  • svg/SVGFontFaceSrcElement.cpp:
  • svg/SVGFontFaceSrcElement.h:
  • svg/SVGFontFaceSrcElement.idl:
  • svg/SVGFontFaceUriElement.cpp:
  • svg/SVGFontFaceUriElement.h:
  • svg/SVGFontFaceUriElement.idl:
  • svg/SVGGlyphElement.cpp:
  • svg/SVGGlyphElement.h:
  • svg/SVGGlyphElement.idl:
  • svg/SVGGlyphRefElement.cpp:
  • svg/SVGGlyphRefElement.h:
  • svg/SVGGlyphRefElement.idl:
  • svg/SVGHKernElement.cpp:
  • svg/SVGHKernElement.h:
  • svg/SVGHKernElement.idl:
  • svg/SVGMissingGlyphElement.cpp:
  • svg/SVGMissingGlyphElement.h:
  • svg/SVGMissingGlyphElement.idl:
  • svg/SVGTRefElement.cpp:

(WebCore::SVGTRefElement::rendererIsNeeded):

  • svg/SVGTSpanElement.cpp:

(WebCore::SVGTSpanElement::childShouldCreateRenderer const):
(WebCore::SVGTSpanElement::rendererIsNeeded):

  • svg/SVGTests.cpp:

(WebCore::supportedSVGFeatures):

  • svg/SVGTextElement.cpp:

(WebCore::SVGTextElement::childShouldCreateRenderer const):

  • svg/SVGTextPositioningElement.cpp:

(WebCore::SVGTextPositioningElement::elementFromRenderer):

  • svg/SVGToOTFFontConversion.cpp:
  • svg/SVGVKernElement.cpp:
  • svg/SVGVKernElement.h:
  • svg/SVGVKernElement.idl:
  • svg/svgtags.in:

Source/WebKit:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::maximumBufferingTime):

Source/WTF:

  • wtf/PlatformEnable.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm:
12:39 PM Changeset in webkit [267496] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Change name of client decoder entitlement
https://bugs.webkit.org/show_bug.cgi?id=216670
<rdar://problem/69101997>

Reviewed by Darin Adler.

The client decoder entitlement landed in <https://trac.webkit.org/changeset/266613/webkit> has changed name, and should be updated.

  • Scripts/process-entitlements.sh:
12:35 PM Changeset in webkit [267495] by Tadeu Zagallo
  • 3 edits
    3 adds in trunk

Missing scope release in JSDOMBuiltinConstructorBase
https://bugs.webkit.org/show_bug.cgi?id=216851
<rdar://problem/69144642>

Reviewed by Yusuke Suzuki.

Source/WebCore:

In JSDOMBuiltinConstructorBase::callFunctionWithCurrentArguments, we should release the
ThrowScope before calling into JavaScript since we don't intend to handle the exception.

Test: js/transform-stream.html

  • bindings/js/JSDOMBuiltinConstructorBase.cpp:

(WebCore::JSDOMBuiltinConstructorBase::callFunctionWithCurrentArguments):

LayoutTests:

  • js/script-tests/transform-stream.js: Added.
  • js/transform-stream-expected.txt: Added.
  • js/transform-stream.html: Added.
12:34 PM Changeset in webkit [267494] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Precompute the collapsible trailing width for LineBreaker
https://bugs.webkit.org/show_bug.cgi?id=216881

Reviewed by Antti Koivisto.

Let's just compute the collapsible trailing width while adding inline content to LineCandidate instead of
reverse looping through the runs in LineBreaker.
This is also in preparation for reducing the number of RuntimeEnabledFeatures::layoutFormattingContextIntegrationEnabled calls.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::ContinuousContent::hasTrailingCollapsibleContent const):
(WebCore::Layout::ContinuousContent::isFullyCollapsible const):
(WebCore::Layout::LineBreaker::shouldKeepEndOfLineWhitespace const):
(WebCore::Layout::LineBreaker::shouldWrapInlineContent):
(WebCore::Layout::LineBreaker::tryWrappingInlineContent const):
(WebCore::Layout::ContinuousContent::ContinuousContent):
(WebCore::Layout::ContinuousContent::nonCollapsibleLogicalWidth const):
(WebCore::Layout::ContinuousContent::isTrailingContentFullyCollapsible const): Deleted.
(WebCore::Layout::ContinuousContent::TrailingCollapsibleContent::reset): Deleted.

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

(WebCore::Layout::LineCandidate::InlineContent::collapsibleTrailingWidth const):
(WebCore::Layout::LineCandidate::InlineContent::appendInlineItem):
(WebCore::Layout::LineCandidate::InlineContent::reset):
(WebCore::Layout::LineBuilder::handleFloatsAndInlineContent):

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

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

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(ReRunWebKitTests): Simply limit the flaky failures immediately after they are calculated, since we don't display
the count of flaky failures. Flaky failures are displayed only to help bot-watchers in noticing flaky tests.
(AnalyzeLayoutTestsResults.report_pre_existing_failures): Limit pre-existing and flaky test failures just before sending emails.
(AnalyzeAPITestsResults.analyzeResults):

12:07 PM Changeset in webkit [267492] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

Notify igalia team about pre-existing test failures and build failures for JSC queues
https://bugs.webkit.org/show_bug.cgi?id=216889

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeCompileWebKitResults.send_email_for_preexisting_build_failure): Send email for pre-existing jsc build failures.
(AnalyzeJSCTestsResults.send_email_for_pre_existing_failure): Send email for pre-existing jsc test failure.

  • BuildSlaveSupport/ews-build/send_email.py:
  • BuildSlaveSupport/ews-build/emails.json: Added email address of igalia jsc team.
11:45 AM Changeset in webkit [267491] by Peng Liu
  • 14 edits in trunk/Source

[Media in GPU Process] Implement caption support in video fullscreen and PiP
https://bugs.webkit.org/show_bug.cgi?id=208752

Reviewed by Eric Carlson.

Source/WebCore:

Export TextTrackRepresentation so that WebKit can use it. Also, update the
interface of VideoLayerManagerObjC related to text track representation to
use PlatformLayer* instead of TextTrackRepresentation*.

Manually tested.

  • WebCore.xcodeproj/project.pbxproj:

Change target membership of TextTrackRepresentation.h.

  • platform/graphics/avfoundation/objc/VideoLayerManagerObjC.h:
  • platform/graphics/avfoundation/objc/VideoLayerManagerObjC.mm:

(WebCore::VideoLayerManagerObjC::setTextTrackRepresentationLayer):
(WebCore::VideoLayerManagerObjC::setTextTrackRepresentation): Deleted.
Replace setTextTrackRepresentation() with setTextTrackRepresentationLayer().

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::setTextTrackRepresentation):
Use VideoLayerManagerObjC::setTextTrackRepresentationLayer() instead of
VideoLayerManagerObjC::setTextTrackRepresentation().

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setTextTrackRepresentation): Ditto.

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::syncTextTrackBounds): Deleted.

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:

Remove syncTextTrackBounds() because the GPU process does not need to deal with
the text track bounds.

  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::dispatchMessage):
Add a missing IPC message receiver.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenLayer): Set the flag
m_requiresTextTrackRepresentation when changing video presentation mode.
(WebKit::MediaPlayerPrivateRemote::requiresTextTrackRepresentation const): Deleted.
(WebKit::MediaPlayerPrivateRemote::setTextTrackRepresentation): Deleted.
(WebKit::MediaPlayerPrivateRemote::syncTextTrackBounds): Deleted.
Move the implementation of those functions to MediaPlayerPrivateRemoteCocoa.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:

Add the flag m_requiresTextTrackRepresentation and add a reference
to the layer used to render text track (in fullscreen or picture-in-picture).

  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:

(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenFrame):
(WebKit::MediaPlayerPrivateRemote::setTextTrackRepresentation):
(WebKit::MediaPlayerPrivateRemote::syncTextTrackBounds):
Those functions share a similar implementation as VideoLayerManagerObjC.

10:55 AM Changeset in webkit [267490] 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:
10:19 AM Changeset in webkit [267489] by Caio Lima
  • 50 edits
    20 adds
    2 deletes in trunk

[JSC][ESNext] Create a new opcode to handle private fields store/define
https://bugs.webkit.org/show_bug.cgi?id=213372

Reviewed by Yusuke Suzuki.

JSTests:

Adjusting tests that emit get_private_name to avoid execution in
FTL/DFG.

  • microbenchmarks/class-fields-private/polymorphic-put-private-field.js: Added.
  • microbenchmarks/class-fields-private/put-private-field.js: Added.
  • microbenchmarks/polymorphic-put-public-field.js: Added.
  • microbenchmarks/put-public-field.js: Added.
  • stress/dfg-put-private-name-check-barrier-insertion.js: Added.
  • stress/dfg-put-private-name-compiled-as-put-by-id-direct.js: Added.
  • stress/dfg-put-private-name-compiled-as-put-private-name-by-id.js: Added.
  • stress/put-private-name-by-id-set-do-not-add-structure-trasition.js: Added.
  • stress/put-private-name-check-structure-miss.js: Added.
  • stress/put-private-name-constant-folding-to-mult-put-by-offset.js: Added.
  • stress/put-private-name-constant-folding-to-put-by-offset.js: Added.
  • stress/put-private-name-generic.js: Added.
  • stress/put-private-name-invalid-define.js: Added.
  • stress/put-private-name-invalid-store.js: Added.
  • stress/put-private-name-invalidate-compiled-with-constant-symbol.js: Added.
  • stress/put-private-name-polymorphic-with-constant-symbol.js: Added.
  • stress/put-private-name-with-constant-symbol.js: Added.
  • stress/put-private-name-with-different-identifier.js: Added.

Source/JavaScriptCore:

This patch is adding a new opcode to handle private field storage.
Before this change, we were using put_by_val_direct and including
the information of PutKind into PutByValFlags. We initially decided
to use put_by_val_direct to take advantage of all IC mechanism already
implemented for this instruction, however the semantics of private field
is different enough to complicate the understanding of
put_by_val_direct.

The new instruction is called put_private_name and has as its operands
baseObject where the put is going to be placed, the property
that's going to be installed (it is always a private symbol of a
private field), the value we are going to store and the
PrivateFieldPutKind that can be Define or Set.
The difference of each PrivateFieldPutKind is the following:

  • Define: It defines a new private field. If this field is already

present, it throws a TypeError.

  • Set: It sets the value of a private field. If the field is not

present at the moment of set, it throws a TypeError.

This patch includes support of IC for all tiers. For DFG and FTL, we
are only emmiting IC when we are able to emit CheckConstant
for subscript identifier during Bytecode parsing. We are adding a new
DFG node called PutPrivateNameById that handles such cases when we
have constant identifiers.
We are also adding a new DFG node PutPrivateName that handles generic
case of put_private_name. The strategy used to compile
put_private_name is very similar with what we are using with
put_by_val[_direct]. We first try to compile it as [Multi]PutByOffset
using profiled information from LLInt and Baseline execution. If it
is not possible, we then emit PutPrivateName[ById] node. We get another
chance to transform PutPrivateNameById into PutByOffset if we can prove
its structure set at constant folding phase.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/BytecodeList.rb:
  • bytecode/BytecodeUseDef.cpp:

(JSC::computeUsesForBytecodeIndexImpl):
(JSC::computeDefsForBytecodeIndexImpl):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::finalizeLLIntInlineCaches):

  • bytecode/Fits.h:
  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::computeFromLLInt):
(JSC::PutByIdStatus::computeFor):

  • bytecode/PutByIdStatus.h:
  • bytecode/PutByValFlags.cpp: Removed.
  • bytecode/PutByValFlags.h: Removed.
  • bytecode/PutKind.h:

(): Deleted.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitDirectPutByVal):
(JSC::BytecodeGenerator::emitDefinePrivateField):
(JSC::BytecodeGenerator::emitPrivateFieldPut):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handlePutPrivateNameById):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):
(JSC::DFG::ecmaMode): Deleted.
(JSC::DFG::ecmaMode<OpPutByValDirect>): Deleted.

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

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

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToPutByOffset):
(JSC::DFG::Node::convertToMultiPutByOffset):
(JSC::DFG::Node::hasCacheableIdentifier):
(JSC::DFG::Node::hasPrivateFieldPutKind):
(JSC::DFG::Node::privateFieldPutKind):

  • dfg/DFGNodeType.h:
  • dfg/DFGOpInfo.h:

(JSC::DFG::OpInfo::OpInfo):

  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePutPrivateName):
(JSC::DFG::SpeculativeJIT::compilePutPrivateNameById):
(JSC::DFG::SpeculativeJIT::compilePutByIdFlush):
(JSC::DFG::SpeculativeJIT::compilePutById):
(JSC::DFG::SpeculativeJIT::compilePutByIdDirect):
(JSC::DFG::SpeculativeJIT::cachedPutById):

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compilePutPrivateNameById):
(JSC::FTL::DFG::LowerDFGToB3::compilePutPrivateName):
(JSC::FTL::DFG::LowerDFGToB3::cachedPutById):
(JSC::FTL::DFG::LowerDFGToB3::compilePutById):

  • generator/DSL.rb:
  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::link):

  • jit/JIT.h:

(JSC::ByValCompilationInfo::ByValCompilationInfo):

  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITPutByIdGenerator::JITPutByIdGenerator):
(JSC::JITPutByIdGenerator::slowPathFunction):

  • jit/JITInlineCacheGenerator.h:

(JSC::JITPutByIdGenerator::JITPutByIdGenerator):

  • jit/JITInlines.h:

(JSC::JIT::ecmaMode<OpPutPrivateName>):
(JSC::JIT::ecmaMode<OpPutByValDirect>): Deleted.
(JSC::JIT::privateFieldAccessKind): Deleted.
(JSC::JIT::privateFieldAccessKind<OpPutByValDirect>): Deleted.

  • jit/JITOperations.cpp:

(JSC::setPrivateField):
(JSC::putPrivateField): Deleted.

  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::emit_op_put_private_name):
(JSC::JIT::emitSlow_op_put_private_name):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emitPutPrivateNameWithCachedId):
(JSC::JIT::privateCompilePutPrivateNameWithCachedId):
(JSC::JIT::privateCompilePutByValWithCachedId):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_put_private_name):
(JSC::JIT::emitSlow_op_put_private_name):
(JSC::JIT::emit_op_put_by_id):

  • jit/Repatch.cpp:

(JSC::appropriateGenericPutByIdFunction):
(JSC::appropriateOptimizingPutByIdFunction):
(JSC::tryCachePutByID):
(JSC::resetPutByID):

  • llint/LLIntOffsetsExtractor.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/JSObject.h:
  • runtime/JSObjectInlines.h:

(JSC::JSObject::setPrivateField):
(JSC::JSObject::putPrivateField): Deleted.

  • runtime/PrivateFieldPutKind.cpp: Added.

(JSC::PrivateFieldPutKind::dump const):

  • runtime/PrivateFieldPutKind.h: Added.

(JSC::PrivateFieldPutKind::fromByte):
(JSC::PrivateFieldPutKind::none):
(JSC::PrivateFieldPutKind::set):
(JSC::PrivateFieldPutKind::define):
(JSC::PrivateFieldPutKind::isNone const):
(JSC::PrivateFieldPutKind::isSet const):
(JSC::PrivateFieldPutKind::isDefine const):
(JSC::PrivateFieldPutKind::value const):
(JSC::PrivateFieldPutKind::PrivateFieldPutKind):

10:10 AM Changeset in webkit [267488] by Chris Dumez
  • 4 edits in trunk/Source

Turn on the modern unprefixed WebAudio API
https://bugs.webkit.org/show_bug.cgi?id=216885

Reviewed by Eric Carlson.

Turn on the modern unprefixed WebAudio API now that we support most of the API
besides AudioWorklet and now that we have a good pass rate on WPT tests.

Source/WebKit:

  • Shared/WebPreferencesExperimental.yaml:

Source/WebKitLegacy/mac:

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

10:07 AM Changeset in webkit [267487] by Russell Epstein
  • 4 edits in branches/safari-611.1.1-branch

Cherry-pick r267439. rdar://problem/69441287

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):

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

10:07 AM Changeset in webkit [267486] by Chris Dumez
  • 4 edits in trunk

webaudio/AudioBufferSource/audiobuffersource-playbackrate.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=216827

Reviewed by Darin Adler.

Source/WebCore:

AudioBufferSourceNode::renderSilenceAndFinishIfNotLooping() would hit an assertion inside
finish() because finish() was already called earlier when calling updateSchedulingInfo().
updateSchedulingInfo() already takes care of calling finish() when we're done playing.
Address the issue by only calling finish() if hasFinished() returns false.

No new tests, unskipped existing test.

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::renderSilenceAndFinishIfNotLooping):

LayoutTests:

Unskip test that is no longer crashing.

10:00 AM Changeset in webkit [267485] by Russell Epstein
  • 1 move in branches/safari-611.1.1-branch

Rename safari-611.1-branch to safari-611.1.1-branch

9:54 AM Changeset in webkit [267484] by Philippe Normand
  • 1 edit
    1 add in trunk/LayoutTests

Unreviewed, add ios baseline for media/media-can-play-av1.html

This was forgotten in r267474.

  • platform/ios/media/media-can-play-av1-expected.txt: Added.
9:43 AM Changeset in webkit [267483] by Russell Epstein
  • 1 copy in branches/safari-611.1-branch

New branch.

9:41 AM Changeset in webkit [267482] by Alan Coon
  • 2 edits in branches/safari-610.2.6.1-branch/Source/WebKit

Cherry-pick r267412. rdar://problem/69439628

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.

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

9:41 AM Changeset in webkit [267481] by Alan Coon
  • 2 edits in branches/safari-610.2.6.1-branch/Source/JavaScriptCore

Cherry-pick r267304. rdar://problem/69439749

[JSC] PreciseAllocation's isNewlyAllocated flag should be propagated from isMarked at GC begin phase to make isLive correct
https://bugs.webkit.org/show_bug.cgi?id=216717

Reviewed by Mark Lam.

When starting full GC, at beginMarking, PreciseAllocation's mark bit is cleared to be usable for upcoming marking.
However, this means that HeapCell::isLive will see this object as dead until it is marked.
Let's consider that this object is not newly allocated one. Then, its isNewlyAllocated is false. And now mark bit

is also cleared. Since PreciseAllocation::isLive is isNewlyAllocated
isMarked, then it looks dead, while it is live.

This confuses HeapCell:isLive function and makes some of watchpoints perform wrong decisions (e.g. this condition is
no longer valid, let's just discard it).
At the beginning of full collection, we should propagate the old mark bit to isNewlyAllocated so that it looks live
during marking. This is similar trick to MarkedBlock::aboutToMark.

  • heap/PreciseAllocation.cpp: (JSC::PreciseAllocation::flip):

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

9:38 AM Changeset in webkit [267480] by Russell Epstein
  • 8 edits in branches/safari-610.2.6.1-branch/Source

Versioning.

WebKit-7610.2.6.1.5

9:03 AM Changeset in webkit [267479] by Truitt Savell
  • 6 edits in trunk

Unreviewed, reverting r267403.

Caused 50+ Crashes on iOS Debug

Reverted changeset:

"Move Media in GPU Process flag from internal to experimental"
https://bugs.webkit.org/show_bug.cgi?id=216473
https://trac.webkit.org/changeset/267403

8:57 AM Changeset in webkit [267478] by Lauro Moura
  • 2 edits in trunk/Tools

REGRESSION(r267368) [webkitpy] autoinstalled pytest raises ImportError in run-webdriver-tests
https://bugs.webkit.org/show_bug.cgi?id=216879

Reviewed by Jonathan Bedard.

Autoinstalled pytest requires sys.path to be updated with the newly
installed packages. Before r267368 it worked because
webdriver_w3c_executor.py autoinstalled mozlog/mozprocess which
updated the sys.path.

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook._install_pytest):

8:53 AM Changeset in webkit [267477] by Andres Gonzalez
  • 6 edits in trunk

Fix for accessibility/aria-combobox-control-owns-elements.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=216878

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/aria-combobox-control-owns-elements.html.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::updateIsolatedTree): Update the isolated tree
node for ActiveDescendant and SelectedChildren notifications.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData): Only cache
selectedChildren for those AXObjects that canHaveSelectedChildren.

LayoutTests:

Use Promises to make this test work reliably for both single and multithreaded accessibility modes.

  • accessibility/aria-combobox-control-owns-elements-expected.txt:
  • accessibility/aria-combobox-control-owns-elements.html:
8:50 AM Changeset in webkit [267476] by Darin Adler
  • 19 edits in trunk/LayoutTests

Selection API: Update more tests that depend on WebKit's legacy non-standard behavior to set up the selection
https://bugs.webkit.org/show_bug.cgi?id=216844

Reviewed by Ryosuke Niwa.

Discovered a batch of editing tests that accidentally rely on non-standard selection
behavior to set up the tests. In many cases, the tests were clearly written wrong, like
using character offsets but a container that is not a text node. These changes keep the
tests testing the same things they are today.

  • editing/deleting/delete-block-merge-contents-025.html: Use the actual number of child

nodes rather than 2000000000.

  • editing/deleting/delete-blockquote-large-offsets.html: Ditto. The "large offsets" in

the title of this bug might simply be something that can't actually be done in practice,
setting an offset that is much higher than the actual number of children. The old code
simply clamped the high value.

  • editing/execCommand/format-block-typing-style.html: Use a 1 as an offset so we are

past the child text element, rather than 5, which was presumably an attempt at setting
an offset to a particular character, but using the wrong container node.

  • editing/execCommand/insert-nested-lists-in-table.html: Use a computed offset instead

of a hardcoded, and too high, value of 3.

  • editing/execCommand/outdent-selection.html: Use a 1 instead of a 2 for an offset on

a container node that has only one child.

  • editing/input/select-all-clear-input-method.html: Use a 3 instead of a 5 for an

offset in a container that's a text node containing 3 characters.

  • editing/inserting/insert-list-during-node-removal-crash.html: This one is a little

different. The code selected the entire document and used the deleteFromDocument method.
That function is specified to not do an end-user "editing" delete, but to literally
delete all the nodes. That includes all the script nodes. To fix the test, just select
the contents of the body of the document.

  • editing/inserting/insert-list-in-table-assert.html: Use a 0 instead of a 1

for an offset inside an empty style element.

  • editing/inserting/insert-list-in-table-cell-04.html: Use a 1 instead of a 2

as the offest for the end of the element, given the element had only one child.

  • editing/inserting/insert-list-in-table-cell-08.html: Ditto.
  • editing/inserting/page-zoom-font-size.html: Ditto, 1 instead of 12.
  • editing/inserting/replace-at-visible-boundary.html: Select the image by setting end

points before and after it, rather than trying to set offsets inside the image with
offsets of 0 and 1, since 1 is an illegal offset in an image with no children.

  • editing/pasteboard/dataTransfer-setData-getData.html: Use a 1 instead of a 4

for an offset inside the dragme element, which has one child, which was presumably
an attempt at setting an offset to a particular character, but using the wrong
container node.

  • editing/pasteboard/drag-drop-to-data-url.html: Ditto.
  • editing/pasteboard/paste-blockquote-into-blockquote-2.html: Use an offset of 1

instead of 3 inside the block element which has no children, which was presumably
an attempt at setting an offset to a particular character, but using the wrong
container node.

  • editing/pasteboard/paste-blockquote-into-blockquote-3.html: Use a range to set

the selection after the endContent <br> element rather than trying to use an
offset of 1 inside that element, which has no children.

  • editing/pasteboard/paste-blockquote-into-blockquote.html: Use an offset of 1

instead of 3 inside the block element which has no children, which was presumably
an attempt at setting an offset to a particular character, but using the wrong
container node.

  • editing/pasteboard/paste-table-cells.html: Use an offset of 1 instead of 3

inside the table, so the selection is after the table body. Presumably the error
is that someone thought that the table row elements were each children of the table.

8:20 AM Changeset in webkit [267475] by Karl Rackler
  • 3 edits in branches/safari-610-branch/LayoutTests

[ iPadOS wk2 ] fast/forms/ios/time-picker-value-change.html times out or fails and REGRESSION: [ iOS wk2 ] http/wpt/cache-storage/quota-third-party.https.html is a flaky failure
rdar://69407691, rdar://63108701

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-wk2/TestExpectations:
7:44 AM Changeset in webkit [267474] by Philippe Normand
  • 6 edits
    1 add in trunk

media/can-play-av1.html is not spec compliant
https://bugs.webkit.org/show_bug.cgi?id=216873

Reviewed by Eric Carlson.

Source/WebCore:

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::initialize): Add the "av1" codec in the codecs mapping.

LayoutTests:

  • media/media-can-play-av1-expected.txt: Update baseline.
  • media/media-can-play-av1.html: Update test and add another few testing invalid codecs.
  • platform/glib/TestExpectations: Unflag passing test.
  • platform/mac/media/media-can-play-av1-expected.txt: Added. This test is expected to fail on mac.
7:29 AM Changeset in webkit [267473] by Karl Rackler
  • 1 edit
    2 adds 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/fast/text/opticalFontWithTextStyle-expected.txt: Added.
  • platform/ios/fast/text/opticalFontWithTextStyle.html: Added.
7:04 AM Changeset in webkit [267472] by youenn@apple.com
  • 39 edits
    1 copy
    12 adds in trunk

Add support for HTMLMediaElement.setSinkId
https://bugs.webkit.org/show_bug.cgi?id=216696

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/audio-output/META.yml: Added.
  • web-platform-tests/audio-output/idlharness.https.window-expected.txt: Added.
  • web-platform-tests/audio-output/idlharness.https.window.html: Added.
  • web-platform-tests/audio-output/idlharness.https.window.js: Added.
  • web-platform-tests/audio-output/setSinkId.https-expected.txt: Added.
  • web-platform-tests/audio-output/setSinkId.https.html: Added.
  • web-platform-tests/audio-output/w3c-import.log: Added.

Source/WebCore:

Implement setSinkId and sinkId as per https://w3c.github.io/mediacapture-output/#htmlmediaelement-extensions.
Introduce a setting to expose these methods and to enable/disable user gesture requirement.
Add interfaces to change device output for specific media players.
Add support for HLS, MSE and MediaStreamTrack renderers on MacOS.
In case of setting the empty string, the default output device is used

Tests: http/wpt/audio-output/setSinkId.https.html

imported/w3c/web-platform-tests/audio-output/idlharness.https.window.html
imported/w3c/web-platform-tests/audio-output/setSinkId.https.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::exposeDevices):

  • Modules/mediastream/MediaDevices.h:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::audioOutputDevice const):
(WebCore::HTMLMediaElement::setAudioOutputDevice):
(WebCore::HTMLMediaElement::audioOutputDeviceId const):

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::audioOutputHashedDeviceId const):

  • html/HTMLMediaElementAudioOutput.idl: Added.
  • page/Settings.yaml:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::audioOutputDeviceChanged):

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::audioOutputDeviceId const):
(WebCore::MediaPlayerClient::audioOutputDeviceIdOverride const):
(WebCore::MediaPlayer::audioOutputDeviceId const):
(WebCore::MediaPlayer::audioOutputDeviceIdOverride const):

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::audioOutputDeviceChanged):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::audioOutputDeviceChanged):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::audioOutputDeviceChanged):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::audioOutputDeviceChanged):

  • platform/mediastream/AudioMediaStreamTrackRenderer.h:

(WebCore::AudioMediaStreamTrackRenderer::setAudioOutputDevice):

  • platform/mediastream/AudioTrackPrivateMediaStream.cpp:

(WebCore::AudioTrackPrivateMediaStream::setAudioOutputDevice):

  • platform/mediastream/AudioTrackPrivateMediaStream.h:
  • platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.cpp:

(WebCore::AudioMediaStreamTrackRendererCocoa::setAudioOutputDevice):
(WebCore::AudioMediaStreamTrackRendererCocoa::pushSamples):

  • platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.h:
  • platform/mediastream/mac/AudioMediaStreamTrackRendererUnit.cpp:

(WebCore::AudioMediaStreamTrackRendererUnit::setAudioOutputDevice):
(WebCore::AudioMediaStreamTrackRendererUnit::createAudioUnitIfNeeded):

  • platform/mediastream/mac/AudioMediaStreamTrackRendererUnit.h:

Source/WebKit:

Add internal flag to enable/disable user gesture requirement for setting audio output device,
and for per media element setting of audio output device.

  • Shared/WebPreferencesExperimental.yaml:
  • Shared/WebPreferencesInternals.yaml:

Source/WTF:

Add HAVE_AUDIO_OUTPUT_DEVICE_UNIQUE_ID.

  • wtf/PlatformHave.h:

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

Skip new tests on WK1 since mediaDevices is not implemented in WK1.

  • http/wpt/audio-output/setSinkId.https-expected.txt: Added.
  • http/wpt/audio-output/setSinkId.https.html: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
6:36 AM Changeset in webkit [267471] by Philippe Normand
  • 9 edits
    1 add in trunk

REGRESSION(r267383): fast/mediastream/getUserMedia-webaudio.html is failing
https://bugs.webkit.org/show_bug.cgi?id=216813

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Revert r267428 and fixup the GStreamer FFT implementation which broke in r267383.

  • platform/audio/FFTFrame.cpp:

(WebCore::FFTFrame::multiply):

  • platform/audio/FFTFrameStub.cpp:

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

  • platform/audio/gstreamer/FFTFrameGStreamer.cpp:

(WebCore::FFTFrame::doFFT): Update the real and imaginary arrays after applying the FFT.
(WebCore::FFTFrame::multiply): Deleted.

  • platform/audio/mac/FFTFrameMac.cpp:

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

LayoutTests:

Unflag passing tests.

  • platform/glib/TestExpectations:
  • platform/glib/webaudio/Analyser/realtimeanalyser-fftsize-reset-expected.txt:
  • platform/glib/webaudio/Analyser/realtimeanalyser-freq-data-expected.txt: Added. There's

still a FAIL test there though.

  • platform/glib/webaudio/Analyser/realtimeanalyser-multiple-calls-expected.txt:
5:36 AM Changeset in webkit [267470] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, prospective GTK build fix after r267449.

  • svg/SVGPathBlender.cpp: Include <functional>, needed for std::invoke().
5:17 AM Changeset in webkit [267469] by cathiechen
  • 3 edits in trunk/Source/WebCore

Wheel event phases of FrameView are not handled correctly
https://bugs.webkit.org/show_bug.cgi?id=216870

Reviewed by Simon Fraser.

In AsyncScrollingCoordinator::handleWheelEventPhase, the scrollAnimator of a FrameView should be from FrameView itself, not ScrollableArea.
It doesn't call nodeDidHandleEvent to handle wheel event phases when !asyncFrameOrOverflowScrollingEnabled. Should call it after handleWheelEvent.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::handleWheelEventPhase): When nodeID is FrameView, we should use the scrollAnimator of FrameView instead.

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::handleWheelEvent): If wheelEvent is handled, we should call nodeDidHandleEvent to handle the phases.

5:03 AM Changeset in webkit [267468] by Antti Koivisto
  • 6 edits
    2 adds in trunk/Source/WebCore

[LFC][Integration] Add canUseFor functions
https://bugs.webkit.org/show_bug.cgi?id=216869

Reviewed by Zalan Bujtas.

Copy the SLL canUseFor code.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/integration/LayoutIntegrationCoverage.cpp: Added.

(WebCore::LayoutIntegration::canUseForCharacter):
(WebCore::LayoutIntegration::canUseForText):
(WebCore::LayoutIntegration::canUseForFontAndText):
(WebCore::LayoutIntegration::canUseForStyle):
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):
(WebCore::LayoutIntegration::canUseForLineLayout):
(WebCore::LayoutIntegration::canUseForLineLayoutAfterStyleChange):

  • layout/integration/LayoutIntegrationCoverage.h: Added.

Also switch to OptionSet.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::isEnabled):
(WebCore::LayoutIntegration::LineLayout::canUseFor):
(WebCore::LayoutIntegration::LineLayout::canUseForAfterStyleChange):

  • layout/integration/LayoutIntegrationLineLayout.h:

(WebCore::LayoutIntegration::LineLayout::canUseFor): Deleted.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutInlineChildren):

3:27 AM Changeset in webkit [267467] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Garden more failures in webaudio and webrtc tests.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
2:17 AM Changeset in webkit [267466] by Diego Pino Garcia
  • 1 edit
    1 delete in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Remove specific baseline for webaudio/BiquadFilter/tail-time-lowpass.html

The baseline became redudant after r267444.

  • platform/glib/webaudio/BiquadFilter/tail-time-lowpass-expected.txt: Removed.
12:57 AM Changeset in webkit [267465] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Remove redundant RuntimeEnabledFeatures::layoutFormattingContextIntegrationEnabled from Line::Run::hasTrailingLetterSpacing
https://bugs.webkit.org/show_bug.cgi?id=216867

Reviewed by Simon Fraser.

This codepath is only triggered when Line::TrimmableTrailingContent has a partially trimmable run.
However we don't add such runs unless m_shouldIgnoreTrailingLetterSpacing is false (which is already based on the RuntimeEnabledFeatures flag).

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::Run::hasTrailingLetterSpacing const):
(WebCore::Layout::Line::Run::trailingLetterSpacing const):

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