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

Timeline



Oct 19, 2020:

11:40 PM Changeset in webkit [268715] by Ross Kirsling
  • 8 edits in trunk/Source/JavaScriptCore

%TypedArray%#sort helper functions should be globalPrivate
https://bugs.webkit.org/show_bug.cgi?id=217928

Reviewed by Yusuke Suzuki and Alexey Shvayka.

Following r267827, this patch ensures that %TypedArray%.prototype.sort's helper functions:

  1. use parameters instead of capturing variables
  2. are converted from local functions to globalPrivate ones

To this end, also expose Math.min as a link-time constant.

  • builtins/ArrayPrototype.js:

(globalPrivate.sortMerge):
(globalPrivate.sortMin): Deleted.

  • builtins/BuiltinNames.h:
  • builtins/TypedArrayPrototype.js:

(globalPrivate.typedArrayElementCompare): Added.
(globalPrivate.typedArrayMerge): Added.
(globalPrivate.typedArrayMergeSort): Added.
(sort):
(sort.min): Deleted.
(sort.merge): Deleted.
(sort.mergeSort): Deleted.

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

(JSC::JSGlobalObject::init):

  • runtime/MathObject.cpp:
  • runtime/MathObject.h:
11:20 PM Changeset in webkit [268714] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

TranslateTransformOperation shouldn't take in a FloatSize to convert z as a double
https://bugs.webkit.org/show_bug.cgi?id=217246

Reviewed by Darin Adler.

The method used to get z as a double didn't use the FloatSize parameter, so we remove it. Since there already is a z()
method without an argument returning the underlying Length, we rename the method returning a double to make it clear
what type of value it's returning a double, and given how the call sites converts to a float eventually, we return
a float directly. We also follow the same pattern for x and y.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::getTransformFunctionValue):

  • platform/graphics/transforms/TranslateTransformOperation.h:
8:45 PM Changeset in webkit [268713] by sihui_liu@apple.com
  • 6 edits
    21 adds in trunk/LayoutTests

Import speech tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=217910

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/speech-api/META.yml: Added.
  • web-platform-tests/speech-api/SpeechRecognition-basics.https-expected.txt: Added.
  • web-platform-tests/speech-api/SpeechRecognition-basics.https.html: Added.
  • web-platform-tests/speech-api/SpeechSynthesis-speak-ownership-expected.txt: Added.
  • web-platform-tests/speech-api/SpeechSynthesis-speak-ownership.html: Added.
  • web-platform-tests/speech-api/SpeechSynthesis-speak-twice-expected.txt: Added.
  • web-platform-tests/speech-api/SpeechSynthesis-speak-twice.html: Added.
  • web-platform-tests/speech-api/SpeechSynthesis-speak-with-activation-succeeds-expected.txt: Added.
  • web-platform-tests/speech-api/SpeechSynthesis-speak-with-activation-succeeds.html: Added.
  • web-platform-tests/speech-api/SpeechSynthesis-speak-without-activation-fails.tentative-expected.txt: Added.
  • web-platform-tests/speech-api/SpeechSynthesis-speak-without-activation-fails.tentative.html: Added.
  • web-platform-tests/speech-api/SpeechSynthesisUtterance-basics.https-expected.txt: Added.
  • web-platform-tests/speech-api/SpeechSynthesisUtterance-basics.https.html: Added.
  • web-platform-tests/speech-api/historical-expected.txt: Added.
  • web-platform-tests/speech-api/historical.html: Added.
  • web-platform-tests/speech-api/idlharness.window-expected.txt: Added.
  • web-platform-tests/speech-api/idlharness.window.html: Added.
  • web-platform-tests/speech-api/idlharness.window.js: Added.
  • web-platform-tests/speech-api/w3c-import.log: Added.
  • web-platform-tests/speech-api/webspeech.js: Added.

(typeof):
(reco.onstart.onstartTest.step_func):
(reco.onend):
(neverFireEvent):
(this.count):
(this.test):
(this.done):
(CycleTest.this.startEvent):
(CycleTest.this.endEvent):
(CycleTest.this.done):
(CycleTest):

LayoutTests:

  • TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
8:45 PM Changeset in webkit [268712] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix crash in RenderLayerBacking::updateClippingStackLayerGeometry()
https://bugs.webkit.org/show_bug.cgi?id=217940
<rdar://problem/70316952>

Reviewed by Tim Horton.

Crash data suggest that entry.clipData.clippingLayer (which is a WeakRef<RenderLayer>)
can be null, so check it.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateClippingStackLayerGeometry):

7:52 PM Changeset in webkit [268711] by Peng Liu
  • 2 edits in trunk/Source/WebKit

Two feature flag names are incorrect
https://bugs.webkit.org/show_bug.cgi?id=217913

Reviewed by Eric Carlson.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCaptureAudioInGPUProcessEnabled): The correct feature flag
is gpu_process_media.
(WebKit::defaultVP9SWDecoderEnabledOnBattery): The correct feature flag
is sw_vp9_decoder_on_battery.

7:49 PM Changeset in webkit [268710] by Alexey Shvayka
  • 92 edits
    3 adds in trunk

[WebIDL] %Interface%.prototype.constructor should be defined on Set receiver
https://bugs.webkit.org/show_bug.cgi?id=216533

Reviewed by Darin Adler.

JSTests:

  • stress/custom-get-set-proto-chain-put.js: Added.

LayoutTests/imported/w3c:

  • web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver.html: Added.

Source/JavaScriptCore:

Before this change, a Set performed on an %Interface% instance used to overwrite
%Interface%.prototype.constructor instead of defining own "constructor" property.

Since using CustomValue is essential for lazy initialization of WebIDL constructors,
and forwarding Set with correct receiver would require further diverging
CustomValue setter signature from CustomAccessor counterpart, this patch makes a
CustomValue property without a setter to be treated as a data descriptor [1].

This avoids generating a "constructor" setter for every exposed WebIDL interface and
making an extra put() dispatch in putInlineSlow(). Changing the semantics is safe
because there were no setter-less CustomValue properties before this patch.

[1]: https://tc39.es/ecma262/#sec-ordinarysetwithowndescriptor (step 3.e.ii)

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • runtime/CustomGetterSetter.cpp:

(JSC::callCustomSetter):

  • runtime/CustomGetterSetter.h:
  • runtime/JSCJSValue.cpp:

(JSC::JSValue::putToPrimitive): Add missing exception check.

  • runtime/JSCustomGetterSetterFunction.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSObject.cpp:

(JSC::JSObject::putInlineSlow):

  • runtime/Lookup.h:

(JSC::putEntry):

  • runtime/PropertySlot.cpp:

(JSC::PropertySlot::customGetter const):

  • runtime/PropertySlot.h:
  • tools/JSDollarVM.cpp:

Source/WebCore:

  1. Create a setter-less CustomGetterSetter instead of generating "constructor" setter.
  2. Remove unused $needsConstructorTable variable.
  3. Remove [LegacyNoInterfaceObject] branch as it's precluded by NeedsConstructorProperty.

Test: imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver.html

  • bindings/scripts/CodeGeneratorJS.pm:

(GeneratePropertiesHashTable):
(GenerateImplementation):

  • bindings/scripts/test/JS/*: Updated.
7:25 PM Changeset in webkit [268709] by Alexey Shvayka
  • 6 edits in trunk

[WebIDL] convertRecord() should handle duplicate keys for USVString records
https://bugs.webkit.org/show_bug.cgi?id=217612

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/url/urlsearchparams-constructor.any-expected.txt:
  • web-platform-tests/url/urlsearchparams-constructor.any.js:
  • web-platform-tests/url/urlsearchparams-constructor.any.worker-expected.txt:

Source/WebCore:

Before this patch, due to unpaired surrogates replacement in stringToUSVString(),
convertRecord() could append the same key multiple times, violating the spec [1].

This change adds duplicate handling while preserving common case performance,
and aligns WebKit with Blink and Gecko. Since a Proxy object can no longer return
duplicate keys [2], only USVString records needed to be fixed.

Test: imported/w3c/web-platform-tests/url/urlsearchparams-constructor.any.html

[1] https://heycam.github.io/webidl/#es-record (step 4.2.4 + example below)
[2] https://github.com/tc39/ecma262/pull/833

  • bindings/js/JSDOMConvertRecord.h:
7:15 PM Changeset in webkit [268708] by Lauro Moura
  • 7 edits in trunk

REGRESSION(r268115) [GTK] Build failures with GCC 7 (Ubuntu 18.04) and GCC 8 (Debian Buster)
https://bugs.webkit.org/show_bug.cgi?id=217425

Reviewed by Carlos Alberto Lopez Perez.

.:

The root cause is lack of proper <filesystem> support in gcc7/8 (and
incompatibility with llvm's header that was included). As such, we
need to check whether to use <filesystem>, <experimental/filesystem>,
or fallback to the included header.

Note: In some systems like Ubuntu 20.04, gcc-8 can use gcc-9's
libstdc++ and link successfully, but running will fail as it should
actually link with its libstc++fs to provide the correct symbols. As
this is some corner case (Ubuntu's 20 default gcc is 9), LDFLAGS
can be used to overcome this.

  • Source/cmake/OptionsCommon.cmake: Add a HAVE directive to

check whether <experimental/filesystem> is the filesystem impl
available.

  • Source/cmake/WebKitCompilerFlags.cmake: Test first whether

<filesystem> can be used, with <experimental/filestystem> as fallback.

Source/WTF:

  • wtf/StdFilesystem.h: Add fallback to <experimental/filesystem> if available.

Tools:

  • WebKitTestRunner/CMakeLists.txt: Link with stdc++fs if using

<experimental/filesystem>.

7:08 PM Changeset in webkit [268707] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION (268605?): [ Mojave+ wk2 ] 4 wpt/service-workers tests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=217938

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
7:03 PM Changeset in webkit [268706] by Hector Lopez
  • 2 edits in trunk/LayoutTests

Test expectation added for http/wpt/service-workers/service-worker-spinning-install.https.html
https://bugs.webkit.org/show_bug.cgi?id=217669

Unreviewed test gardening.

  • platform/mac/TestExpectations:
5:52 PM Changeset in webkit [268705] by Ryan Haddad
  • 9 edits
    2 adds in trunk/Tools

Unreviewed, reverting r268693.

Re-landing these changes as the underlying issue may have been
with CI infrastructure (and should now be resolved)

Reverted changeset:

"Unreviewed, reverting r268495, r268571, and r268682."
https://bugs.webkit.org/show_bug.cgi?id=217723
https://trac.webkit.org/changeset/268693

5:46 PM Changeset in webkit [268704] by Wenson Hsieh
  • 7 edits in trunk

[MotionMark] Add state change items to represent changes to stroke and fill state
https://bugs.webkit.org/show_bug.cgi?id=217911

Reviewed by Simon Fraser.

Source/WebCore:

Add two new display list items to represent changes to stroke thickness and/or stroke color, and fill color.
These state changes account for almost all of the state changes in MotionMark's canvas rendering subtests (i.e.
lines, arcs, and paths).

This significantly reduces the memory overhead caused by maintaining display list items in the web and GPU
processes when running Canvas Lines and Canvas Arcs. Currently, each SetState item is currently 120 bytes;
after this change, each state change item will decrease to either 24 (for SetFillColor) or 32 (for
SetStrokeState) bytes.

No change in behavior.

  • platform/graphics/displaylists/DisplayList.h:

(WebCore::DisplayList::Item::isStateItem const): Deleted.
(WebCore::DisplayList::Item::isStateItemType): Deleted.

Remove a couple of unused methods, as well as an unused constexpr.

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::Item::sizeInBytes):
(WebCore::DisplayList::SetFillColor::create):
(WebCore::DisplayList::SetFillColor::apply const):
(WebCore::DisplayList::operator<<):

Add the SetFillColor item, which represents a call to GraphicsContext::setFillColor.

(WebCore::DisplayList::SetStrokeState::create):
(WebCore::DisplayList::SetStrokeState::apply const):

Add the SetStrokeState item, which represents a call to GraphicsContext::setStrokeThickness and/or
GraphicsContext::setStrokeColor.

(WebCore::DisplayList::SetState::accumulate): Deleted.

Remove an unused method.

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::SetFillColor::color const):
(WebCore::DisplayList::SetFillColor::SetFillColor):
(WebCore::DisplayList::SetFillColor::encode const):
(WebCore::DisplayList::SetFillColor::decode):
(WebCore::DisplayList::SetStrokeState::color const):
(WebCore::DisplayList::SetStrokeState::hasColor const):
(WebCore::DisplayList::SetStrokeState::thickness const):
(WebCore::DisplayList::SetStrokeState::hasThickness const):

Instead of using two Optional<T> members, store two bool flags corresponding to thickness and stroke color.
This allows us to make the SetStrokeState item 32 bytes instead of 40 bytes, due to the extra padding that
would otherwise exist after each of the Optional members.

(WebCore::DisplayList::SetStrokeState::SetStrokeState):
(WebCore::DisplayList::SetStrokeState::encode const):
(WebCore::DisplayList::SetStrokeState::decode):
(WebCore::DisplayList::Item::encode const):
(WebCore::DisplayList::Item::decode):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::containsOnlyStrokeColorOrThicknessChange):
(WebCore::DisplayList::containsOnlyFillColorChange):
(WebCore::DisplayList::createStateChangeItem):

Instead of always appending SetState items, append either SetStrokeState or SetFillColor if the only
changed flags are stroke thickness or stroke color, or fill color (respectively).

(WebCore::DisplayList::Recorder::willAppendItem):

LayoutTests:

  • displaylists/canvas-display-list-expected.txt: Rebaseline an existing display list item dump test.
5:41 PM Changeset in webkit [268703] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

[mac-wk1] inspector/debugger/breakpoint-resolve-when-script-added.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=217934

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Mark test as flaky.
  • platform/mac/TestExpectations: Remove previous entry marking it slow for debug.
5:29 PM Changeset in webkit [268702] by Jonathan Bedard
  • 2 edits in trunk/Tools

[results.webkit.org] Refresh S3 context when token expires
https://bugs.webkit.org/show_bug.cgi?id=217924
<rdar://problem/70381137>

Reviewed by Dewei Zhu.

  • Scripts/libraries/resultsdbpy/resultsdbpy/model/s3_archiver.py:

(S3Archiver.init): Add _cached_token variable.
(S3Archiver.enter): Refresh S3 resource when the current token and cached token don't match.
(S3Archiver.exit): Clear out the cached token.

5:08 PM Changeset in webkit [268701] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix possible crash in GraphicsLayerCA::computeVisibleAndCoverageRect()
https://bugs.webkit.org/show_bug.cgi?id=217930
<rdar://problem/70316943>

Reviewed by Tim Horton.

If we made a m_overflowControlsHostLayerAncestorClippingStack, make sure we unparent
its layers when tearing down the RenderLayerBacking, and when we determine that we
longer need a m_ancestorClippingStack (having a m_overflowControlsHostLayerAncestorClippingStack
implies that we have a m_ancestorClippingStack).

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::destroyGraphicsLayers):
(WebCore::RenderLayerBacking::updateAncestorClipping):

4:50 PM Changeset in webkit [268700] by Chris Dumez
  • 38 edits in trunk/Source/WebCore

Replace execStateFrom*() functions with globalObject() overloads
https://bugs.webkit.org/show_bug.cgi?id=217912

Reviewed by Darin Adler.

Introduce globalObject() overloads to replace existing execStateFrom*() functions.
This is a first step to promote code sharing. Ideally, code would not have to
differentiate workers from worklets as much as possible.

No new tests, no Web-facing behavior change.

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::scriptExecutionContext const):

  • bindings/js/ScriptState.cpp:

(WebCore::execStateFromWorkerOrWorkletGlobalScope):

  • bindings/js/ScriptState.h:
  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::globalScopeWrapper):

  • bindings/js/WorkerScriptController.h:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::vm):
(WebCore::ScriptExecutionContext::execState):

  • inspector/agents/worker/WorkerAuditAgent.cpp:

(WebCore::WorkerAuditAgent::injectedScriptForEval):

  • inspector/agents/worker/WorkerDebuggerAgent.cpp:

(WebCore::WorkerDebuggerAgent::injectedScriptForEval):

  • inspector/agents/worker/WorkerRuntimeAgent.cpp:

(WebCore::WorkerRuntimeAgent::injectedScriptForEval):

  • workers/WorkerOrWorkletScriptController.h:
  • worklets/WorkletScriptController.cpp:

(WebCore::WorkletScriptController::globalScopeWrapper):

  • worklets/WorkletScriptController.h:
4:49 PM Changeset in webkit [268699] by Alan Coon
  • 1 copy in tags/Safari-610.2.11.51.3

Tag Safari-610.2.11.51.3.

4:48 PM Changeset in webkit [268698] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS Debug ] imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/before-prepare-createHTMLDocument-success-empty-src-module.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217931

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:04 PM Changeset in webkit [268697] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Adjust a comment about an antique way to override the UA on iOS

  • platform/ios/UserAgentIOS.mm:

(WebCore::standardUserAgentWithApplicationName):
Reference https://bugs.webkit.org/show_bug.cgi?id=217927
which has a plan for getting rid of this (and mentions at least one
client who currently depends on this).

3:38 PM Changeset in webkit [268696] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

[MotionMark] Make DisplayList::FillPath discard its WebCore::Path after applying
https://bugs.webkit.org/show_bug.cgi?id=217906

Reviewed by Tim Horton.

Let FillPath::apply clear out the platform CGPathRef in m_path after application to avoid accumulating a
pool of CGPathRefs for each Path that is being filled. This gives us a small (~1-2%) win on the Canvas Arcs
subtest in MotionMark, which processes ~1.7 million FillPath operations. To achieve this, instead of using
WTFMove, add a new helper method on Path to explicitly clear out the platform path pointer in the case where
it can be regenerated from inline data.

  • platform/graphics/Path.h:

(WebCore::Path::releasePlatformPathIfPossible const):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::FillPath::apply const):
(WebCore::DisplayList::StrokePath::apply const):

  • platform/graphics/displaylists/DisplayListItems.h:
3:12 PM Changeset in webkit [268695] by commit-queue@webkit.org
  • 9 edits
    2 deletes in trunk

Unreviewed, reverting r267175 and r267779.
https://bugs.webkit.org/show_bug.cgi?id=217923

Regressed NYTimes's DOM content loaded time by 400%

Reverted changesets:

"MutationObserverRegistration should be ref counted"
https://bugs.webkit.org/show_bug.cgi?id=216528
https://trac.webkit.org/changeset/267175

"Crash while loading a confluence page"
https://bugs.webkit.org/show_bug.cgi?id=217111
https://trac.webkit.org/changeset/267779

3:08 PM Changeset in webkit [268694] by Alan Coon
  • 1 copy in tags/Safari-611.1.3.3

Tag Safari-611.1.3.3.

3:08 PM Changeset in webkit [268693] by Ryan Haddad
  • 9 edits
    1 delete in trunk/Tools

Unreviewed, reverting r268495, r268571, and r268682.

Caused failures for some internal build configurations

Reverted changesets:

"[Testing] Generate test header key map for DumpRenderTree"
https://bugs.webkit.org/show_bug.cgi?id=217723
https://trac.webkit.org/changeset/268495

"Attempt to fix the build."
https://trac.webkit.org/changeset/268571

"Switch to a static pattern for DumpRenderTree preferences
generation to avoid ambiguous rules"
https://bugs.webkit.org/show_bug.cgi?id=217907
https://trac.webkit.org/changeset/268682

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

REGRESSION(r268615-268616?): [ Win10 wk1 EWS ] 3 animation tests are a constant failure
https://bugs.webkit.org/show_bug.cgi?id=217922

Unreviewed test gardening.

  • platform/win/TestExpectations:
3:00 PM Changeset in webkit [268691] by commit-queue@webkit.org
  • 18 edits
    2 copies
    2 adds in trunk/Source/WebInspectorUI

Web Inspector: Support three-column pane arrangement in Elements Tab
https://bugs.webkit.org/show_bug.cgi?id=217396

Patch by Patrick Angle <Patrick Angle> on 2020-10-19
Reviewed by Devin Rousso.

The new multiple-sidebar layout for the Elements tab (and any other tab for which it is enabled in the future)
is achieved with a new WI.MultiSidebar, which is itself a WI.Sidebar and contains multiple new WI.SingleSidebar.
SingleSidebar replaces usage of the former Sidebar in favor of Sidebar being a common base shared between the
SingleSidebar and MultiSidebar.

A MultiSidebar supports showing multiple sidebars, and makes that decision based on the user having enabled
showing multiple sidebars and the WI.SidebarPanel.prototype.allowExclusivePresentation property on specific
SidebarPanels. The MultiSidebar manages these sidebars and their presentation, with some added properties to
manage the visibility of multiple sidebars. A MultiSidebar can display any number of sidebar panels
simultaneously. A MultiSidebar will always have a primarySidebar (although it may be collapsed), which is
where most panels will be presented. Additional panels that are marked as allowing exclusive presentation are
laid out in natural language order when the MultiSidebar's side is Leading and reverse order when it is
Trailing. This allows the sidebar to remain conceptually anchored, so the primarySidebar in the set does not
change locations when adding or removing other sidebars from the set.

The presentation of more than the primarySidebar is dependant on the following conditions:

  1. The tab (e.g. Elements Tab) must allow the three-panel layout.
  2. At least one panel in the MultiSidebar must allow exclusive presentation (e.g. Styles when enabled in

Experimental Settings).

  1. There must be at least one other panel to keep in the primary sidebar.
  2. There must be enough available space horizontally to satisfy the minimum width of both the primarySidebar

and any sidebar panels that will be shown by themselves.

This feature is behind an Experimental Feature setting, and is disabled by default.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Main.js: Use new SingleSidebar and MultiSidebars, include each detail sidebar in maximum

width calculations, and listen for both width and collapse events.

  • UserInterface/Base/Setting.js: Added setting for allowing Styles panel to be exclusive.
  • UserInterface/Main.html:
  • UserInterface/Views/ComputedStyleDetailsPanel.css: Hide shared elements between Styles and Computed when both

are visible.
(.multi-sidebar.showing-multiple > .sidebar > .panel.details.style-computed > .content > .pseudo-classes,):

  • UserInterface/Views/ElementsTabContentView.js:

(WI.ElementsTabContentView.prototype.get allowMultipleDetailSidebars):

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.css: Show pseudo-class rules as if they were a navigation

bar only when shown exclusively. Otherwise, still allow them to wrap like normal.
(.panel.exclusive-presentation.details.css-style > .content > .pseudo-classes):
(.panel.exclusive-presentation.details.css-style > .content > .pseudo-classes > .group):
(.panel.exclusive-presentation.details.css-style > .content > .rules):
(.sidebar > .panel.details.css-style.style-rules > .content ~ :matches(.options-container, .class-list-container)): Removed.

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.js: If showing exclusively, prevent wrapping pseudo-class

rules by reporting their combined minimum width.
(WI.GeneralStyleDetailsSidebarPanel.prototype.get minimumWidth):

  • UserInterface/Views/Main.css:

(#tab-browser): Match existing assumption for minimum tab-browser width.
(#details-sidebar): Match assumption for minimum sidebar width.

  • UserInterface/Views/MultiSidebar.css: Added.

(.multi-sidebar):
(.multi-sidebar.trailing):
(.multi-sidebar.collapsed):

  • UserInterface/Views/MultiSidebar.js: A Sidebar subclass that manages multiple SingleSidebars, and dynamically

presents them as space is available.
(WI.MultiSidebar):
(WI.MultiSidebar.prototype.get sidebars):
(WI.MultiSidebar.prototype.get primarySidebar):
(WI.MultiSidebar.prototype.get allowMultipleSidebars):
(WI.MultiSidebar.prototype.set allowMultipleSidebars):
(WI.MultiSidebar.prototype.get multipleSidebarsVisible):
(WI.MultiSidebar.prototype.set multipleSidebarsVisible):
(WI.MultiSidebar.prototype.addSidebar):
(WI.MultiSidebar.prototype.removeSidebar):
(WI.MultiSidebar.prototype.get selectedSidebarPanel):
(WI.MultiSidebar.prototype.set selectedSidebarPanel):
(WI.MultiSidebar.prototype.get collapsable):
(WI.MultiSidebar.prototype.set collapsable):
(WI.MultiSidebar.prototype.get minimumWidth):
(WI.MultiSidebar.prototype.get width):
(WI.MultiSidebar.prototype.didInsertSidebarPanel):
(WI.MultiSidebar.prototype.didRemoveSidebarPanel):
(WI.MultiSidebar.prototype.didSetCollapsed):
(WI.MultiSidebar.prototype.get _canShowMultipleSidebars):
(WI.MultiSidebar.prototype._updateMinimumWidthForMultipleSidebars):
(WI.MultiSidebar.prototype.get _hasWidthForMultipleSidebars):
(WI.MultiSidebar.prototype.get _hasSidebarPanelSupportingExclusive):
(WI.MultiSidebar.prototype._updateMultipleSidebarLayout):
(WI.MultiSidebar.prototype._canSidebarPanelBeExclusive):
(WI.MultiSidebar.prototype._makeSidebarPanelExclusive):
(WI.MultiSidebar.prototype._makeSidebarPanelNotExclusive):
(WI.MultiSidebar.prototype._nonExclusiveIndexOfSidebarPanel):
(WI.MultiSidebar.prototype._findSidebarForSidebarPanel):
(WI.MultiSidebar.prototype._addSidebarEventListeners):
(WI.MultiSidebar.prototype._removeSidebarEventListeners):
(WI.MultiSidebar.prototype._handleSidebarPanelSelected):
(WI.MultiSidebar.prototype._handleSidebarCollapsedStateDidChange):
(WI.MultiSidebar.prototype._handleSidebarWidthDidChange):
(WI.MultiSidebar.prototype._handleWindowResize):

  • UserInterface/Views/RulesStyleDetailsSidebarPanel.js: If enabled in settings, allow Styles panel to be its own

sidebar.
(WI.RulesStyleDetailsSidebarPanel.prototype.get allowExclusivePresentation):
(WI.RulesStyleDetailsSidebarPanel):

  • UserInterface/Views/SettingsTabContentView.js: Add setting for showing the Styles panel as its own sidebar.

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

  • UserInterface/Views/Sidebar.css: Moved navigation and resizing to SingleSidebar.css.

(.sidebar):
(.sidebar.collapsed):
(.sidebar > .navigation-bar): Deleted.
(.sidebar.has-navigation-bar > .panel): Deleted.
(body[dir=ltr] .sidebar.right > .resizer,): Deleted.
(body[dir=ltr] .sidebar.left > .resizer,): Deleted.
(body[dir=ltr] .sidebar.left,): Deleted.
(body[dir=ltr] .sidebar.right,): Deleted.

  • UserInterface/Views/Sidebar.js: Common base class for both SingleSidebar and MultiSidebar. Moved existing

navigation and resizing behavior to SingleSidebar.
(WI.Sidebar):
(WI.Sidebar.get sidebarPanels):
(WI.Sidebar.prototype.get side):
(WI.Sidebar.prototype.addSidebarPanel):
(WI.Sidebar.prototype.insertSidebarPanel):
(WI.Sidebar.prototype.removeSidebarPanel):
(WI.Sidebar.prototype.get selectedSidebarPanel):
(WI.Sidebar.prototype.set selectedSidebarPanel):
(WI.Sidebar.prototype.get collapsed):
(WI.Sidebar.prototype.set collapsed):
(WI.Sidebar.prototype.get collapsable):
(WI.Sidebar.prototype.set collapsable):
(WI.Sidebar.prototype.get minimumWidth):
(WI.Sidebar.prototype.get maximumWidth):
(WI.Sidebar.prototype.shouldInsertSidebarPanel):
(WI.Sidebar.prototype.didInsertSidebarPanel):
(WI.Sidebar.prototype.didRemoveSidebarPanel):
(WI.Sidebar.prototype.willSetSelectedSidebarPanel):
(WI.Sidebar.prototype.didSetSelectedSidebarPanel):
(WI.Sidebar.prototype.didSetCollapsed):
(WI.Sidebar.prototype._findSidebarPanel):
(WI.Sidebar.prototype.get width): Deleted.
(WI.Sidebar.prototype.set width): Deleted.
(WI.Sidebar.prototype.get sidebarPanels): Deleted.
(WI.Sidebar.prototype.findSidebarPanel): Deleted.
(WI.Sidebar.prototype.resizerDragStarted): Deleted.
(WI.Sidebar.prototype.resizerDragging): Deleted.
(WI.Sidebar.prototype.resizerDragEnded): Deleted.
(WI.Sidebar.prototype._recalculateWidth): Deleted.
(WI.Sidebar.prototype._navigationItemSelected): Deleted.

  • UserInterface/Views/SidebarPanel.js: Support tracking exclusive display as well as enabling exclusive display.

(WI.SidebarPanel):
(WI.SidebarPanel.prototype.get exclusive):
(WI.SidebarPanel.prototype.set exclusive):
(WI.SidebarPanel.prototype.get allowExclusivePresentation):

  • UserInterface/Views/SingleSidebar.css: Moved navigation and resizing from Sidebar.css.

(.single-sidebar > .navigation-bar):
(.single-sidebar.has-navigation-bar > .panel):
(body[dir=ltr] .single-sidebar.trailing > .resizer,):
(body[dir=ltr] .single-sidebar.leading > .resizer,):
(.single-sidebar.leading):
(.single-sidebar.trailing):

  • UserInterface/Views/SingleSidebar.js: Added. Contains navigation and resizing previously in Sidebar.js.

(WI.SingleSidebar):
(WI.SingleSidebar.prototype.get allowResizingToCollapse):
(WI.SingleSidebar.prototype.set allowResizingToCollapse):
(WI.SingleSidebar.prototype.get minimumWidth):
(WI.SingleSidebar.prototype.get width):
(WI.SingleSidebar.prototype.set width):
(WI.SingleSidebar.prototype.shouldInsertSidebarPanel):
(WI.SingleSidebar.prototype.didInsertSidebarPanel):
(WI.SingleSidebar.prototype.didRemoveSidebarPanel):
(WI.SingleSidebar.prototype.willSetSelectedSidebarPanel):
(WI.SingleSidebar.prototype.didSetSelectedSidebarPanel):
(WI.SingleSidebar.prototype.didSetCollapsed):
(WI.SingleSidebar.prototype.resizerDragStarted):
(WI.SingleSidebar.prototype.resizerDragging):
(WI.SingleSidebar.prototype.resizerDragEnded):
(WI.SingleSidebar.prototype._recalculateWidth):
(WI.SingleSidebar.prototype._handleNavigationItemSelected):

  • UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css: The last rule row should not show a bottom border,

otherwise a double-border is visible at the bottom of the sidebar.
(.sidebar > .panel.details.css-style > .content > .rules > :nth-last-child(1 of .spreadsheet-css-declaration)):

  • UserInterface/Views/TabBrowser.js: Updated naming of handlers and added support for multiple detail sidebars.

(WI.TabBrowser):
(WI.TabBrowser._handleSidebarPanelSelected):
(WI.TabBrowser.prototype._handleSidebarWidthDidChange):
(WI.TabBrowser.prototype._handleMultiSidebarSidebarAdded):
(WI.TabBrowser.prototype._showDetailsSidebarPanelsForTabContentView):
(WI.TabBrowser._sidebarPanelSelected): Deleted.
(WI.TabBrowser.prototype._sidebarCollapsedStateDidChange): Deleted.
(WI.TabBrowser.prototype._sidebarWidthDidChange): Deleted.

  • UserInterface/Views/TabContentView.js:

(WI.TabContentView.prototype.get allowMultipleDetailSidebars):

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

[GPU Process] RemoteAudioDestination::render() should not need to dispatch to the main thread to do IPC
https://bugs.webkit.org/show_bug.cgi?id=217920

Reviewed by Alex Christensen.

Source/WebKit:

RemoteAudioDestination::render() should not need to dispatch to the main thread to do IPC as this is bad
for performance and IPC::Connection::sendWithAsyncReply() already does locking internally for thread-safety.
The only thing that was preventing us from calling sendWithAsyncReply() from the audio rendering thread was
a threading assertion in CompletionHandler that made sure that the completion handler was always called on
the thread the completion handler was constructed on. To avoid this issue, I added a paramater to the
CompletionHandler constructor allowing the caller to indicate it expects the completion handler to get called
on the main thread. I am now using this new flag in sendWithAsyncReply() and at its call site in
RemoteAudioDestination::render().

No new tests, no Web-facing behavior change.

  • GPUProcess/media/RemoteAudioDestinationManager.cpp:

(WebKit::RemoteAudioDestination::render):

  • Platform/IPC/Connection.h:

(IPC::Connection::sendWithAsyncReply):

Source/WTF:

Add an optional parameter to the CompletionHandler constructor allowing the caller to indicate it expects
the completion handler to get call on the main thread instead of the construction thread.

  • wtf/CompletionHandler.h:

(WTF::CompletionHandler<Out):

2:35 PM Changeset in webkit [268689] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] use -o while unzipping layout-test-results.zip
https://bugs.webkit.org/show_bug.cgi?id=217914

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(ExtractTestResults.init):

  • BuildSlaveSupport/ews-build/steps_unittest.py:
2:14 PM Changeset in webkit [268688] by commit-queue@webkit.org
  • 4 edits in trunk

test262: test/language/expressions/conditional/in-branch-1.js
https://bugs.webkit.org/show_bug.cgi?id=217879

Patch by Mark Cohen <m@mpc.sh> on 2020-10-19
Reviewed by Darin Adler.

JSTests:

I fixed this test262 failure - see the JSC ChangeLog for more details.
All I've done in this directory is remove the expected failure from
test262/expectations.yaml.

  • test262/expectations.yaml:

Source/JavaScriptCore:

The test262 test in question checks that the parser respects the +In
parameter on the left-hand AssignmentExpression (between ? and :)
in the ternary operator grammar. The relevant piece of the spec can be
found here (https://tc39.es/ecma262/#sec-conditional-operator). The
test checks this by embedding a ternary with left-hand
AssignmentExpression that contains the in keyword in the
initializing statement of a for loop, where in would normally be
disallowed. All this patch does is unconditionally allow the in
keyword inside the left-hand AssignmentExpression of a ternary.

This also fixes a variable typo in parseForStatement.

  • parser/Parser.cpp:
2:12 PM Changeset in webkit [268687] by Alan Coon
  • 8 edits in branches/safari-611.1.3-branch/Source

Versioning.

WebKit-7611.1.3.3

2:10 PM Changeset in webkit [268686] by Antti Koivisto
  • 13 edits
    47 adds
    4 deletes in trunk/LayoutTests

Update imported/w3c/web-platform-tests/css/selectors/
https://bugs.webkit.org/show_bug.cgi?id=217905

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/css/selectors/first-line-bidi-001-expected.html: Added.
  • web-platform-tests/css/selectors/first-line-bidi-001.html: Added.
  • web-platform-tests/css/selectors/first-line-bidi-002-expected.html: Added.
  • web-platform-tests/css/selectors/first-line-bidi-002.html: Added.
  • web-platform-tests/css/selectors/focus-visible-007.html:
  • web-platform-tests/css/selectors/focus-visible-011.html:
  • web-platform-tests/css/selectors/is-where-error-recovery-expected.txt: Added.
  • web-platform-tests/css/selectors/is-where-error-recovery.html: Added.
  • web-platform-tests/css/selectors/is-where-not-expected.txt: Added.
  • web-platform-tests/css/selectors/is-where-not.html: Added.
  • web-platform-tests/css/selectors/is-where-parsing-expected.txt:
  • web-platform-tests/css/selectors/is-where-parsing.html:
  • web-platform-tests/css/selectors/is-where-pseudo-classes-expected.txt: Added.
  • web-platform-tests/css/selectors/is-where-pseudo-classes.html: Added.
  • web-platform-tests/css/selectors/is-where-pseudo-elements-expected.html: Added.
  • web-platform-tests/css/selectors/is-where-pseudo-elements.html: Added.
  • web-platform-tests/css/selectors/is-where-shadow-expected.txt: Added.
  • web-platform-tests/css/selectors/is-where-shadow.html: Added.
  • web-platform-tests/css/selectors/is-where-visited-expected.html: Added.
  • web-platform-tests/css/selectors/is-where-visited.html: Added.
  • web-platform-tests/css/selectors/not-links-expected.html:
  • web-platform-tests/css/selectors/not-links.html:
  • web-platform-tests/css/selectors/old-tests/css3-modsel-23.xml: Removed.
  • web-platform-tests/css/selectors/old-tests/css3-modsel-24.xml: Removed.
  • web-platform-tests/css/selectors/old-tests/css3-modsel-68.xml: Removed.
  • web-platform-tests/css/selectors/old-tests/css3-modsel-69.xml: Removed.
  • web-platform-tests/css/selectors/old-tests/w3c-import.log:
  • web-platform-tests/css/selectors/parsing/parse-attribute-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-attribute.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-child-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-child.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-class-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-class.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-descendant-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-descendant.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-id-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-id.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-is-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-is.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-not-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-not.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-sibling-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-sibling.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-universal-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-universal.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-where-expected.txt: Added.
  • web-platform-tests/css/selectors/parsing/parse-where.html: Added.
  • web-platform-tests/css/selectors/parsing/w3c-import.log: Added.
  • web-platform-tests/css/selectors/pseudo-enabled-disabled-expected.txt: Added.
  • web-platform-tests/css/selectors/pseudo-enabled-disabled.html: Added.
  • web-platform-tests/css/selectors/query/query-is-expected.txt: Added.
  • web-platform-tests/css/selectors/query/query-is.html: Added.
  • web-platform-tests/css/selectors/query/query-where-expected.txt: Added.
  • web-platform-tests/css/selectors/query/query-where.html: Added.
  • web-platform-tests/css/selectors/query/w3c-import.log: Added.
  • web-platform-tests/css/selectors/w3c-import.log:
  • web-platform-tests/css/support/query-testcommon.js: Added.

(test_query_selector):

  • web-platform-tests/css/support/w3c-import.log:

LayoutTests:

2:06 PM Changeset in webkit [268685] by Chris Dumez
  • 7 edits
    2 adds in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/webaudio from upstream
https://bugs.webkit.org/show_bug.cgi?id=217909

Reviewed by Eric Carlson.

Resync web-platform-tests/webaudio from upstream 357b8f6365d9080a06.

  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-constructor-options.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-constructor-options.https.html:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-promises.https.html:
  • web-platform-tests/webaudio/the-audio-api/the-constantsourcenode-interface/test-constantsourcenode.html:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/transferred-buffer-output-expected.txt: Added.
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/transferred-buffer-output.html: Added.
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/w3c-import.log:
  • web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/offlineaudiocontext-detached-execution-context.tentative.html:
1:42 PM Changeset in webkit [268684] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening for webkit.org/b/217862.

  • platform/mac/TestExpectations: Mark the new test as slow for macOS debug queues.
1:31 PM Changeset in webkit [268683] by Truitt Savell
  • 1 edit
    21 moves in trunk/LayoutTests

Fix name of test exepctations after r268679, change actual to expected
https://bugs.webkit.org/show_bug.cgi?id=209813

Unreviewed test gardening.

  • platform/mac-mojave/editing/selection/3690703-2-expected.txt: Renamed from LayoutTests/platform/mac-mojave/editing/selection/3690703-2-actual.txt.
  • platform/mac-mojave/editing/selection/3690703-expected.txt: Renamed from LayoutTests/platform/mac-mojave/editing/selection/3690703-actual.txt.
  • platform/mac-mojave/editing/selection/3690719-expected.txt: Renamed from LayoutTests/platform/mac-mojave/editing/selection/3690719-actual.txt.
  • platform/mac-mojave/fast/block/basic/001-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/block/basic/001-actual.txt.
  • platform/mac-mojave/fast/block/float/float-avoidance-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/block/float/float-avoidance-actual.txt.
  • platform/mac-mojave/fast/css/rtl-ordering-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/css/rtl-ordering-actual.txt.
  • platform/mac-mojave/fast/forms/basic-inputs-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/forms/basic-inputs-actual.txt.
  • platform/mac-mojave/fast/forms/input-appearance-spinbutton-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/forms/input-appearance-spinbutton-actual.txt.
  • platform/mac-mojave/fast/forms/input-disabled-color-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/forms/input-disabled-color-actual.txt.
  • platform/mac-mojave/fast/forms/input-readonly-dimmed-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/forms/input-readonly-dimmed-actual.txt.
  • platform/mac-mojave/fast/forms/option-text-clip-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/forms/option-text-clip-actual.txt.
  • platform/mac-mojave/fast/forms/plaintext-mode-2-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/forms/plaintext-mode-2-actual.txt.
  • platform/mac-mojave/fast/forms/select-change-listbox-to-popup-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/forms/select-change-listbox-to-popup-actual.txt.
  • platform/mac-mojave/fast/forms/select-change-popup-to-listbox-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/forms/select-change-popup-to-listbox-actual.txt.
  • platform/mac-mojave/fast/forms/textfield-outline-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/forms/textfield-outline-actual.txt.
  • platform/mac-mojave/fast/text/indic-expected.txt: Renamed from LayoutTests/platform/mac-mojave/fast/text/indic-actual.txt.
  • platform/mac-mojave/media/video-display-toggle-expected.txt: Renamed from LayoutTests/platform/mac-mojave/media/video-display-toggle-actual.txt.
  • platform/mac-mojave/media/video-volume-slider-expected.txt: Renamed from LayoutTests/platform/mac-mojave/media/video-volume-slider-actual.txt.
  • platform/mac-mojave/tables/mozilla/bugs/bug30692-expected.txt: Renamed from LayoutTests/platform/mac-mojave/tables/mozilla/bugs/bug30692-actual.txt.
  • platform/mac-mojave/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt: Renamed from LayoutTests/platform/mac-mojave/tables/mozilla/other/wa_table_thtd_rowspan-actual.txt.
  • platform/mac-mojave/tables/mozilla/other/wa_table_tr_align-expected.txt: Renamed from LayoutTests/platform/mac-mojave/tables/mozilla/other/wa_table_tr_align-actual.txt.
12:40 PM Changeset in webkit [268682] by weinig@apple.com
  • 3 edits in trunk/Tools

Switch to a static pattern for DumpRenderTree preferences generation to avoid ambiguous rules
https://bugs.webkit.org/show_bug.cgi?id=217907

Reviewed by Simon Fraser.

  • DumpRenderTree/DerivedSources-input.xcfilelist:

Add DerivedSources.make and generate-derived-sources.sh to ensure things get rebuilt when they change.

  • DumpRenderTree/DerivedSources.make:

Switch to using a static pattern to avoid ambiguous and ciruclar rules.

12:07 PM Changeset in webkit [268681] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ WinCairo ] animations/needs-layout.html is a constant ImageOnlyFailure
https://bugs.webkit.org/show_bug.cgi?id=217917

Unreviewed test gardening.

  • platform/wincairo/TestExpectations:
12:04 PM Changeset in webkit [268680] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: REGRESSION(r265231): Overlay: node info sometimes draws on one line
https://bugs.webkit.org/show_bug.cgi?id=217416

Patch by Patrick Angle <Patrick Angle> on 2020-10-19
Reviewed by Brian Burg.

No new tests - user interface fix.

Restored advancing to the next line for drawing two-line element titles (for elements with a Role).

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::drawElementTitle):

12:03 PM Changeset in webkit [268679] by Truitt Savell
  • 1 edit
    26 adds in trunk/LayoutTests

Rebaseline tests for Mojave after the changes in r268520
https://bugs.webkit.org/show_bug.cgi?id=209813

Unreviewed test gardening

  • platform/mac-mojave/editing/selection/3690703-2-actual.txt: Added.
  • platform/mac-mojave/editing/selection/3690703-actual.txt: Added.
  • platform/mac-mojave/editing/selection/3690719-actual.txt: Added.
  • platform/mac-mojave/fast/block/basic/001-actual.txt: Added.
  • platform/mac-mojave/fast/block/float/float-avoidance-actual.txt: Added.
  • platform/mac-mojave/fast/css/rtl-ordering-actual.txt: Added.
  • platform/mac-mojave/fast/forms/basic-inputs-actual.txt: Added.
  • platform/mac-mojave/fast/forms/input-appearance-spinbutton-actual.txt: Added.
  • platform/mac-mojave/fast/forms/input-disabled-color-actual.txt: Added.
  • platform/mac-mojave/fast/forms/input-readonly-dimmed-actual.txt: Added.
  • platform/mac-mojave/fast/forms/option-text-clip-actual.txt: Added.
  • platform/mac-mojave/fast/forms/plaintext-mode-2-actual.txt: Added.
  • platform/mac-mojave/fast/forms/select-change-listbox-to-popup-actual.txt: Added.
  • platform/mac-mojave/fast/forms/select-change-popup-to-listbox-actual.txt: Added.
  • platform/mac-mojave/fast/forms/textfield-outline-actual.txt: Added.
  • platform/mac-mojave/fast/text/indic-actual.txt: Added.
  • platform/mac-mojave/media/video-display-toggle-actual.txt: Added.
  • platform/mac-mojave/media/video-volume-slider-actual.txt: Added.
  • platform/mac-mojave/tables/mozilla/bugs/bug30692-actual.txt: Added.
  • platform/mac-mojave/tables/mozilla/other/wa_table_thtd_rowspan-actual.txt: Added.
  • platform/mac-mojave/tables/mozilla/other/wa_table_tr_align-actual.txt: Added.
11:56 AM Changeset in webkit [268678] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

WebKit-7611.1.5

11:49 AM Changeset in webkit [268677] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ WinCairo ] animations/additive-transform-animations.html is a constant ImageOnlyFailure
https://bugs.webkit.org/show_bug.cgi?id=217915

Unreviewed test gardening.

  • platform/wincairo/TestExpectations:
11:42 AM Changeset in webkit [268676] by Alan Coon
  • 1 copy in branches/safari-611.1.4-branch

New branch.

11:28 AM Changeset in webkit [268675] by Alan Coon
  • 2 edits in branches/safari-610.2.11.51-branch/Source/WebKit

Cherry-pick r268570. rdar://problem/70447631

v2: WebKit::XPCServiceEventHandler block should call exit() on the main thread
<https://webkit.org/b/217773>
<rdar://problem/70275659>

Reviewed by Geoff Garen.

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm: (WebKit::XPCServiceEventHandler):
  • Use NSRunLoop instead of libdispatch to run code on the main thread since libdispatch can randomly pick a new main thread when exit() is called on the original main thread.

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

11:17 AM Changeset in webkit [268674] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Use feature flag to support Buildbot 2 code
https://bugs.webkit.org/show_bug.cgi?id=217834

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/loadConfig.py:

(loadBuilderConfig):

11:15 AM Changeset in webkit [268673] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitpy] Use webkitcorepy's autoinstaller for keyring
https://bugs.webkit.org/show_bug.cgi?id=217839
<rdar://problem/70389225>

Reviewed by Aakash Jain.

  • Scripts/webkitpy/init.py: Add keyring.
  • Scripts/webkitpy/common/net/credentials.py:
  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook.find_module): Remove _install_keyring.
(AutoinstallImportHook._install_keyring): Deleted.

11:12 AM Changeset in webkit [268672] by Alan Coon
  • 3 edits in branches/safari-610.2.11.51-branch/Source/WebCore

Cherry-pick r266787. rdar://problem/70447326

AccessibilityMenuList and MenuListPopup notifications need to be posted asynchronously.
https://bugs.webkit.org/show_bug.cgi?id=216309
<rdar://problem/68108824>

Reviewed by Chris Fleizach.

MenuList notifications were posted synchronously which triggers a DOM
layout and style update in the middle of an ongoing DOM mutation update.
This is unnecessary and, furthermore, causes crashes since the DOM
layout update cannot be re-entrant. This change makes these
notifications asynchronous.

  • accessibility/AccessibilityMenuList.cpp: (WebCore::AccessibilityMenuList::didUpdateActiveOption):
  • accessibility/AccessibilityMenuListPopup.cpp: (WebCore::AccessibilityMenuListPopup::didUpdateActiveOption):

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

11:10 AM Changeset in webkit [268671] by Alan Coon
  • 8 edits in branches/safari-610.2.11.51-branch/Source

Versioning.

WebKit-7610.2.11.51.3

10:49 AM Changeset in webkit [268670] by Truitt Savell
  • 22 edits
    16 copies
    4 adds in trunk/LayoutTests

Rebaseline tests for Big Sur after the changes in r268520
https://bugs.webkit.org/show_bug.cgi?id=209813

Unreviewed test gardening.

  • platform/mac-catalina/editing/selection/3690703-2-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/3690703-2-expected.txt.
  • platform/mac-catalina/editing/selection/3690703-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/3690703-expected.txt.
  • platform/mac-catalina/editing/selection/3690719-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/3690719-expected.txt.
  • platform/mac-catalina/fast/block/float/float-avoidance-expected.txt: Copied from LayoutTests/platform/mac/fast/block/float/float-avoidance-expected.txt.
  • platform/mac-catalina/fast/css/rtl-ordering-expected.txt: Copied from LayoutTests/platform/mac/fast/css/rtl-ordering-expected.txt.
  • platform/mac-catalina/fast/forms/basic-inputs-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/basic-inputs-expected.txt.
  • platform/mac-catalina/fast/forms/input-appearance-spinbutton-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-appearance-spinbutton-expected.txt.
  • platform/mac-catalina/fast/forms/input-disabled-color-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-disabled-color-expected.txt.
  • platform/mac-catalina/fast/forms/input-readonly-dimmed-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-readonly-dimmed-expected.txt.
  • platform/mac-catalina/fast/forms/option-text-clip-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/option-text-clip-expected.txt.
  • platform/mac-catalina/fast/forms/select-change-listbox-to-popup-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-change-listbox-to-popup-expected.txt.
  • platform/mac-catalina/fast/forms/select-change-popup-to-listbox-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-change-popup-to-listbox-expected.txt.
  • platform/mac-catalina/fast/forms/textfield-outline-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/textfield-outline-expected.txt.
  • platform/mac-catalina/media/video-display-toggle-expected.txt: Copied from LayoutTests/platform/mac/media/video-display-toggle-expected.txt.
  • platform/mac-catalina/media/video-volume-slider-expected.txt: Copied from LayoutTests/platform/mac/media/video-volume-slider-expected.txt.
  • platform/mac-catalina/tables/mozilla/bugs/bug30692-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug30692-expected.txt.
  • platform/mac/editing/selection/3690703-2-expected.txt:
  • platform/mac/editing/selection/3690703-expected.txt:
  • platform/mac/editing/selection/3690719-expected.txt:
  • platform/mac/fast/block/basic/001-expected.txt:
  • platform/mac/fast/block/float/float-avoidance-expected.txt:
  • platform/mac/fast/css/rtl-ordering-expected.txt:
  • platform/mac/fast/forms/basic-inputs-expected.txt:
  • platform/mac/fast/forms/input-appearance-spinbutton-expected.txt:
  • platform/mac/fast/forms/input-disabled-color-expected.txt:
  • platform/mac/fast/forms/input-readonly-dimmed-expected.txt:
  • platform/mac/fast/forms/option-text-clip-expected.txt:
  • platform/mac/fast/forms/plaintext-mode-2-expected.txt:
  • platform/mac/fast/forms/select-change-listbox-to-popup-expected.txt:
  • platform/mac/fast/forms/select-change-popup-to-listbox-expected.txt:
  • platform/mac/fast/forms/textfield-outline-expected.txt:
  • platform/mac/fast/text/indic-expected.txt:
  • platform/mac/media/video-display-toggle-expected.txt:
  • platform/mac/media/video-volume-slider-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug30692-expected.txt:
  • platform/mac/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
  • platform/mac/tables/mozilla/other/wa_table_tr_align-expected.txt:
9:48 AM Changeset in webkit [268669] by commit-queue@webkit.org
  • 27 edits
    1 copy in trunk/Source

[GPU Process] Clean the DisplayList recording of the NativeImage
https://bugs.webkit.org/show_bug.cgi?id=217573

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-10-19
Reviewed by Simon Fraser.

Source/WebCore:

1) Move the definition of NativeImagePtr to a separate header file named

NativeImagePtr.

2) Remove the class ImageHandle and allow encoding and decoding NativeImagePtr

directly.

3) Remove the compilation directives around the DisplayList::DrawNativeImage

item and the method drawNativeImage().

4) Move the drawNativeImage() methods to the sources of their callers.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/cache/MemoryCache.h:
  • platform/graphics/BitmapImage.cpp:

(WebCore::drawNativeImage):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawNativeImage):

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::drawNativeImage):

  • platform/graphics/GraphicsContextImpl.h:
  • platform/graphics/Image.h:
  • platform/graphics/ImageBufferBackend.h:
  • platform/graphics/NativeImage.h:
  • platform/graphics/NativeImagePtr.h: Copied from Source/WebCore/platform/graphics/NativeImage.h.
  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::platformDrawNativeImage):
(WebCore::GraphicsContext::drawNativeImage): Deleted.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::platformDrawNativeImage):
(WebCore::GraphicsContext::drawNativeImage): Deleted.

  • platform/graphics/cg/NativeImageCG.cpp:

(WebCore::drawNativeImage): Deleted.

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

(WebCore::DisplayList::Item::sizeInBytes):
(WebCore::DisplayList::DrawNativeImage::DrawNativeImage):
(WebCore::DisplayList::DrawNativeImage::apply const):
(WebCore::DisplayList::operator<<):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawNativeImage::encode const):
(WebCore::DisplayList::DrawNativeImage::decode):
(WebCore::DisplayList::Item::encode const):
(WebCore::DisplayList::Item::decode):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawNativeImage):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/nicosia/NicosiaImageBufferPipe.cpp:
  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::platformDrawNativeImage):
(WebCore::GraphicsContext::drawNativeImage): Deleted.

Source/WebKit:

Support encoding and decoding NativeImagePtr directly.

  • Scripts/webkit/messages.py:
  • Shared/WebCoreArgumentCoders.cpp:

(IPC::encodeNativeImage):
(IPC::encodeOptionalNativeImage):
(IPC::ArgumentCoder<NativeImagePtr>::encode):
(IPC::ArgumentCoder<NativeImagePtr>::decode):
(IPC::ArgumentCoder<NativeImageHandle>::encode): Deleted.
(IPC::ArgumentCoder<NativeImageHandle>::decode): Deleted.

  • Shared/WebCoreArgumentCoders.h:
  • Shared/cg/ShareableBitmapCG.cpp:

(WebKit::ShareableBitmap::paint):

8:36 AM Changeset in webkit [268668] by graouts@webkit.org
  • 9 edits in trunk/Source

Move remaining Web Animations runtime-enabled features to settings
https://bugs.webkit.org/show_bug.cgi?id=217903

Reviewed by Sam Weinig.

Source/WebCore:

  • animation/KeyframeEffect.cpp:

(WebCore::processKeyframeLikeObject):
(WebCore::processIterableKeyframes):
(WebCore::processPropertyIndexedKeyframes):
(WebCore::KeyframeEffect::getKeyframes):

  • animation/KeyframeEffect.idl:
  • animation/WebAnimation.idl:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setWebAnimationsCompositeOperationsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webAnimationsCompositeOperationsEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setWebAnimationsMutableTimelinesEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webAnimationsMutableTimelinesEnabled const): Deleted.

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
6:46 AM Changeset in webkit [268667] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Respect relayoutChildren flag
https://bugs.webkit.org/show_bug.cgi?id=217902

Reviewed by Zalan Bujtas.

Ensure we layout replaced children when relayoutChildren is set.

Fixes fast/images/decode-render-static-image.html and others.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutLFCLines):

2:40 AM Changeset in webkit [268666] by svillar@igalia.com
  • 19 edits
    1 move
    1 add
    4 deletes in trunk

Sanitize the usage of override sizes
https://bugs.webkit.org/show_bug.cgi?id=217479

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

RenderBox had two values, overrideContentLogicalWidth and overrideContentLogicalHeight which were used by a variety of
layout systems (like tables, grid or flex) in different ways. Although names clearly stated that they were content sizes
the reality is that they were used as either border box sizes, content box sizes, or even content box + scrollbar sizes.

This patch addresses a comment in RenderBox which was precisely advocating for turning overrideContentLogicalXXX back into
overrideLogicalXXX. Most of the changes of this CL are just renames because the code has specific branches to handle specific
situations so it didn't actually matter which kind of size we were actually storing. However there are some tricky replacements
as in the case of flex, grid and tables that required careful modifications. It's critical for these layout systems to know
which size we're storing in the overrides because that would determine whether or not we need to add/substract things like borders,
paddings or scrollbar sizes to use them.

Note that apart from renaming the overrideContentLogicalXXX to overrideLogicalXXX we're "adding" overrideContentLogicalXXX to the
RenderBox interface, so it gives the impression that we are not renaming it. However the new implementation is quite different, they
retrieve the content box sizes from the override (border box) sizes we store.

As a nice side effect a new test is passing now after these changes.

  • rendering/ComplexLineLayout.cpp:

(WebCore::ComplexLineLayout::updateRubyForJustifiedText): Renames.

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithmStrategy::logicalHeightForChild const): Renames.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computeChildPreferredLogicalWidths const): Renames.
(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const): Ditto.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::fitBorderToLinesIfNeeded): Renames + store the border box width instead of the content box's.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::hasOverrideLogicalHeight const): Renamed.
(WebCore::RenderBox::hasOverrideLogicalWidth const): Ditto.
(WebCore::RenderBox::setOverrideLogicalHeight): Ditto.
(WebCore::RenderBox::setOverrideLogicalWidth): Ditto.
(WebCore::RenderBox::clearOverrideLogicalHeight): Ditto.
(WebCore::RenderBox::clearOverrideLogicalWidth): Ditto.
(WebCore::RenderBox::clearOverrideContentSize): Ditto.
(WebCore::RenderBox::overrideLogicalWidth const): Ditto.
(WebCore::RenderBox::overrideLogicalHeight const): Ditto.
(WebCore::RenderBox::perpendicularContainingBlockLogicalHeight const): Renames.
(WebCore::RenderBox::computeLogicalWidthInFragment const): Renames + return the stored override border box width directly.
(WebCore::RenderBox::cacheIntrinsicContentLogicalHeightForFlexItem const): Renames.
(WebCore::RenderBox::computeLogicalHeight const): Renames. Apart from that moved some code around so all branches work with
border box sizes instead of mixing them with content box sizes.
(WebCore::RenderBox::computePercentageLogicalHeight const): Return the content box size after removing computed paddings and
borders from the stored override size.
(WebCore::RenderBox::computeReplacedLogicalHeightUsing const): Renames + compute the borderbox size from the stored
override size.
(WebCore::RenderBox::availableLogicalHeightUsing const): Return the content box size after removing computed paddings and
borders from the stored override size.
(WebCore::RenderBox::hasOverrideContentLogicalHeight const): Deleted.
(WebCore::RenderBox::hasOverrideContentLogicalWidth const): Deleted.
(WebCore::RenderBox::setOverrideContentLogicalHeight): Deleted.
(WebCore::RenderBox::setOverrideContentLogicalWidth): Deleted.
(WebCore::RenderBox::clearOverrideContentLogicalHeight): Deleted.
(WebCore::RenderBox::clearOverrideContentLogicalWidth): Deleted.
(WebCore::RenderBox::overrideContentLogicalWidth const): Deleted.
(WebCore::RenderBox::overrideContentLogicalHeight const): Deleted.

  • rendering/RenderBox.h:

(WebCore::RenderBox::overrideContentLogicalWidth const): "New" method. It existed before but it was renamed to overrideLogicalWidth.
We're adding a completely different implementation for this one.
(WebCore::RenderBox::overrideContentLogicalHeight const): Ditto.

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::widthForChild): New method to retrieve the border box width.
(WebCore::heightForChild): New method to retrieve the border box height.
(WebCore::contentWidthForChild): Use widthForChild() which handles overrides.
(WebCore::contentHeightForChild): Use heightForChild() which handles overrides.
(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox): Ditto.
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox): Ditto.
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp): Do not substract border and padding before setting the override because
we now store the border box height not the content box height.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::childIntrinsicLogicalWidth const): Renames.
(WebCore::RenderFlexibleBox::crossSizeForPercentageResolution): Return the content box size (does not include scrollbar).
(WebCore::RenderFlexibleBox::mainSizeForPercentageResolution): Ditto.
(WebCore::RenderFlexibleBox::setOverrideMainAxisContentSizeForChild): Add border and padding before setting the override.
(WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Do not substract border and padding before setting the override as we are
storing border box sizes.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock): Renames.
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded): Renames + do not substract border and padding before setting the override
as we are storing border box sizes.

  • rendering/RenderRubyBase.cpp:

(WebCore::RenderRubyBase::adjustInlineDirectionLineBounds const): Renames.

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::updateLogicalWidth): Renames.

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::setOverrideLogicalHeightFromRowHeight): Renames + do not substract border and padding before setting the override
as we are storing border box sizes.
(WebCore::RenderTableCell::setOverrideContentLogicalHeightFromRowHeight): Deleted.

  • rendering/RenderTableCell.h: Renames.
  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::calcRowLogicalHeight): Renames.
(WebCore::RenderTableSection::relayoutCellIfFlexed): Ditto.

LayoutTests:

The percentage-size-subitems-001.html is passing now after making the overrides work properly.

Apart from that the override sanitization allowed us to remove platform specific expectations for the border-fit-2.html
test even for the GTK port which is working fine now.

  • TestExpectations: Removed a test that passes now.
  • css3/flexbox/flex-flow-auto-margins-no-available-space-assert.html: Fine tuned expectations.
  • fast/borders/border-fit-2-expected.txt: Renamed from LayoutTests/platform/ios/fast/borders/border-fit-2-expected.txt.
  • platform/gtk/TestExpectations: Removed two tests that pass now.
  • platform/gtk/fast/borders/border-fit-2-expected.txt: Removed.
  • platform/gtk/fast/borders/border-fit-expected.txt: Added.
  • platform/mac/fast/borders/border-fit-2-expected.txt: Removed.
  • platform/wincairo/fast/borders/border-fit-2-expected.txt: Removed.
  • platform/wpe/fast/borders/border-fit-2-expected.txt: Removed.
2:24 AM Changeset in webkit [268665] by commit-queue@webkit.org
  • 11 edits in trunk

axis in scroll-snap-type should be required
https://bugs.webkit.org/show_bug.cgi?id=210468
<rdar://problem/61746766>

Patch by Martin Robinson <mrobinson@igalia.com> on 2020-10-19
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-scroll-snap/parsing/scroll-snap-type-invalid-expected.txt: Update

expected results to note newly passing tests.

Source/WebCore:

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeScrollSnapType): The first value is either the scroll axis or 'none'.

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertScrollSnapType): If the first value is 'none',
the default values of ScrollSnapType should be fine. If we have a second value, use it.
Otherwise the default for strictness is "proximity."

LayoutTests:

  • css3/scroll-snap/scroll-snap-inherit.html: Update test and results to reflect specification.
  • css3/scroll-snap/scroll-snap-property-computed-style-expected.txt: Ditto.
  • css3/scroll-snap/scroll-snap-property-computed-style.js: Ditto.
  • css3/scroll-snap/scroll-snap-property-parsing-expected.txt: Ditto.
  • css3/scroll-snap/scroll-snap-property-parsing.js: Ditto.

Oct 18, 2020:

10:18 PM Changeset in webkit [268664] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[WinCairo] sluggish page scrolling for wheel events since r268499
https://bugs.webkit.org/show_bug.cgi?id=217850

Reviewed by Simon Fraser.

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent): Include
WheelEventProcessingSteps::MainThreadForScrolling to
processingSteps for !ENABLE(SCROLLING_THREAD).

8:51 PM Changeset in webkit [268663] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Remove the duplicated IGNORE_WARNINGS_BEGIN("frame-address") calls from r268661.

No new tests, no new behaviors.

  • domjit/JSDocumentDOMJIT.cpp:

(WebCore::DOMJIT::JSC_DEFINE_JIT_OPERATION):

8:45 PM Changeset in webkit [268662] by Lauro Moura
  • 6 edits in trunk/Tools

webkitcorepy: Allow one package to require another package
https://bugs.webkit.org/show_bug.cgi?id=217856

Reviewed by Jonathan Bedard.

In some cases a package may check whether another package is
installed without actually importing it, which would make
the AutoInstall to miss the dependency as it would not be
imported. An example is pytest autoload feature searching
for plugins like pytest_timeout.

So, this commit adds a new argument to autoinstall.Package:
implicit_deps. It is not intended to be a full fledged dependency
tracking system, just covering these corner cases.

This commit also downgrades pytest from 3.10 to 3.6 to match the
version used in WPT tests.

  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump mini

version.

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

(Package.init): Add new implicit_deps argument.
(Package.install): Install implicit_deps.

  • Scripts/webkitpy/init.py: Update pytest version and add

pytest_timeout dependency.

  • Scripts/webkitpy/webdriver_tests/pytest_runner.py:

(run): Ignore DISABLE_AUTOLOAD as it was added in pytest 3.8 and go
back to implicitly loading pytest_timeout.

  • Scripts/webkitpy/webdriver_tests/webdriver_test_runner_selenium.py:

(WebDriverTestRunnerSelenium.run): Add the harness error log messages
like the ones in the w3c runner from r268402.

8:05 PM Changeset in webkit [268661] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Remove the build warning below since r267727.
warning: calling ‘void* builtin_frame_address(unsigned int)’ with a nonzero argument is unsafe [-Wframe-address]

No new tests, no new behaviors.

  • domjit/JSDocumentDOMJIT.cpp:

(WebCore::DOMJIT::JSC_DEFINE_JIT_OPERATION):

11:45 AM Changeset in webkit [268660] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC][Quirk] No soft wrapping opportunity before/after image content when the root is a table cell
https://bugs.webkit.org/show_bug.cgi?id=217894

Reviewed by Antti Koivisto.

This quirk behavior matches both FF and Chrome.

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

(WebCore::Layout::InlineFormattingContext::Quirks::hasSoftWrapOpportunityAtImage const):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::isAtSoftWrapOpportunity):
(WebCore::Layout::LineBuilder::nextContentForLine):
(WebCore::Layout::LineBuilder::nextWrapOpportunity const):
(WebCore::Layout::nextWrapOpportunity): Deleted.

  • layout/inlineformatting/InlineLineBuilder.h:
  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTree):

9:11 AM Changeset in webkit [268659] by emilio
  • 9 edits in trunk

Serialize aspect ratio with spaces around the slash.
https://bugs.webkit.org/show_bug.cgi?id=217888

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/css/mediaqueries/aspect-ratio-serialization-expected.txt: Annotate progression.

Source/WebCore:

Tests: web-platform-tests/css/mediaqueries/aspect-ratio-serialization-expected.txt

  • css/CSSAspectRatioValue.cpp:

(WebCore::CSSAspectRatioValue::customCSSText const): Add the spaces.

LayoutTests:

  • fast/css/aspect-ratio-inheritance-expected.txt:
  • fast/css/aspect-ratio-inheritance.html:
  • fast/css/aspect-ratio-parsing-tests-expected.txt:
  • fast/css/aspect-ratio-parsing-tests.html:

Adjust tests

6:35 AM Changeset in webkit [268658] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Do not create imaginary strut when in limited quirks mode
https://bugs.webkit.org/show_bug.cgi?id=217889

Reviewed by Antti Koivisto.

Only standard mode produces imaginary strut (exclude both full and limited quirks mode).

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

6:25 AM Changeset in webkit [268657] by ddkilzer@apple.com
  • 4 edits in trunk/Source

Fix -Wdeprecated-copy warnings in WTF and JavaScriptCore
<https://webkit.org/b/217855>
<rdar://problem/67716914>

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::LinkRecord::LinkRecord): Add.

  • Implement the copy constructor since the compiler may not have implemented it the same way as the copy assignment operator.

(JSC::ARM64Assembler::LinkRecord::operator=):

  • Fix return type of copy assignment operator and simplify it.

Source/WTF:

  • wtf/Identified.h:

(WTF::IdentifiedBase::Identifier):

  • Change to default since compiler will generate the same code.

(WTF::IdentifiedBase::operator=): Add.

  • Add default copy assignment operator to keep it protected.
6:24 AM Changeset in webkit [268656] by Caio Lima
  • 10 edits
    3 adds in trunk

[ESNext][JIT] Add support for UntypedUse on PutPrivateName's base operand
https://bugs.webkit.org/show_bug.cgi?id=217373

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/get-private-name-with-primitive.js: Added.
  • stress/put-private-name-untyped-use.js: Added.
  • stress/put-private-name-with-primitive.js: Added.

Source/JavaScriptCore:

This patch is adding UntypedUse for PutPrivateName's base operand to
avoid a OSR when we have a non-cell base.
Also, it is fixing a bug on private field operations get_private_name and
put_private_name to call ToObject on base to properly support
class fields spec text[1][2].

[1] - https://tc39.es/proposal-class-fields/#sec-getvalue
[2] - https://tc39.es/proposal-class-fields/#sec-putvalue

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePutPrivateName):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compilePutPrivateName):

  • jit/JITOperations.cpp:

(JSC::setPrivateField):
(JSC::definePrivateField):
(JSC::JSC_DEFINE_JIT_OPERATION):
(JSC::getPrivateName):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_put_private_name):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_put_private_name):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.cpp:

Previous implementation was wrongly considering that base was always
an object, causing segmentation fault when base was not an object.
We changed this to handle cases when base is not and object, following
what spec text specifies.

5:48 AM Changeset in webkit [268655] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Do not snap the vertical position of a render replaced to integral value
https://bugs.webkit.org/show_bug.cgi?id=217885

Reviewed by Antti Koivisto.

Apparently legacy inline layout only snaps text content.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::constructContent):

5:42 AM Changeset in webkit [268654] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Inline level boxes are at the incorrect position when line is horizontally aligned
https://bugs.webkit.org/show_bug.cgi?id=217887

Reviewed by Antti Koivisto.

Inline boxes (as opposed to runs) are constructed after the horizontal alignment is computed so their position
already includes the horizontal offset. No need to offset the again at logicalRectForInlineLevelBox.

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalRectForInlineLevelBox const):

5:33 AM Changeset in webkit [268653] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Add quirks mode for root inline box height stretching
https://bugs.webkit.org/show_bug.cgi?id=217881

Reviewed by Antti Koivisto.

When the imaginary strut is not applicable (in quirks mode), the root inline box
is stretched as it gains either text or some other inline level box content.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

Note: See TracTimeline for information about the timeline view.