Timeline
Jul 26, 2020:
- 7:03 PM Changeset in webkit [264908] by
-
- 14 edits3 copies11 adds in trunk
Scroll Snap broken when using RTL layout
https://bugs.webkit.org/show_bug.cgi?id=193671
<rdar://problem/47457471>
Reviewed by Wenson Hsieh.
Source/WebCore:
There were various places in the scroll snapping code which confused scroll offsets (zero-based)
with scroll positions (relative to scroll origin, can be negative). This broke snapping in
direction: rtlcontent.
The computation of snap locations in updateSnapOffsetsForScrollableArea() was also broken
in RTL; we need to snap the right edge of boxes to the right edge of the scroller for the 'start'
alignment. (Snapping for LTR boxes in an RTL scroller is poorly defined; for now, follow Gecko.)
Tests: css3/scroll-snap/scroll-snap-2d-change-axis-type-rtl.html
css3/scroll-snap/scroll-snap-2d-offsets-computed-independently.rtl.html
css3/scroll-snap/scroll-snap-elements-container-larger-than-children-rtl.html
css3/scroll-snap/scroll-snap-iframe-rtl.html
css3/scroll-snap/scroll-snap-offsets-mixed-rtl.html
css3/scroll-snap/scroll-snap-offsets-rtl.html
- page/scrolling/AxisScrollSnapOffsets.cpp:
(WebCore::computeScrollSnapAlignOffset):
(WebCore::updateSnapOffsetsForScrollableArea):
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:
(WebCore::ScrollingTreeScrollingNodeDelegateMac::scrollOffset const):
- platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::updateActiveScrollSnapIndexForOffset):
(WebCore::ScrollAnimator::scrollOffset const):
- platform/cocoa/ScrollController.mm:
(WebCore::ScrollController::updateScrollSnapPoints):
Source/WebKit:
There were various places in the scroll snapping code which confused scroll offsets (zero-based)
with scroll positions (relative to scroll origin, can be negative). This broke snapping in
direction: rtlcontent.
The computation of snap locations in updateSnapOffsetsForScrollableArea() was also broken
in RTL; we need to snap the right edge of boxes to the right edge of the scroller for the 'start'
alignment. (Snapping for LTR boxes in an RTL scroller is poorly defined; for now, follow Gecko.)
- Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
(WebKit::dump):
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _updateVisibleContentRects]):
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
- UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::shouldSnapForMainFrameScrolling const):
(WebKit::RemoteScrollingCoordinatorProxy::closestSnapOffsetForMainFrameScrolling const):
(WebKit::RemoteScrollingCoordinatorProxy::hasActiveSnapPoint const):
(WebKit::RemoteScrollingCoordinatorProxy::nearestActiveContentInsetAdjustedSnapOffset const):
(WebKit::RemoteScrollingCoordinatorProxy::nearestActiveContentInsetAdjustedSnapPoint const): Deleted.
LayoutTests:
- css3/scroll-snap/resources/iframe-content-rtl.html: Added.
- css3/scroll-snap/scroll-snap-2d-change-axis-type-rtl-expected.txt: Added.
- css3/scroll-snap/scroll-snap-2d-change-axis-type-rtl.html: Copied from LayoutTests/css3/scroll-snap/scroll-snap-2d-change-axis-type.html.
- css3/scroll-snap/scroll-snap-2d-change-axis-type.html:
- css3/scroll-snap/scroll-snap-2d-offsets-computed-independently.html:
- css3/scroll-snap/scroll-snap-2d-offsets-computed-independently.rtl-expected.txt: Added.
- css3/scroll-snap/scroll-snap-2d-offsets-computed-independently.rtl.html: Copied from LayoutTests/css3/scroll-snap/scroll-snap-2d-offsets-computed-independently.html.
- css3/scroll-snap/scroll-snap-elements-container-larger-than-children-rtl-expected.txt: Added.
- css3/scroll-snap/scroll-snap-elements-container-larger-than-children-rtl.html: Copied from LayoutTests/css3/scroll-snap/scroll-snap-elements-container-larger-than-children.html.
- css3/scroll-snap/scroll-snap-elements-container-larger-than-children.html:
- css3/scroll-snap/scroll-snap-iframe-rtl-expected.txt: Added.
- css3/scroll-snap/scroll-snap-iframe-rtl.html: Added.
- css3/scroll-snap/scroll-snap-offsets-mixed-rtl-expected.txt: Added.
- css3/scroll-snap/scroll-snap-offsets-mixed-rtl.html: Added.
- css3/scroll-snap/scroll-snap-offsets-rtl-expected.txt: Added.
- css3/scroll-snap/scroll-snap-offsets-rtl.html: Added.
- fast/scrolling/home-end-keys-scroll-in-rtl-document-expected.txt: Added.
- 12:25 PM Changeset in webkit [264907] by
-
- 20 edits in trunk
REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214688
<rdar://problem/65993683>
Reviewed by Darin Adler.
Source/WebCore/PAL:
Remove logging added in r264882, r264890, r264892, and r264896.
- pal/spi/ios/GraphicsServicesSPI.h:
Source/WebKit:
Remove logging added in r264882, r264890, r264892, and r264896.
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _singleTapIdentified:]):
(-[WKContentView _singleTapRecognized:]):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::commitPotentialTap):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::handleSyntheticClick):
Tools:
Attempt another speculative fix for this flaky test, motivated by logging introduced in r264896. This recently
introduced telemetry would suggest that this test fails when the act of handling a synthetic modifier keydown
fails to updateGSKeyboardRef's live modifier flags if the keyboard layout changes mid-event, forcing the
existingGSKeyboardRefto be destroyed and rebuilt.
In this case, the keyboard layout changes from "Hebrew" to "US" when this test fails. There is only one (sane)
explanation for this, which is that one of theediting/input/ios/rtl-keyboard-input-*.htmltests switch to an
RTL keyboard ("he_IL" in both cases) by swizzling out-currentInputModeand-currentInputModeInPreferenceon
UIKeyboardInputModeController. While the swizzling is torn down in between test runs via logic in
TestController::platformResetStateToConsistentValues, it's possible that this change hasn't propagated to
the UIKit or GraphicsServices layers -- in other words,UIApplication'sGSKeyboardRefremains stuck in the
Hebrew layout until the next time-GSKeyboardForHWLayout:forceRebuild:createIfNeeded:forces the keyboard to
be rebuilt, which (in this case) seems to happen while runningshift-click-includes-existing-selection.html.
For reasons that are still unclear, this lazy regeneration of the
GSKeyboardRefcauses GraphicsServices' live
modifier state to not update when handling a shift key down HID event. However, we might be able to fix this by
forcing UIKit to sync the default (unswizzled) keyboard layout back to itsGSKeyboardRefimmediately when we
stop swizzlingUIKeyboardInputModeControllerafter running a test that attempts to simulate changing keyboard
input modes.
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues):
Call
-prepareKeyboardInputModeFromPreferences:to force the UIApp to update its hardware keyboard state (i.e.
GSKeyboardRef).
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::singleTapAtPointWithModifiers):
Also, restore this method to how it was prior to r264890, as it doesn't seem like waiting for the HID marker
event after synthesizing a keydown had any effect.
- WebKitTestRunner/ios/mainIOS.mm:
(-[WebKitTestRunnerApp handleKeyHIDEvent:]): Deleted.
WebKitLibraries:
Remove logging added in r264882, r264890, r264892, and r264896.
- WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd:
- WebKitPrivateFrameworkStubs/appletvos/14/GraphicsServices.framework/GraphicsServices.tbd:
- WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework/GraphicsServices.tbd:
- WebKitPrivateFrameworkStubs/iOS/14/GraphicsServices.framework/GraphicsServices.tbd:
- WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework/GraphicsServices.tbd:
- WebKitPrivateFrameworkStubs/watchos/7/GraphicsServices.framework/GraphicsServices.tbd:
LayoutTests:
Remove the failing test expectation.
- platform/ios-simulator-wk2/TestExpectations:
- 12:22 PM Changeset in webkit [264906] by
-
- 2 edits in trunk/Source/WebCore
-Wunused-parameter in FilterEffectRenderer.cpp
https://bugs.webkit.org/show_bug.cgi?id=214808
Unreviewed.
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-26
- platform/graphics/filters/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::tryCreate):
- 12:12 PM Changeset in webkit [264905] by
-
- 23 edits1 add2 deletes in trunk
Stop using live ranges in SpellChecker.h and TextCheckingHelper.h
https://bugs.webkit.org/show_bug.cgi?id=214648
Reviewed by Sam Weinig.
Source/WebCore:
- accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
Removed unneeded include of TextCheckingHelper.h.
- dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::removeMarkers): Updated for change
to the argument type name.
(WebCore::DocumentMarkerController::filterMarkers): Ditto.
(WebCore::addMarker): Added. Convenience so call doesn't have to get
the document to call this.
(WebCore::removeMarkers): Ditto.
- dom/DocumentMarkerController.h: Moved RemovePartiallyOverlappingMarker
out of the DocumentMarkerController class, tweaked its name and changed
it into an enum class. Added conveniences functions for add/removeMarker.
- editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::respondToUnappliedSpellCorrection):
Use convenience versions of removeMarkers and addMarker.
(WebCore::AlternativeTextController::handleAlternativeTextUIResult): Ditto.
(WebCore::AlternativeTextController::respondToUnappliedEditing): Ditto.
(WebCore::AlternativeTextController::markReversed): Ditto.
(WebCore::AlternativeTextController::markCorrection): Ditto.
(WebCore::AlternativeTextController::recordSpellcheckerResponseForModifiedCorrection): Ditto.
(WebCore::AlternativeTextController::markPrecedingWhitespaceForDeletedAutocorrectionAfterCommand): Ditto.
(WebCore::AlternativeTextController::applyAlternativeTextToRange): Ditto.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers): Ditto.
- editing/Editor.cpp:
(WebCore::Editor::ignoreSpelling): Ditto.
(WebCore::Editor::learnSpelling): Ditto.
(WebCore::Editor::advanceToNextMisspelling): Rewrote to not use a live
range and for the changes to the TextCheckingHelper.
(WebCore::Editor::isSelectionUngrammatical): Deleted.
(WebCore::Editor::guessesForMisspelledOrUngrammatical): Changed to use a
return value instead of out arguments.
(WebCore::Editor::clearMisspellingsAndBadGrammar): Use convenience
versions of removeMarkers.
(WebCore::Editor::markMisspellingsAfterTypingToWord): Ditto.
(WebCore::Editor::markMisspellingsOrBadGrammar): Updated for change to
TextCheckingHelper.
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): Do not use
live ranges.
(WebCore::correctSpellcheckingPreservingTextCheckingParagraph): Take a
range that isn't a live range.
(WebCore::Editor::markAndReplaceFor): Tweak for changes to text checking
and to use convenience version of addMarker.
(WebCore::Editor::changeBackToReplacedString): Use convenience versions of
removeMarkers and addMarker.
(WebCore::Editor::updateMarkersForWordsAffectedByEditing): Ditto.
(WebCore::Editor::countMatchesForText): Ditto.
(WebCore::Editor::scanSelectionForTelephoneNumbers): Ditto.
(WebCore::Editor::editorUIUpdateTimerFired): Ditto.
(WebCore::Editor::handleAcceptedCandidate): Ditto.
- editing/Editor.h: Update for the above.
- editing/SpellChecker.cpp:
(WebCore::SpellCheckRequest::SpellCheckRequest): No longer take live ranges.
(WebCore::SpellCheckRequest::create): Ditto.
(WebCore::SpellChecker::canCheckAsynchronously const): Ditto.
(WebCore::SpellChecker::isCheckable const): Ditto.
(WebCore::SpellChecker::didCheckSucceed): Use convenience versions of
removeMarkers.
- editing/SpellChecker.h: Remove the use of live ranges. Removed many
unneeded includes and forward declarations.
- editing/TextCheckingHelper.cpp:
(WebCore::expandToParagraphBoundary): Take and return non-live ranges.
(WebCore::TextCheckingParagraph::TextCheckingParagraph): Ditto.
(WebCore::TextCheckingParagraph::expandRangeToNextEnd): Updated to use
non-live ranges.
(WebCore::TextCheckingParagraph::invalidateParagraphRangeValues): Ditto.
(WebCore::TextCheckingParagraph::paragraphRange const): Ditto.
(WebCore::TextCheckingParagraph::subrange const): Ditto.
(WebCore::TextCheckingParagraph::offsetTo const): Ditto.
(WebCore::TextCheckingParagraph::offsetAsRange const): Ditto.
(WebCore::TextCheckingParagraph::automaticReplacementStart const): Ditto.
(WebCore::TextCheckingParagraph::automaticReplacementLength const): Ditto.
(WebCore::TextCheckingHelper::~TextCheckingHelper): Deleted.
(WebCore::TextCheckingHelper::findMispelledWords const): Renamed from
findFirstMispelling, and made this private function since it has confusing
argument and return types. Reimplemented to use non-live ranges and to use
return values and the addMarker convenience function. Also changed this to
not mark when called just to find the first mispelled word. The old version
always marked, which didn't make logical sense, but was harmless because
the caller always marked the same way. Now this does what it says.
(WebCore::TextCheckingHelper::findFirstMisspelledWord const): Added.
Replaces findFirstMispelling as a public function, and returns a structure
instead of using out arguments.
(WebCore::TextCheckingHelper::findFirstMisspelledWordOrUngrammaticalPhrase const):
Renamed from findFirstMisspellingOrBadGrammar and changed to return a structure
instead of using out arguments.
(WebCore::TextCheckingHelper::findUngrammaticalPhrases const): Renamed from
findFirstGrammarDetail and findFirstBadGrammar. Both functions are now private
and use the new Operation enum class to distinguish the "find first" from
"mark all" usage. Also use the convience version of addMarker and return results
in a structure instead of using out arguments.
(WebCore::TextCheckingHelper::findFirstUngrammaticalPhrase const): Added.
Replaces findFirstBadGrammar as a public function, returns a structure
instead of using out arguments.
(WebCore::TextCheckingHelper::guessesForMisspelledWordOrUngrammaticalPhrase const):
Renamed from guessesForMisspelledOrUngrammaticalRange and changed to return
a structure instead of out arguments.
(WebCore::TextCheckingHelper::markAllMisspelledWords const): Renamed from
markAllMisspellings and changed to use a return value instead of an out argument.
(WebCore::TextCheckingHelper::markAllUngrammaticalPhrases const): Renamed
from markAllBadGrammar.
- editing/TextCheckingHelper.h: Removed unneed include of "EditorClient.h".
Use non-live ranges. Updated for the other changes above.
- editing/ios/DictationCommandIOS.cpp:
(WebCore::DictationCommandIOS::doApply): Use the convenience version of addMarker.
- editing/ios/EditorIOS.mm:
(WebCore::Editor::setDictationPhrasesAsChildOfElement): Ditto.
- page/ContextMenuController.cpp:
(WebCore::ContextMenuController::populate): Updated for the change to
Editor::guessesForMisspelledOrUngrammatical.
- platform/text/TextChecking.h: Added a TextCheckingGuesses structure here
used both by Editor and TextCheckingHelper.
Source/WebKit:
- WebProcess/WebCoreSupport/WebEditorClient.cpp: Added an include
of Range.h, no longer pulled in indirectly by another header.
Source/WebKitLegacy/mac:
- WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::requestCheckingOfString): Pass the specific types of
results we expect, rather than NSTextCheckingAllSystemTypes.
LayoutTests:
- editing/spelling/design-mode-spellcheck-off-expected.txt: Updated to use the misspelling
"tyop" instead of "asdf", otherwise spell checking thinks the text is in Romanian,
rather than misspelled US English.
- editing/spelling/design-mode-spellcheck-off.html: Ditto.
- platform/mac/editing/pasteboard/drop-text-without-selection-expected.html: Added.
Changed this test into a reference test.
- platform/mac/editing/pasteboard/drop-text-without-selection-expected.png: Removed.
- platform/mac/editing/pasteboard/drop-text-without-selection-expected.txt: Removed.
- 12:10 PM Changeset in webkit [264904] by
-
- 7 edits in trunk/Source/ThirdParty/libwebrtc
libwebrtc uint64_t build fixes
https://bugs.webkit.org/show_bug.cgi?id=214806
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-26
Reviewed by Darin Adler.
WebKitGTK currently fails to build with -DENABLE_EXPERIMENTAL_FEATURES=ON because a bunch of
libwebrtc headers use integer typedefs without declaring them:
- Source/webrtc/call/rtx_receive_stream.h:
- Source/webrtc/common_video/h264/pps_parser.h:
- Source/webrtc/common_video/h264/sps_parser.h:
- Source/webrtc/modules/audio_processing/aec3/clockdrift_detector.h:
- Source/webrtc/modules/include/module_common_types_public.h:
- Source/webrtc/modules/video_coding/decoding_state.h:
- 12:08 PM Changeset in webkit [264903] by
-
- 2 edits in trunk/Tools
[WPE] Unreviewed test gardening. Update API test expectations.
- TestWebKitAPI/glib/TestExpectations.json:
- 11:24 AM Changeset in webkit [264902] by
-
- 12 edits1 copy1 move2 adds1 delete in trunk/LayoutTests
[WPE] Unreviewed test gardening. Update test expectations and baselines after r264899.
- platform/glib/TestExpectations:
- platform/glib/imported/w3c/web-platform-tests/css/css-sizing/percentage-height-in-flexbox-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-sizing/percentage-height-in-flexbox-expected.txt.
- platform/glib/mathml/opentype/opentype-stretchy-expected.txt: Renamed from LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-expected.txt.
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- platform/wpe/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
- platform/wpe/fast/table/cell-absolute-child-expected.txt:
- platform/wpe/fast/table/empty-cells-expected.txt:
- platform/wpe/fast/table/prepend-in-anonymous-table-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug10633-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug1188-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug1302-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug16012-expected.txt:
- 10:38 AM Changeset in webkit [264901] by
-
- 6 edits in trunk
Update capture MediaStreamTrack frameRate and aspectRatio capabilities
https://bugs.webkit.org/show_bug.cgi?id=214741
Reviewed by Eric Carlson.
Source/WebCore:
We support frame decimation to decrease the frame rate.
This allows to get a frame rate down to 1.
We support resizing up to max width/height resolution.
This allows very wide aspect ratios.
Covered by updated tests.
- platform/mediastream/RealtimeVideoCaptureSource.cpp:
(WebCore::RealtimeVideoCaptureSource::updateCapabilities):
LayoutTests:
- fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt:
- fast/mediastream/apply-constraints-video-expected.txt:
- fast/mediastream/apply-constraints-video.html:
- 10:20 AM Changeset in webkit [264900] by
-
- 2 edits in trunk/Tools
[GTK] Unreviewed test gardening. Update API tests expectations.
- TestWebKitAPI/glib/TestExpectations.json:
- 8:35 AM Changeset in webkit [264899] by
-
- 4 edits in trunk
Unreviewed, partially revert r264896.
https://bugs.webkit.org/show_bug.cgi?id=214688
This logging is no longer needed.
Source/WebKit:
- Platform/spi/ios/UIKitSPI.h:
Tools:
- WebKitTestRunner/ios/mainIOS.mm:
(-[WebKitTestRunnerApp GSKeyboardForHWLayout:forceRebuild:createIfNeeded:]): Deleted.
- 7:08 AM Changeset in webkit [264898] by
-
- 3 edits in trunk/LayoutTests
[GTK] Unreviewed test gardening. Garden flaky failures after r264897.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- 5:03 AM Changeset in webkit [264897] by
-
- 1 edit2 adds in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Added baseline for WebGL test after r264845.
- platform/glib/webgl/1.0.3/conformance/renderbuffers/framebuffer-object-attachment-expected.txt: Added.
- 1:17 AM Changeset in webkit [264896] by
-
- 13 edits in trunk
Unreviewed, add even more logging to try and diagnose a flaky test
https://bugs.webkit.org/show_bug.cgi?id=214688
<rdar://problem/65993683>
Source/WebCore/PAL:
Add more GraphicsServices SPI declarations.
- pal/spi/ios/GraphicsServicesSPI.h:
Source/WebKit:
Add another IPI declaration on UIApplication.
- Platform/spi/ios/UIKitSPI.h:
Tools:
Evidence so far suggests that this test fails when the process of dispatching a keydown event for a modifier
(in this case, the shift key) causes the UIApplication's hardware keyboard (GSKeyboardRef) to be regenerated.
This may happen in one of two ways: either a rebuild is forced by logic in-[UIApplication handleKeyHIDEvent:],
orforceRebuildisNO, but the keyboard is rebuilt anyways due to a mismatched layout and/or keyboard type.
- WebKitTestRunner/ios/mainIOS.mm:
(-[WebKitTestRunnerApp GSKeyboardForHWLayout:forceRebuild:createIfNeeded:]):
(-[WebKitTestRunnerApp handleKeyHIDEvent:]):
WebKitLibraries:
Add symbol stubs for non-internal builds.
- WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd:
- WebKitPrivateFrameworkStubs/appletvos/14/GraphicsServices.framework/GraphicsServices.tbd:
- WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework/GraphicsServices.tbd:
- WebKitPrivateFrameworkStubs/iOS/14/GraphicsServices.framework/GraphicsServices.tbd:
- WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework/GraphicsServices.tbd:
- WebKitPrivateFrameworkStubs/watchos/7/GraphicsServices.framework/GraphicsServices.tbd:
Jul 25, 2020:
- 10:11 PM Changeset in webkit [264895] by
-
- 8 edits in trunk/Source
pluginElementCustomGetOwnPropertySlot() should support VMInquiry requests.
https://bugs.webkit.org/show_bug.cgi?id=214555
<rdar://problem/65855400>
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
- Add handling for VMInquiry failure in JSObject::getPropertySlot() and JSObject::getNonIndexPropertySlot(). Basically, if the query isTaintedByOpaqueObject, then we should treat the false result as a failed VMInquiry.
- Fix JSModuleNamespaceObject::getOwnPropertySlotCommon() and ProxyObject::getOwnPropertySlotCommon() to initialize the PropertySlot to a jsUndefined() value if we have a failed VMInquiry. The client shouldn't be reading the value if the VMInquiry failed, but as a defensive action, we'll initialize the slot to effectively return an undefined value.
- runtime/JSModuleNamespaceObject.cpp:
(JSC::JSModuleNamespaceObject::getOwnPropertySlotCommon):
- runtime/JSObjectInlines.h:
(JSC::JSObject::getPropertySlot):
(JSC::JSObject::getNonIndexPropertySlot):
- runtime/ProxyObject.cpp:
(JSC::ProxyObject::getOwnPropertySlotCommon):
Source/WebCore:
- Add handling for VMInquiry failure in CodeGeneratorJS.
- Fix pluginElementCustomGetOwnPropertySlot() to setIsTaintedByOpaqueObject().
- Fix pluginElementCustomGetOwnPropertySlot() handle a VMInquiry failure case and if so, to initialize the PropertySlot to a jsUndefined() value. The client shouldn't be reading the value if the VMInquiry failed, but as a defensive action, we'll initialize the slot to effectively return an undefined value.
- bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginElementCustomGetOwnPropertySlot):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlot):
(GenerateGetOwnPropertySlotByIndex):
- bindings/scripts/test/JS/JSTestPluginInterface.cpp:
(WebCore::JSTestPluginInterface::getOwnPropertySlot):
(WebCore::JSTestPluginInterface::getOwnPropertySlotByIndex):
- 10:03 PM Changeset in webkit [264894] by
-
- 23 edits2 adds in trunk/JSTests
Update test262
https://bugs.webkit.org/show_bug.cgi?id=214791
Reviewed by Ross Kirsling.
- test262/config.yaml:
- test262/expectations.yaml:
- test262/harness/async-gc.js:
- test262/latest-changes-summary.txt:
- test262/test/annexB/language/expressions/typeof/emulates-undefined.js: Added.
- test262/test/built-ins/FinalizationRegistry/gc-has-one-chance-to-call-cleanupCallback.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/callback-not-callable-throws.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/cleanup-prevented-with-reference.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/cleanup-prevented-with-unregister.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/custom-this.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/holdings-multiple-values.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/length.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/name.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/prop-desc.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/reentrancy.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/return-undefined-with-gc.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/return-undefined.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/this-does-not-have-internal-cells-throws.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/this-not-object-throws.js:
- test262/test/built-ins/FinalizationRegistry/prototype/unregister/unregister-cleaned-up-cell.js:
- test262/test/built-ins/WeakRef/prototype/deref/gc-cleanup-not-prevented-with-wr-deref.js:
- test262/test/intl402/DisplayNames/length.js:
- test262/test262-Revision.txt:
- 9:00 PM Changeset in webkit [264893] by
-
- 4 edits1 add in trunk
[iOS] Crash under ValidationBubble::setAnchorRect when showing form validation UI in unparented view
https://bugs.webkit.org/show_bug.cgi?id=214789
<rdar://problem/66104012>
Reviewed by Tim Horton.
Source/WebCore:
On iOS, in the case where
WKWebViewis unparented (or is otherwise missing a root view controller, or the
private WKUIDelegate method-_presentingViewControllerForWebView:returnsnil), we end up crashing under
ValidationBubble::setAnchorRectwhile attempting to addpresentingViewController.view(which isnil) to an
array of passthrough views.
Since
fallbackViewControlleris not guaranteed to successfully find a view controller anyways, make this
scenario fail gracefully with a null check, instead of crashing the app.
Test: FormValidation.PresentingFormValidationUIWithoutViewControllerDoesNotCrash
- platform/ios/ValidationBubbleIOS.mm:
(WebCore::ValidationBubble::setAnchorRect):
Tools:
Add an API test that reproduces the crash.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/FormValidation.mm: Added.
- 5:39 PM Changeset in webkit [264892] by
-
- 13 edits in trunk
REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214688
<rdar://problem/65993683>
Reviewed by Tim Horton.
Source/WebCore/PAL:
- pal/spi/ios/GraphicsServicesSPI.h:
Source/WebKit:
Add an SPI declaration on UIApplication.
- Platform/spi/ios/UIKitSPI.h:
Tools:
Continue to add logging in an attempt to debug this flaky test.
- WebKitTestRunner/ios/mainIOS.mm:
(-[WebKitTestRunnerApp handleKeyHIDEvent:]):
(-[WebKitTestRunnerApp _handleHIDEvent:]): Drive-by fix: add a missing call to the superclass method.
WebKitLibraries:
Declare the symbol for
GSKeyboardGetLiveModifierState(), for non-internal builds.
- WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd:
- WebKitPrivateFrameworkStubs/appletvos/14/GraphicsServices.framework/GraphicsServices.tbd:
- WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework/GraphicsServices.tbd:
- WebKitPrivateFrameworkStubs/iOS/14/GraphicsServices.framework/GraphicsServices.tbd:
- WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework/GraphicsServices.tbd:
- WebKitPrivateFrameworkStubs/watchos/7/GraphicsServices.framework/GraphicsServices.tbd:
- 3:33 PM Changeset in webkit [264891] by
-
- 12 edits in trunk
Some scroll snap cleanup
https://bugs.webkit.org/show_bug.cgi?id=214788
Reviewed by Wenson Hsieh.
Source/WebCore:
Mostly cleanup in updateSnapOffsetsForScrollableArea() related to getting the scroll limits,
which changes behavior.
updateSnapOffsetsForScrollableArea() was manually computing the scroll limits with
scrollingElementBox.scrollWidth() - scrollingElementBox.contentWidth(), but needs to use
the same computation that scrolling uses, namely scrollableArea.maximumScrollOffset().
This changes results, since the old code could compute offsets outside of the scroll limits.
It can also get the scrollPosition from the scrollableArea, instead of going via Element.
When computing scroll offsets, explicitly round now (which changes some test results).
- page/scrolling/AxisScrollSnapOffsets.cpp:
(WebCore::updateSnapOffsetsForScrollableArea):
- platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::updateActiveScrollSnapIndexForOffset): Explicitly round.
- platform/ScrollTypes.h:
- platform/ScrollableArea.h:
- platform/cocoa/ScrollController.h:
- platform/cocoa/ScrollController.mm:
(WebCore::ScrollController::setActiveScrollSnapIndicesForOffset): Use ScrollOffset instead
of x,y.
LayoutTests:
New results.
- css3/scroll-snap/scroll-snap-children-with-padding-expected.txt:
- css3/scroll-snap/scroll-snap-children-with-transforms-expected.txt:
- css3/scroll-snap/scroll-snap-offsets-expected.txt:
- css3/scroll-snap/scroll-snap-positions-expected.txt:
- 1:02 PM Changeset in webkit [264890] by
-
- 2 edits in trunk/Tools
REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214688
<rdar://problem/65993683>
Reviewed by Tim Horton.
Attempt a second speculative fix that waits for the keydown HID event to be dequeued and handled by
UIApplicationwhen simulating a shift-tap, to guarantee that the synthetic click gesture recognizer has
up-to-date modifier flags upon dispatching the synthetic HID events on tap.
It's unclear how or why the current implementation might result in the gesture recognizer not being updated with
the right modifier flags, since events in the HID event queue should be handled in order.
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::singleTapAtPointWithModifiers):
- 12:48 PM Changeset in webkit [264889] by
-
- 7 edits in trunk/Source/WebCore
[WebGL2] Context state updates
https://bugs.webkit.org/show_bug.cgi?id=209513
Patch by Kenneth Russell <kbr@chromium.org> on 2020-07-25
Reviewed by Dean Jackson.
Refactor a few methods related to context state to reduce
duplicated code between WebGL 1.0 and 2.0. No behavioral changes.
Covered by existing WebGL conformance tests.
- html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::validateCapability):
(WebCore::WebGL2RenderingContext::clear): Deleted.
(WebCore::WebGL2RenderingContext::hint): Deleted.
- html/canvas/WebGL2RenderingContext.h:
- html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::hint): Deleted.
(WebCore::WebGLRenderingContext::clear): Deleted.
(WebCore::WebGLRenderingContext::validateCapability): Deleted.
- html/canvas/WebGLRenderingContext.h:
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::clear):
(WebCore::WebGLRenderingContextBase::hint):
(WebCore::WebGLRenderingContextBase::validateCapability):
- html/canvas/WebGLRenderingContextBase.h: