Timeline
Jun 13, 2021:
- 6:23 PM Changeset in webkit [278823] by
-
- 5 edits in trunk/Source/WebKit
[watchOS] Quickboard UI for focused select elements should not allow the user to change the input language
https://bugs.webkit.org/show_bug.cgi?id=226958
Reviewed by Tim Horton.
Fix a couple of bugs around focused select element UI that were introduced in watchOS 7, due to changes in
PepperUICore. See below for details.
- UIProcess/ios/forms/WKQuickboardListViewController.mm:
(-[WKQuickboardListViewController initWithDelegate:]):
Drive-by fix: remove a
USE(APPLE_INTERNAL_SDK)guard that was (seemingly) unintentionally added in r262854.
(-[WKQuickboardListViewController viewDidLoad]): Deleted.
Avoid hiding the list view controller's
-headerViewwhen focusing select elements. In watchOS 7, the accept
and cancel buttons are positioned inside the-headerView, so having this logic in the base class
(WKQuickboardListViewController) means that the Done button in select menus does not show up. In turn, this
means that currently, users who focus select elements must know to use the crown button to dismiss the select
menu.
For now, we move logic to the only other subclass of WKQuickboardListViewController,
WKTextInputListViewController. However, note that this too is going away in an upcoming patch that refactors
WKTextInputListViewController so that it directly subclasses PUICQuickboardMessageViewController
instead of PUICQuickboardListViewController.
- Platform/spi/watchos/PepperUICoreSPI.h:
Move a declaration of
-initWithDelegate:dictationMode:from PUICDictationViewController to
PUICQuickboardListViewController (see the change in-[WKQuickboardListViewController initWithDelegate:]above).
- UIProcess/ios/forms/WKSelectMenuListViewController.mm:
(-[WKSelectMenuListViewController shouldShowLanguageButton]):
Since watchOS 7, the language button is now always shown by default in PUICQuickboardListViewController, with a
new subclassing hook to avoid showing it. It doesn't make sense to allow the user to change input languages when
choosing options in a select menu, so we implement this and always returnNOhere.
- UIProcess/ios/forms/WKTextInputListViewController.mm:
(-[WKTextInputListViewController viewDidLoad]):
- 1:34 PM Changeset in webkit [278822] by
-
- 2 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo/TestExpectations:
- 12:16 PM Changeset in webkit [278821] by
-
- 4 edits3 adds3 deletes in trunk
Relax "parent must be an HTMLElement" restriction in outerHTML setter
https://bugs.webkit.org/show_bug.cgi?id=226808
Reviewed by Ryosuke Niwa.
Source/WebCore:
Made the following change to our outerHTML setter for better compatibility and to better
match the specification [1]:
- Stop throwing an exception when the parent is not an HTML element. This new behavior matches the specification, Blink and Gecko behavior.
I did not fully align us with the specification because we are mostly aligned with Blink at
the moment. In particular:
- The specification says the outerHTML setter should be a no-op when the parent is null. Firefox matches the specification but WebKit & Blink throw a NoModificationAllowedError.
- The specification says we should allow setting outerHTML if the parent is a DocumentFragment. Firefox allows this but WebKit & Blink throw a NoModificationAllowedError.
- WebKit & Blink have some Text node merging logic that is not present in the specification and which Gecko doesn't implement.
[1] https://w3c.github.io/DOM-Parsing/#dom-element-outerhtml
Test: fast/dom/set-outer-html-special-cases.html
- dom/Element.cpp:
(WebCore::Element::setOuterHTML):
LayoutTests:
- fast/dom/set-outer-html-special-cases-expected.txt: Added.
- fast/dom/set-outer-html-special-cases.html: Added.
Add layout test coverage
- fast/dynamic/outerHTML-no-element-expected.txt:
Rebaseline test due to different exception message.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-003-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-003-expected.txt:
Rebaseline WPT test. This is actually a progression because we're no longer throwing. However, the test is still failing
later on.
- 11:42 AM Changeset in webkit [278820] by
-
- 2 edits in trunk/Source/WebCore
SimulatedXRDevice::shutDownTrackingAndRendering() should clear it's GraphicsContextGL to ensure the resource is cleaned up quickly
https://bugs.webkit.org/show_bug.cgi?id=226947
Reviewed by Dean Jackson.
SimulatedXRDevice::shutDownTrackingAndRendering() needs to clear its GraphicsContextGL
to ensure the resource is cleaned up quickly, and doesn't wait for GC to be reclaimed.
Without this, we can run out of GraphicsContextGLs and fail tests if GC happens to be
running a bit behind.
- testing/WebFakeXRDevice.cpp:
(WebCore::SimulatedXRDevice::shutDownTrackingAndRendering):
- 11:29 AM Changeset in webkit [278819] by
-
- 3 edits1 add in trunk
https://bugs.webkit.org/show_bug.cgi?id=226576
<rdar://problem/78810362>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/short-circuit-read-modify-write-cant-write-dst-before-tdz-check.js: Added.
(let.result.eval.try.captureV):
(catch):
Source/JavaScriptCore:
ShortCircuitReadModifyResolveNode can't emit a value into
its result until after it emits a TDZ check. We were temporarily
storing the result of the get_from_scope into the dst. Then
we'd emit the TDZ check. The TDZ check can throw, and it could
lead to us returning TDZ from the eval itself. Instead, we need
to use a temporary to emit a TDZ check on. Only after the TDZ check
passes can we move the temporary into the result.
- bytecompiler/NodesCodegen.cpp:
(JSC::ShortCircuitReadModifyResolveNode::emitBytecode):
- 6:33 AM Changeset in webkit [278818] by
-
- 3 edits2 adds in trunk
[LFC][TFC] Add support for over-constrained cases for available space distribution
https://bugs.webkit.org/show_bug.cgi?id=226957
Reviewed by Antti Koivisto.
Source/WebCore:
This patch cleans up the code for the available space distribution. It also enables
cases when the final column width is less than the preferred width (available space is negative).
See further explanation inline in the source.
Test: fast/layoutformattingcontext/table-space-distribution-simple.html
- layout/formattingContexts/table/TableLayout.cpp:
(WebCore::Layout::GridSpace::isEmpty const):
(WebCore::Layout::max):
(WebCore::Layout::operator-):
(WebCore::Layout::operator+=):
(WebCore::Layout::operator/):
(WebCore::Layout::distributeAvailableSpace):
(WebCore::Layout::TableFormattingContext::TableLayout::distributedHorizontalSpace):
LayoutTests:
- fast/layoutformattingcontext/table-space-distribution-simple-expected.html: Added.
- fast/layoutformattingcontext/table-space-distribution-simple.html: Added.
Jun 12, 2021:
- 5:31 PM Changeset in webkit [278817] by
-
- 2 edits in trunk/LayoutTests
Disable WebXR tests on Windows
https://bugs.webkit.org/show_bug.cgi?id=226956
Reviewed by Alan Bujtas.
- platform/win/TestExpectations:
Disable all tests in webxr/ on windows as the feature is not enabled there.
- 4:09 PM Changeset in webkit [278816] by
-
- 2 edits in trunk/Source/JavaScriptCore
-Wnonnull warning in JITCall.cpp
https://bugs.webkit.org/show_bug.cgi?id=226643
<rdar://problem/79197261>
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-06-12
Reviewed by Darin Adler.
This is a false-positive, so suppress it using
IGNORE_ERRONEOUS_GCC_NULL_CHECK_WARNINGS_BEGIN.
- jit/JITCall.cpp:
(JSC::JIT::compileOpCall):
- 2:45 PM Changeset in webkit [278815] by
-
- 5 edits in trunk/Source
Number pad button is missing its image when tapping on <input type=tel> in watchOS 8
https://bugs.webkit.org/show_bug.cgi?id=226955
Reviewed by Darin Adler.
Source/WebKit:
After some recent PepperUICore changes, the Quickboard button for presenting the number pad when focusing a
telephone input on watchOS 8 is missing its icon image. To fix this, stop using deprecated SPI for creating
the list tray button, and instead use+[PUICQuickboardListTrayButton buttonWithType:]and-setAction:to
create and set up the button.
- Platform/spi/watchos/PepperUICoreSPI.h:
- UIProcess/ios/forms/WKTextInputListViewController.mm:
(-[WKTextInputListViewController additionalTrayButtons]):
Source/WTF:
Add compile-time flags to guard the presence of
PUICQuickboardControllerandPUICButtonTypePill.
- wtf/PlatformHave.h:
- 1:16 PM Changeset in webkit [278814] by
-
- 3 edits in trunk/LayoutTests
(r278618) media/modern-media-controls/overflow-support/chapters.html is timing out since introduction
https://bugs.webkit.org/show_bug.cgi?id=226828
<rdar://problem/79084756>
Unreviewed followup for flaky test.
- media/modern-media-controls/overflow-support/chapters.html:
- media/modern-media-controls/overflow-support/chapters-expected.txt:
It may take a moment for the
currentTimeto updating after selecting a chapter.
- 11:26 AM Changeset in webkit [278813] by
-
- 1 copy in tags/Safari-612.1.17.10.5
Tag Safari-612.1.17.10.5.
- 11:23 AM Changeset in webkit [278812] by
-
- 8 edits in branches/safari-612.1.17.10-branch/Source
Versioning.
WebKit-7612.1.17.10.5
- 10:37 AM Changeset in webkit [278811] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r278374): [Big Sur] ASSERTION FAILED: !isInRoutingArbitrationForToken(token) in WebCore::SharedRoutingArbitrator::beginRoutingArbitrationForToken()
https://bugs.webkit.org/show_bug.cgi?id=226787
Reviewed by Eric Carlson.
A WebContent process will resume a video element playback after the GPU process crashes
and restarts. During that process, the WebContent process will set category of the audio
session, and the UI process will be asked to begin routing arbitration with the new
category. However, theSharedRoutingArbitratorat the UI process will have stale
routing arbitrator tokens, which lead to the assertion failure.
To fix this issue, this patch cleans up the
SharedRoutingArbitratorwhen the GPU
process crashes.
No new tests. Fix an API test:
- TestWebKitAPI.GPUProcess.CrashWhilePlayingVideo
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::gpuProcessExited):
- 10:17 AM Changeset in webkit [278810] by
-
- 12 edits in trunk/Source/JavaScriptCore
We should drop B3 values while running Air
https://bugs.webkit.org/show_bug.cgi?id=226187
Reviewed by Saam Barati.
NB: this patch first landed as r278371, then was reverted in r278587 as it broke --dumpDisassembly().
I fixed the bug (a missing line setDisassembler()) and am now re-landing it. Below is a copy of the original Changelog.
We must keep the following values:
- WasmBoundsCheck, to know whether it is Pinned or Maximum, and if it is pinned find its argument.
- CCall/Patch/Check/CheckAdd/CheckSub/CheckMul and all of their children, because all of these are lowered to Air::Patchpoint, which needs to know the type of its arguments, and does so by looking at the children of its origin.
I intend to fix these in later patches if possible.
Finally we must preserve all B3 values in the following cases:
- if we dump the disassembly or the Air graph: because otherwise we cannot print the origins
- if we are using the sampling profiler, because it relies on PCToCodeOriginMap which we cannot accurately fill without these origins.
We must also keep m_tuples alive, as it is used by Patchpoints in Air to understand the types of their arguments.
We also don't touch StackSlots (in this patch), because one of them is captured by FTL::State.
Also now PCToOriginMap has a Vector with no inline capacity, since it is either quite large (if needed) or empty (otherwise).
The performance impact of this is a progression on various RAMification subtests on Mac, but is more mitigated on iPhone7, with various regressions.
I suspect these to be noise, and will monitor the performance bots post-landing to make sure of it.
- b3/B3LowerToAir.cpp:
(JSC::B3::lowerToAir):
- b3/B3Procedure.cpp:
(JSC::B3::Procedure::freeUnneededB3ValuesAfterLowering):
- b3/B3Procedure.h:
(JSC::B3::Procedure::releasePCToOriginMap):
(JSC::B3::Procedure::setNeedsPCToOriginMap):
(JSC::B3::Procedure::needsPCToOriginMap):
- b3/B3SparseCollection.h:
(JSC::B3::SparseCollection::clearAll):
(JSC::B3::SparseCollection::filterAndTransfer):
- b3/air/AirCode.cpp:
(JSC::B3::Air::Code::Code):
- b3/air/AirCode.h:
(JSC::B3::Air::Code::shouldPreserveB3Origins const):
- b3/air/AirGenerate.cpp:
(JSC::B3::Air::generateWithAlreadyAllocatedRegisters):
- ftl/FTLCompile.cpp:
(JSC::FTL::compile):
- ftl/FTLState.cpp:
(JSC::FTL::State::State):
- 12:26 AM Changeset in webkit [278809] by
-
- 1 copy in tags/Safari-612.1.17.10.4
Tag Safari-612.1.17.10.4.
- 12:22 AM Changeset in webkit [278808] by
-
- 8 edits in branches/safari-612.1.17.10-branch/Source
Versioning.
WebKit-7612.1.17.10.4