Timeline
Oct 5, 2021:
- 11:14 PM Changeset in webkit [283602] by
-
- 2 edits in trunk/Source/WebCore
[PlayStation] Fix build break after r283441
https://bugs.webkit.org/show_bug.cgi?id=231277
Unreviewed.
No new tests because there is no behavior change.
- platform/graphics/Path.h:
(WebCore::Path::strokeBoundingRect):
- 10:40 PM Changeset in webkit [283601] by
-
- 8 edits in trunk/Source/WebCore
AX: Move handling of AXContents from platform wrapper to AX core
https://bugs.webkit.org/show_bug.cgi?id=231231
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-10-05
Reviewed by Chris Fleizach.
No changed functionality.
Moved handling of the AXContents (NSAccessibilityContentsAttribute) from the
Mac wrapper accessibilityAttributeValue handler to AXCoreObject::contents.
This makes it possible to share this code across multiple platforms.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::contents):
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/isolatedtree/AXIsolatedTree.h:
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
- 10:20 PM Changeset in webkit [283600] by
-
- 3 edits1 add in trunk
Don't pass DontBuildStrings to next token after parsing an empty parameter list
https://bugs.webkit.org/show_bug.cgi?id=225094
<rdar://problem/77231778>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/dont-pass-DontBuildStrings-when-building-empty-arguments-list.js: Added.
(main.a.prototype.g.toString.string_appeared_here):
(main.a):
(main):
Source/JavaScriptCore:
We might need the string, it turns out!
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseArguments):
- 8:47 PM Changeset in webkit [283599] by
-
- 2 edits in trunk/Tools
[ iOS15 ] TestWebKitAPI.ResourceLoadStatistics.DataTaskIdentifierCollision is a constant crash
https://bugs.webkit.org/show_bug.cgi?id=231246
Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-05
Reviewed by Chris Dumez.
For a reason that is mysterious to me, this test was timing out on iOS
in the call to synchronouslyLoadHTMLString unless I added "addToWindow:NO"
to the TestWKWebView initialization.
For a reason that is also mysterious to me, the test was crashing when closing
because of something in the autoreleasepool, but using Vector<String> instead of
RetainPtr<NSArray<NSString *>> in DataTaskIdentifierCollisionDelegate makes that
stop crashing.
I've looked quite closely and don't see why this fixes it, but I verified that it does.
While I was at it, I migrated from TCPServer to HTTPServer to be more robust against timeouts,
because the TCPServer destructor waits forever for threads to join, and if not everything is
perfect it will make the tests time out, which isn't great. HTTPServer does everything on the
main thread with callbacks instead.
- TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:
(-[DataTaskIdentifierCollisionDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(-[DataTaskIdentifierCollisionDelegate waitForMessages:]):
(waitUntilTwoServersConnected):
(TEST):
- 7:06 PM Changeset in webkit [283598] by
-
- 1 copy in tags/Safari-612.2.9.2.3
Tag Safari-612.2.9.2.3.
- 7:03 PM Changeset in webkit [283597] by
-
- 1 copy in tags/Safari-612.2.9.3.3
Tag Safari-612.2.9.3.3.
- 6:42 PM Changeset in webkit [283596] by
-
- 1 copy in tags/Safari-612.2.9.0.4
Tag Safari-612.2.9.0.4.
- 6:16 PM Changeset in webkit [283595] by
-
- 9 edits in trunk/Source/WebKit
Do daily activity in AdAttributionDaemon based off of when the xpc activity happens
https://bugs.webkit.org/show_bug.cgi?id=231254
Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-05
Reviewed by Kate Cheney.
Before this change, we did the activity 5 seconds after startup of the daemon, which can be started
by sending an attribution to it or by the daily xpc activity. We want to do it only because of the xpc activity.
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClient.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClientImpl.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDaemonClient.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::PrivateClickMeasurementManager):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.cpp:
(WebKit::PCM::doDailyActivityInManager):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.h:
- Shared/EntryPointUtilities/Cocoa/Daemon/PCMDaemonEntryPoint.mm:
(WebKit::registerScheduledActivityHandler):
- 5:56 PM Changeset in webkit [283594] by
-
- 1 copy in tags/Safari-612.2.9.1.4
Tag Safari-612.2.9.1.4.
- 5:46 PM Changeset in webkit [283593] by
-
- 3 edits3 adds in trunk
PCM: Allow measurement of links in nested, cross-site iframes
https://bugs.webkit.org/show_bug.cgi?id=229204
<rdar://problem/82310386>
Reviewed by Alex Christensen.
Developers have said it would be great to allow measurement of links served in
nested, cross-site iframes on the click source. The click still count as if it
happened on the first party click source site, and any attribution report still
goes to that first party. This change enables the *serving* of measurable links
in nested, cross-site iframes.
The standards issue where this was discussed:
https://github.com/privacycg/private-click-measurement/issues/7
Source/WebCore:
Test: http/tests/privateClickMeasurement/store-private-click-measurement-nested.html
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):
Removed the block for nested, cross-site iframes.
LayoutTests:
- http/tests/privateClickMeasurement/resources/nestedTargetLink.html: Added.
- http/tests/privateClickMeasurement/store-private-click-measurement-nested-expected.txt: Added.
- http/tests/privateClickMeasurement/store-private-click-measurement-nested.html: Added.
- 5:42 PM Changeset in webkit [283592] by
-
- 8 edits1 add in trunk/Source
[iOS] Transcode videos selected from UIImagePickerController
https://bugs.webkit.org/show_bug.cgi?id=230639
rdar://79665678
Reviewed by Tim Horton.
Source/WebCore:
- en.lproj/Localizable.strings:
Add a localizable string for the message displayed while transcoding
video.
Source/WebCore/PAL:
Add AVFoundation API needed to transcode video.
- pal/cocoa/AVFoundationSoftLink.h:
- pal/cocoa/AVFoundationSoftLink.mm:
Source/WebKit:
File inputs on iOS allow users to choose images/videos from the system
photo picker, using UIImagePickerController. In single selection mode,
UIImagePickerController transcodes the selected video to H.264. However,
in multiple selection mode, video is not transcoded and is left in its
original format.
Today, videos on most iOS devices are encoded with HEVC by default.
However, some sites, such as Twitter, only accept H.264 encoded video.
Thus, the current video upload behavior is problematic, as users may be
unable to upload video.
Unfortunately, the photo picking functionality of UIImagePickerController
is deprecated. The best solution would be to adopt PHPickerViewController,
the replacement API, which performs transcoding when retrieving selected
items (regardless of single/multiple selection). However,
PHPickerViewController currently lacks other functionality that WebKit
requires, preventing adoption.
Consequently, the short term solution is to transcode the videos in
WebKit, ensuring H.264 encoded video is always provided to sites. See
below for implementation details.
- Platform/spi/ios/PhotosUISPI.h: Added.
- UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[_WKFileUploadItem setFileURL:]):
Add a setter to update the file URL. Called after transcoding a _WKFileUploadItem.
(-[WKFileUploadMediaTranscoder initWithItems:videoCount:completionHandler:]):
Introduce WKFileUploadMediaTranscoder to manage transcoding of videos
and the display of progress UI. Transcoding is performed serially
(one video at a time), but occurs off the main thread.
(-[WKFileUploadMediaTranscoder start]):
Begin transcoding. Run a timer to update the progress UI, as
AVAssetExportSession does not provide progress updates on its own.
The progress UI is implemented using PUActivityProgressController, to
match system Photos UI.
(-[WKFileUploadMediaTranscoder _processItemAtIndex:]):
Transcode a single video, using AVAssetExportSession. If transcoding
fails for any reason, the original video is used as a fallback.
Transcoding can also be cancelled using the progress UI, in which case
no more videos are processed.
(-[WKFileUploadMediaTranscoder _finishedProcessing]):
(-[WKFileUploadMediaTranscoder _dismissProgress]):
(-[WKFileUploadMediaTranscoder _updateProgress:]):
(-[WKFileUploadMediaTranscoder _temporaryDirectoryCreateIfNecessary]):
(-[WKFileUploadPanel _chooseMediaItems:]):
Refactor the common aspects of single/multiple media selection into a
single method.
(-[WKFileUploadPanel imagePickerController:didFinishPickingMediaWithInfo:]):
(-[WKFileUploadPanel imagePickerController:didFinishPickingMultipleMediaWithInfo:]):
(-[WKFileUploadPanel _processMediaInfoDictionaries:successBlock:failureBlock:]):
(-[WKFileUploadPanel _processMediaInfoDictionaries:atIndex:processedResults:successBlock:failureBlock:]):
(-[WKFileUploadPanel _uploadItemFromMediaInfo:successBlock:failureBlock:]):
Remove redundant platform conditional.
(-[WKFileUploadPanel _uploadMediaItemsTranscodingVideo:]):
If any videos were selected, transcode them prior to uploading.
- WebKit.xcodeproj/project.pbxproj:
- 5:20 PM Changeset in webkit [283591] by
-
- 42 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening after r283550
- platform/wincairo/editing/deleting/delete-at-paragraph-boundaries-002-expected.txt:
- platform/wincairo/editing/deleting/delete-at-paragraph-boundaries-003-expected.txt:
- platform/wincairo/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
- platform/wincairo/editing/deleting/delete-at-paragraph-boundaries-005-expected.txt:
- platform/wincairo/editing/deleting/delete-at-paragraph-boundaries-006-expected.txt:
- platform/wincairo/editing/deleting/delete-at-paragraph-boundaries-007-expected.txt:
- platform/wincairo/editing/deleting/delete-at-paragraph-boundaries-008-expected.txt:
- platform/wincairo/editing/deleting/delete-at-paragraph-boundaries-009-expected.txt:
- platform/wincairo/editing/deleting/delete-at-paragraph-boundaries-010-expected.txt:
- platform/wincairo/editing/deleting/delete-at-paragraph-boundaries-011-expected.txt:
- platform/wincairo/editing/deleting/non-smart-delete-expected.txt:
- platform/wincairo/editing/input/emacs-ctrl-o-expected.txt:
- platform/wincairo/editing/inserting/insert-br-quoted-001-expected.txt:
- platform/wincairo/editing/inserting/insert-br-quoted-002-expected.txt:
- platform/wincairo/editing/inserting/insert-br-quoted-003-expected.txt:
- platform/wincairo/editing/inserting/insert-br-quoted-004-expected.txt:
- platform/wincairo/editing/inserting/insert-br-quoted-005-expected.txt:
- platform/wincairo/editing/inserting/insert-br-quoted-006-expected.txt:
- platform/wincairo/editing/inserting/insert-div-026-expected.txt:
- platform/wincairo/editing/inserting/return-key-with-selection-001-expected.txt:
- platform/wincairo/editing/inserting/return-key-with-selection-002-expected.txt:
- platform/wincairo/editing/inserting/return-key-with-selection-003-expected.txt:
- platform/wincairo/editing/style/block-styles-007-expected.txt:
- platform/wincairo/editing/style/smoosh-styles-001-expected.txt:
- platform/wincairo/editing/style/smoosh-styles-003-expected.txt:
- platform/wincairo/editing/style/style-3998892-fix-expected.txt:
- platform/wincairo/editing/style/style-boundary-001-expected.txt:
- platform/wincairo/editing/style/style-boundary-002-expected.txt:
- platform/wincairo/editing/style/style-boundary-003-expected.txt:
- platform/wincairo/editing/style/style-boundary-004-expected.txt:
- platform/wincairo/editing/style/style-boundary-005-expected.txt:
- platform/wincairo/editing/unsupported-content/list-delete-001-expected.txt:
- platform/wincairo/editing/unsupported-content/list-delete-003-expected.txt:
- platform/wincairo/editing/unsupported-content/list-type-after-expected.txt:
- platform/wincairo/editing/unsupported-content/list-type-before-expected.txt:
- platform/wincairo/editing/unsupported-content/table-delete-002-expected.txt:
- platform/wincairo/editing/unsupported-content/table-type-after-expected.txt:
- platform/wincairo/editing/unsupported-content/table-type-before-expected.txt:
- platform/wincairo/fast/css/first-line-text-decoration-expected.txt:
- platform/wincairo/fast/css/first-line-text-decoration-inherited-from-parent-expected.txt:
- platform/wincairo/fast/text/firstline/001-expected.txt:
- 5:16 PM Changeset in webkit [283590] by
-
- 4 edits6 adds in trunk
ASSERT(m_callback->hasCallback()) under IntersectionObserver::notify()
https://bugs.webkit.org/show_bug.cgi?id=231235
<rdar://80837616>
Reviewed by Ryosuke Niwa.
Source/WebCore:
IntersectionObserver's JS callback stays alive as long as its JS wrapper and
its JS wrapper's lifetime relies on the IntersectionObserver::isReachableFromOpaqueRoots()
implementation. isReachableFromOpaqueRoots() keeps the wrapper alive as long
as the JS wrappers of observation / pending targets are alive. However, as per specification,
we always need to dispatch an observation for an observation target, even if that target
is not connected. Our code was already taking care of dispatching such observation. However,
there was nothing keeping the observation target alive in this case and thus nothing keeping
the JS callback alive either.
To address the issue, I am introducing a new m_targetsWaitingForFirstObservation data member
which holds a strong ref to the observation target until the next time we call notify().
This makes sure that the observation target (and its JS wrapper) stays alive long enough for
us to dispatch the first observation for it. I also updated isReachableFromOpaqueRoots() to
return true as long as m_targetsWaitingForFirstObservation is non-empty so that the
IntersectionObserver's JS wrapper (and thus the JS callback) stay alive long enough too.
Tests: intersection-observer/observe-disconnected-target-crash.html
intersection-observer/observe-disconnected-target.html
- page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::observe):
(WebCore::IntersectionObserver::unobserve):
(WebCore::IntersectionObserver::removeAllTargets):
(WebCore::IntersectionObserver::notify):
(WebCore::IntersectionObserver::isReachableFromOpaqueRoots const):
- page/IntersectionObserver.h:
LayoutTests:
Add layout test coverage both for the crash and the Web facing behavior.
- intersection-observer/observe-disconnected-target-crash-expected.txt: Added.
- intersection-observer/observe-disconnected-target-crash.html: Added.
- intersection-observer/observe-disconnected-target-expected.txt: Added.
- intersection-observer/observe-disconnected-target.html: Added.
- 4:52 PM Changeset in webkit [283589] by
-
- 1 copy in tags/Safari-611.4.2.0.2
Tag Safari-611.4.2.0.2.
- 4:51 PM Changeset in webkit [283588] by
-
- 8 edits in branches/safari-611.4.2.0-branch/Source
Versioning.
WebKit-7611.4.2.0.2
- 4:48 PM Changeset in webkit [283587] by
-
- 2 edits in trunk/LayoutTests
[ iOS Release ] fast/events/ios/rotation/layout-viewport-during-safari-type-rotation.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=231266
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 4:47 PM Changeset in webkit [283586] by
-
- 5 edits in trunk
Add an entitlement check to only allow AdAttributionDaemon to be connected to by the network process
https://bugs.webkit.org/show_bug.cgi?id=231248
Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-05
Reviewed by Alexey Proskuryakov.
Source/WebKit:
Adding a restricted entitlement on macOS when using a non-internal SDK causes the network process to not start,
so in open source builds (in which the daemon is only used for unit tests) just skip the entitlement check.
- Scripts/process-entitlements.sh:
- Shared/EntryPointUtilities/Cocoa/Daemon/PCMDaemonEntryPoint.mm:
(WebKit::startListeningForMachServiceConnections):
Tools:
Also add a system call to "launchctl unload" to clear any residual state in launchd before starting the unit test.
Otherwise we could get into a state where the plist is registered with launchd from an old test that registered it
but didn't start the daemon, causing the test to time out until you reboot the machine. This makes it recover nicely.
- TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::attemptConnectionInProcessWithoutEntitlement):
(TestWebKitAPI::setInjectedBundleClient): Deleted.
(TestWebKitAPI::webViewWithOpenInspector): Deleted.
- 4:43 PM Changeset in webkit [283585] by
-
- 4 edits2 adds in trunk
createImageBitmap using a HLS video as source always return a black image.
https://bugs.webkit.org/show_bug.cgi?id=231225
rdar://83884031
Source/WebCore:
When playing HLS content, [AVURLAsset tracks] return an empty array.
We need to instead retrieve it from the AVPlayerItem object. The method
paintWithVideoOutput would have bailed out early as a consequence.
So we refactor the code a little to retrieve the tracks where they can be found
Reviewed by Eric Carlson.
Test: http/tests/media/video-hls-copy-into-canvas.html
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateRotationSession):
(WebCore::MediaPlayerPrivateAVFoundationObjC::audioSourceProvider):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::firstEnabledTrack const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::firstEnabledAudibleTrack const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::firstEnabledVisibleTrack const):
LayoutTests:
Reviewed by Eric Carlson.
- http/tests/media/video-hls-copy-into-canvas-expected.txt: Added.
- http/tests/media/video-hls-copy-into-canvas.html: Added.
- 4:29 PM Changeset in webkit [283584] by
-
- 2 edits in trunk/LayoutTests
[ iOS 15 ] fast/events/ios/rotation/layout-viewport-during-rotation.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=231264
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 4:28 PM Changeset in webkit [283583] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION (Monterey): paramountplus.com: Cannot enter fullscreen in Safari
https://bugs.webkit.org/show_bug.cgi?id=231005
The page performs a lot of canvas readbacks when entering or exiting
fullscreen mode.
When the media is encrypted, attempting to do so would have made the
sync call from the content to GPU process hang for one full second.
Worse the CATransaction should it fail to paint would retry continuously.
After 10 attempts (and blocking the process for over 10s) the
content process would get automatically killed.
This works around rdar://83867877 where outputMediaDataWillChange isn't
called following a call to
[AVPlayerItemVideoOutput requestNotificationOfMediaDataChangeWithAdvanceInterval].
In case we timed out. we will disable this functionality until there's a
track change.
Reviewed by Eric Carlson.
We do not have the infrastructure to easily test interacting with encrypted
content. Once bug 231006 is fixed, we could write a test to ensure that canvas
readbacks do not lock-up.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks):
(WebCore::MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange):
- 3:47 PM Changeset in webkit [283582] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] fast/events/ios/rotation/resize-iframe-after-orientation-change.html is crashing/ failing.
https://bugs.webkit.org/show_bug.cgi?id=231262
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 3:39 PM Changeset in webkit [283581] by
-
- 16 edits2 adds in branches/safari-612.2.9.3-branch
Cherry-pick r283556. rdar://problem/83899967
[JSC] JSPropertyNameEnumerator should not have cached prototype chain since empty JSPropertyNameEnumerator is shared
https://bugs.webkit.org/show_bug.cgi?id=231202
JSTests:
Reviewed by Keith Miller.
- stress/for-in-validation-poly-proto.js: Added. (shouldBe): (test): (factory.Test): (factory):
- stress/for-in-validation-watchpoint.js: Added. (shouldBe): (test): (Test): (factory):
Source/JavaScriptCore:
rdar://83815122
Reviewed by Keith Miller.
r282014 assumed an invariant that JSPropertyNameEnumerator's StructureChain is immutable.
This invariant is also used in validation of JSPropertyNameEnumerator. However, this
invariant was broken since we now have shared empty sentinel JSPropertyNameEnumerator, which can
be used for different structures having different prototype chain.
Since now we have shared JSPropertyNameEnumerator, JSPropertyNameEnumerator should not have
StructureChain in its member. When invalidating StructureChain in Structure, we also clear
cached JSPropertyNameEnumerator so that we do not get a stale JSPropertyNameEnumerator from
Structure even though watchpoint-based validation is not used.
This patch also removes ValidatedViaWatchpoint flag in JSPropertyNameEnumerator due to the same
reason. We should not modify JSPropertyNameEnumerator once it is instantiated. Instead, we encode
this flag as a lowest bit of m_cachedPropertyNameEnumerator. If it is validated via traversing (not watchpoints),
then this bit is set. So when loading that pointer from StructureRareData, we can quickly detect
it without even accessing to the enumerator. This fixes the issue, and it is even cleaner.
We rename m_cachedPropertyNameEnumerator to m_cachedPropertyNameEnumeratorAndFlag since it now
includes this flag.
While reviewing the code, we also found that watchpoint-based validation didn't care about PolyProto.
We should disable watchpoint-based validation if PolyProto is used.
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileGetPropertyEnumerator):
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_get_property_enumerator):
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LowLevelInterpreter64.asm:
- runtime/JSPropertyNameEnumerator.cpp: (JSC::JSPropertyNameEnumerator::visitChildrenImpl):
- runtime/JSPropertyNameEnumerator.h: (JSC::propertyNameEnumerator):
- runtime/Structure.cpp: (JSC::Structure::visitChildrenImpl): (JSC::Structure::setCachedPropertyNameEnumerator): (JSC::Structure::cachedPropertyNameEnumeratorAndFlag const):
- runtime/Structure.h: (JSC::Structure::propertyNameEnumeratorShouldWatch const):
- runtime/StructureInlines.h: (JSC::Structure::prototypeChain const): (JSC::Structure::clearCachedPrototypeChain):
- runtime/StructureRareData.cpp: (JSC::StructureRareData::visitChildrenImpl):
- runtime/StructureRareData.h:
- runtime/StructureRareDataInlines.h: (JSC::StructureRareData::cachedPropertyNameEnumerator const): (JSC::StructureRareData::cachedPropertyNameEnumeratorAndFlag const): (JSC::StructureRareData::setCachedPropertyNameEnumerator): (JSC::StructureChainInvalidationWatchpoint::fireInternal): (JSC::StructureRareData::tryCachePropertyNameEnumeratorViaWatchpoint): (JSC::StructureRareData::clearCachedPropertyNameEnumerator): (JSC::StructureRareData::invalidateWatchpointBasedValidation): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283556 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:38 PM Changeset in webkit [283580] by
-
- 8 edits in branches/safari-612.2.9.3-branch/Source
Versioning.
WebKit-7612.2.9.3.3
- 3:37 PM Changeset in webkit [283579] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] accessibility/misspelling-range.html is constantly failing
https://bugs.webkit.org/show_bug.cgi?id=231261
Unreviewed test gardening.
- 3:32 PM Changeset in webkit [283578] by
-
- 16 edits2 adds in branches/safari-612.2.9.2-branch
Cherry-pick r283556. rdar://problem/83899913
[JSC] JSPropertyNameEnumerator should not have cached prototype chain since empty JSPropertyNameEnumerator is shared
https://bugs.webkit.org/show_bug.cgi?id=231202
JSTests:
Reviewed by Keith Miller.
- stress/for-in-validation-poly-proto.js: Added. (shouldBe): (test): (factory.Test): (factory):
- stress/for-in-validation-watchpoint.js: Added. (shouldBe): (test): (Test): (factory):
Source/JavaScriptCore:
rdar://83815122
Reviewed by Keith Miller.
r282014 assumed an invariant that JSPropertyNameEnumerator's StructureChain is immutable.
This invariant is also used in validation of JSPropertyNameEnumerator. However, this
invariant was broken since we now have shared empty sentinel JSPropertyNameEnumerator, which can
be used for different structures having different prototype chain.
Since now we have shared JSPropertyNameEnumerator, JSPropertyNameEnumerator should not have
StructureChain in its member. When invalidating StructureChain in Structure, we also clear
cached JSPropertyNameEnumerator so that we do not get a stale JSPropertyNameEnumerator from
Structure even though watchpoint-based validation is not used.
This patch also removes ValidatedViaWatchpoint flag in JSPropertyNameEnumerator due to the same
reason. We should not modify JSPropertyNameEnumerator once it is instantiated. Instead, we encode
this flag as a lowest bit of m_cachedPropertyNameEnumerator. If it is validated via traversing (not watchpoints),
then this bit is set. So when loading that pointer from StructureRareData, we can quickly detect
it without even accessing to the enumerator. This fixes the issue, and it is even cleaner.
We rename m_cachedPropertyNameEnumerator to m_cachedPropertyNameEnumeratorAndFlag since it now
includes this flag.
While reviewing the code, we also found that watchpoint-based validation didn't care about PolyProto.
We should disable watchpoint-based validation if PolyProto is used.
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileGetPropertyEnumerator):
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_get_property_enumerator):
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LowLevelInterpreter64.asm:
- runtime/JSPropertyNameEnumerator.cpp: (JSC::JSPropertyNameEnumerator::visitChildrenImpl):
- runtime/JSPropertyNameEnumerator.h: (JSC::propertyNameEnumerator):
- runtime/Structure.cpp: (JSC::Structure::visitChildrenImpl): (JSC::Structure::setCachedPropertyNameEnumerator): (JSC::Structure::cachedPropertyNameEnumeratorAndFlag const):
- runtime/Structure.h: (JSC::Structure::propertyNameEnumeratorShouldWatch const):
- runtime/StructureInlines.h: (JSC::Structure::prototypeChain const): (JSC::Structure::clearCachedPrototypeChain):
- runtime/StructureRareData.cpp: (JSC::StructureRareData::visitChildrenImpl):
- runtime/StructureRareData.h:
- runtime/StructureRareDataInlines.h: (JSC::StructureRareData::cachedPropertyNameEnumerator const): (JSC::StructureRareData::cachedPropertyNameEnumeratorAndFlag const): (JSC::StructureRareData::setCachedPropertyNameEnumerator): (JSC::StructureChainInvalidationWatchpoint::fireInternal): (JSC::StructureRareData::tryCachePropertyNameEnumeratorViaWatchpoint): (JSC::StructureRareData::clearCachedPropertyNameEnumerator): (JSC::StructureRareData::invalidateWatchpointBasedValidation): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283556 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:29 PM Changeset in webkit [283577] by
-
- 11 edits in trunk/Source/WebCore
Unreviewed, reverting r283339.
Reverting because this commit may have caused fast/attachment
tests to crash
Reverted changeset:
"[iOS][GPU Process] support
<attachment>"
https://bugs.webkit.org/show_bug.cgi?id=230781
https://commits.webkit.org/r283339
- 3:26 PM Changeset in webkit [283576] by
-
- 8 edits in branches/safari-612.2.9.2-branch/Source
Versioning.
WebKit-7612.2.9.2.3
- 3:20 PM Changeset in webkit [283575] by
-
- 16 edits2 adds in branches/safari-612.2.9.0-branch
Cherry-pick r283556. rdar://problem/83900126
[JSC] JSPropertyNameEnumerator should not have cached prototype chain since empty JSPropertyNameEnumerator is shared
https://bugs.webkit.org/show_bug.cgi?id=231202
JSTests:
Reviewed by Keith Miller.
- stress/for-in-validation-poly-proto.js: Added. (shouldBe): (test): (factory.Test): (factory):
- stress/for-in-validation-watchpoint.js: Added. (shouldBe): (test): (Test): (factory):
Source/JavaScriptCore:
rdar://83815122
Reviewed by Keith Miller.
r282014 assumed an invariant that JSPropertyNameEnumerator's StructureChain is immutable.
This invariant is also used in validation of JSPropertyNameEnumerator. However, this
invariant was broken since we now have shared empty sentinel JSPropertyNameEnumerator, which can
be used for different structures having different prototype chain.
Since now we have shared JSPropertyNameEnumerator, JSPropertyNameEnumerator should not have
StructureChain in its member. When invalidating StructureChain in Structure, we also clear
cached JSPropertyNameEnumerator so that we do not get a stale JSPropertyNameEnumerator from
Structure even though watchpoint-based validation is not used.
This patch also removes ValidatedViaWatchpoint flag in JSPropertyNameEnumerator due to the same
reason. We should not modify JSPropertyNameEnumerator once it is instantiated. Instead, we encode
this flag as a lowest bit of m_cachedPropertyNameEnumerator. If it is validated via traversing (not watchpoints),
then this bit is set. So when loading that pointer from StructureRareData, we can quickly detect
it without even accessing to the enumerator. This fixes the issue, and it is even cleaner.
We rename m_cachedPropertyNameEnumerator to m_cachedPropertyNameEnumeratorAndFlag since it now
includes this flag.
While reviewing the code, we also found that watchpoint-based validation didn't care about PolyProto.
We should disable watchpoint-based validation if PolyProto is used.
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileGetPropertyEnumerator):
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_get_property_enumerator):
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LowLevelInterpreter64.asm:
- runtime/JSPropertyNameEnumerator.cpp: (JSC::JSPropertyNameEnumerator::visitChildrenImpl):
- runtime/JSPropertyNameEnumerator.h: (JSC::propertyNameEnumerator):
- runtime/Structure.cpp: (JSC::Structure::visitChildrenImpl): (JSC::Structure::setCachedPropertyNameEnumerator): (JSC::Structure::cachedPropertyNameEnumeratorAndFlag const):
- runtime/Structure.h: (JSC::Structure::propertyNameEnumeratorShouldWatch const):
- runtime/StructureInlines.h: (JSC::Structure::prototypeChain const): (JSC::Structure::clearCachedPrototypeChain):
- runtime/StructureRareData.cpp: (JSC::StructureRareData::visitChildrenImpl):
- runtime/StructureRareData.h:
- runtime/StructureRareDataInlines.h: (JSC::StructureRareData::cachedPropertyNameEnumerator const): (JSC::StructureRareData::cachedPropertyNameEnumeratorAndFlag const): (JSC::StructureRareData::setCachedPropertyNameEnumerator): (JSC::StructureChainInvalidationWatchpoint::fireInternal): (JSC::StructureRareData::tryCachePropertyNameEnumeratorViaWatchpoint): (JSC::StructureRareData::clearCachedPropertyNameEnumerator): (JSC::StructureRareData::invalidateWatchpointBasedValidation): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283556 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:16 PM Changeset in webkit [283574] by
-
- 2 edits in trunk/Tools
TestWebKitAPI.PrivateClickMeasurement.DaemonBasicFunctionality is timing out
https://bugs.webkit.org/show_bug.cgi?id=231257
- TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
Originally reviewed as part of https://bugs.webkit.org/show_bug.cgi?id=231248
this should fix the error that happens when a previous test run has registered
the test AdAttributionDaemon but then failed before it was started, which leaves
launchd in a state of having already loaded a plist for the mach service named
"org.webkit.pcmtestdaemon.service" so it refuses to load another. The solution is
just to try unloading any previously loaded plist before loading another to clear
state in launchd.
- 3:15 PM Changeset in webkit [283573] by
-
- 16 edits2 adds in branches/safari-612.2.9.1-branch
Cherry-pick r283556. rdar://problem/83900153
[JSC] JSPropertyNameEnumerator should not have cached prototype chain since empty JSPropertyNameEnumerator is shared
https://bugs.webkit.org/show_bug.cgi?id=231202
JSTests:
Reviewed by Keith Miller.
- stress/for-in-validation-poly-proto.js: Added. (shouldBe): (test): (factory.Test): (factory):
- stress/for-in-validation-watchpoint.js: Added. (shouldBe): (test): (Test): (factory):
Source/JavaScriptCore:
rdar://83815122
Reviewed by Keith Miller.
r282014 assumed an invariant that JSPropertyNameEnumerator's StructureChain is immutable.
This invariant is also used in validation of JSPropertyNameEnumerator. However, this
invariant was broken since we now have shared empty sentinel JSPropertyNameEnumerator, which can
be used for different structures having different prototype chain.
Since now we have shared JSPropertyNameEnumerator, JSPropertyNameEnumerator should not have
StructureChain in its member. When invalidating StructureChain in Structure, we also clear
cached JSPropertyNameEnumerator so that we do not get a stale JSPropertyNameEnumerator from
Structure even though watchpoint-based validation is not used.
This patch also removes ValidatedViaWatchpoint flag in JSPropertyNameEnumerator due to the same
reason. We should not modify JSPropertyNameEnumerator once it is instantiated. Instead, we encode
this flag as a lowest bit of m_cachedPropertyNameEnumerator. If it is validated via traversing (not watchpoints),
then this bit is set. So when loading that pointer from StructureRareData, we can quickly detect
it without even accessing to the enumerator. This fixes the issue, and it is even cleaner.
We rename m_cachedPropertyNameEnumerator to m_cachedPropertyNameEnumeratorAndFlag since it now
includes this flag.
While reviewing the code, we also found that watchpoint-based validation didn't care about PolyProto.
We should disable watchpoint-based validation if PolyProto is used.
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileGetPropertyEnumerator):
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_get_property_enumerator):
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LowLevelInterpreter64.asm:
- runtime/JSPropertyNameEnumerator.cpp: (JSC::JSPropertyNameEnumerator::visitChildrenImpl):
- runtime/JSPropertyNameEnumerator.h: (JSC::propertyNameEnumerator):
- runtime/Structure.cpp: (JSC::Structure::visitChildrenImpl): (JSC::Structure::setCachedPropertyNameEnumerator): (JSC::Structure::cachedPropertyNameEnumeratorAndFlag const):
- runtime/Structure.h: (JSC::Structure::propertyNameEnumeratorShouldWatch const):
- runtime/StructureInlines.h: (JSC::Structure::prototypeChain const): (JSC::Structure::clearCachedPrototypeChain):
- runtime/StructureRareData.cpp: (JSC::StructureRareData::visitChildrenImpl):
- runtime/StructureRareData.h:
- runtime/StructureRareDataInlines.h: (JSC::StructureRareData::cachedPropertyNameEnumerator const): (JSC::StructureRareData::cachedPropertyNameEnumeratorAndFlag const): (JSC::StructureRareData::setCachedPropertyNameEnumerator): (JSC::StructureChainInvalidationWatchpoint::fireInternal): (JSC::StructureRareData::tryCachePropertyNameEnumeratorViaWatchpoint): (JSC::StructureRareData::clearCachedPropertyNameEnumerator): (JSC::StructureRareData::invalidateWatchpointBasedValidation): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283556 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:12 PM Changeset in webkit [283572] by
-
- 9 edits in trunk/Source
Web Inspector: Show color space for canvases in the Graphics tab on the overview cards
https://bugs.webkit.org/show_bug.cgi?id=231205
Reviewed by Devin Rousso.
Source/JavaScriptCore:
Use an enum instead of strings for color space values sent to the frontend.
- inspector/protocol/Canvas.json:
- inspector/scripts/codegen/generator.py:
Source/WebCore:
Use an enum instead of strings for color space values sent to the frontend.
- inspector/InspectorCanvas.cpp:
(WebCore::buildObjectForCanvasContextAttributes):
Source/WebInspectorUI:
For canvas context's with a color space attribute, show the color space next to the context type in the header
of each context card in the Graphics tab.
- UserInterface/Models/Canvas.js:
(WI.Canvas.displayNameForColorSpace):
- UserInterface/Views/CanvasContentView.js:
(WI.CanvasContentView.prototype.initialLayout):
- UserInterface/Views/CanvasOverviewContentView.css:
(.content-view.canvas-overview > .content-view.canvas > header > .titles > :matches(.subtitle, .color-space),):
(.content-view.canvas-overview > .content-view.canvas > header .color-space::before):
- 3:04 PM Changeset in webkit [283571] by
-
- 1 copy in tags/Safari-611.4.2.0.1
Tag Safari-611.4.2.0.1.
- 2:54 PM Changeset in webkit [283570] by
-
- 2 edits in trunk/Source/WebCore
Remove leftover ASSERT.
Unreviewed.
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::inlineItemWidth const): We could very well run the fast text measuring codepath with different styles e.g. when there's color difference.
- 2:28 PM Changeset in webkit [283569] by
-
- 2 edits in trunk/LayoutTests
[ iOS 15 ] ASSERTION FAILED: isRunningTest(WebCore::applicationBundleIdentifier()).
https://bugs.webkit.org/show_bug.cgi?id=231255
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 1:12 PM Changeset in webkit [283568] by
-
- 4 edits2 adds in trunk
Incorrect Length constructor used after blending negative Length
https://bugs.webkit.org/show_bug.cgi?id=230873
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-05
Reviewed by Antoine Quint.
Source/WebCore:
Test: fast/borders/border-radius-cubic-bezier-timing-function-negative-value.html
- platform/Length.cpp:
(WebCore::blend):
Only call current Length constructor for the non-LengthType::Calculated types when the value is negative, otherwise use behavior before r273603.
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertToRadiusLength):
Clamp BuilderConverter::convertToRadiusLength Lengths to values >= 0
LayoutTests:
- fast/borders/border-radius-cubic-bezier-timing-function-negative-value-expected.txt: Added.
- fast/borders/border-radius-cubic-bezier-timing-function-negative-value.html: Added.
- 12:20 PM Changeset in webkit [283567] by
-
- 6 edits1 add in trunk
CodeBlock should not add/remove LoopHintExecutionCounters.
https://bugs.webkit.org/show_bug.cgi?id=231209
rdar://83571235
Reviewed by Saam Barati.
JSTests:
- stress/codeBlock-should-not-add-remove-loop-hint-execution-counters-due-to-cached-unlinked-baseline-code.js: Added.
Source/JavaScriptCore:
This is because cached unlinked baseline JIT code would retain a pointer to those
counters. Hence, the UnlinkedCodeBlock should do the add /remove of the counters
instead.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::~CodeBlock):
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::initializeLoopHintExecutionCounter):
(JSC::UnlinkedCodeBlock::~UnlinkedCodeBlock):
- bytecode/UnlinkedCodeBlock.h:
- bytecode/UnlinkedCodeBlockGenerator.cpp:
(JSC::UnlinkedCodeBlockGenerator::finalize):
- 12:12 PM Changeset in webkit [283566] by
-
- 35 edits2 adds in trunk
CSP: unsafe-eval tests timing out or failing
https://bugs.webkit.org/show_bug.cgi?id=231113
<rdar://problem/83425041>
Reviewed by Brent Fulgham.
LayoutTests/imported/w3c:
- web-platform-tests/content-security-policy/script-src/script-src-1_4-expected.txt:
- web-platform-tests/content-security-policy/script-src/script-src-1_4_1-expected.txt:
- web-platform-tests/content-security-policy/script-src/script-src-1_4_2-expected.txt:
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_eval-expected.txt: Added.
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_new_function-expected.txt: Added.
- web-platform-tests/content-security-policy/securitypolicyviolation/blockeduri-eval-expected.txt:
This test gets the report but gets an incorrect column number. The bug
seems tangential to this patch and we should fix it in a followup.
- web-platform-tests/content-security-policy/unsafe-eval/eval-blocked-and-sends-report.sub-expected.txt:
- web-platform-tests/content-security-policy/unsafe-eval/eval-blocked-in-about-blank-iframe.sub-expected.txt:
This test gets the report but reveals a bug where we don't allow
inline script to execute after calling eval() when unsafe-inline is
specified but not unsafe-eval. Tracking in rdar://83846298.
- web-platform-tests/content-security-policy/unsafe-eval/eval-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/unsafe-eval/eval-scripts-setInterval-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/unsafe-eval/eval-scripts-setTimeout-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/unsafe-eval/function-constructor-blocked.sub-expected.txt:
Source/JavaScriptCore:
Many imported unsafe-eval tests are failing because we don't report
violations to the DOM or report URI when an eval is blocked. This
patch adds support for that by calling
ContentSecurityPolicy::allowEval() when eval is disabled.
Eventually I think we can remove the evalEnabled() code and check the
CSP policy instead, but I will save that for another patch.
- API/JSAPIGlobalObject.cpp:
- API/JSAPIGlobalObject.mm:
- interpreter/Interpreter.cpp:
(JSC::eval):
- jsc.cpp:
- runtime/DirectEvalExecutable.cpp:
(JSC::DirectEvalExecutable::create):
- runtime/FunctionConstructor.cpp:
(JSC::constructFunction):
- runtime/IndirectEvalExecutable.cpp:
(JSC::IndirectEvalExecutable::create):
- runtime/JSGlobalObject.cpp:
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::reportViolationForUnsafeEval):
Per the spec we should send the report to the element's document and
bubble it up to the window.
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
Source/WebCore:
No new tests. This will cause existing tests to pass.
- bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::reportViolationForUnsafeEval):
Add new parameter LogToConsole to ContentSecurityPolicy::allowEval()
because in many cases we already log to console for eval violations
when we throw an error.
- bindings/js/JSDOMWindowBase.h:
- bindings/js/JSRemoteDOMWindowBase.cpp:
Per the spec, we should set the DOM target to be the element's
document. If the element is null, we set it to the window's document.
- bindings/js/JSWorkerGlobalScopeBase.cpp:
(WebCore::JSWorkerGlobalScopeBase::reportViolationForUnsafeEval):
- bindings/js/JSWorkerGlobalScopeBase.h:
- bindings/js/JSWorkletGlobalScopeBase.cpp:
(WebCore::JSWorkletGlobalScopeBase::reportViolationForUnsafeEval):
- bindings/js/JSWorkletGlobalScopeBase.h:
- page/DOMWindow.cpp:
(WebCore::DOMWindow::setTimeout):
(WebCore::DOMWindow::setInterval):
Cases where we do not log to console already, so we should do it when
we check for a violation.
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::allowEval const):
(WebCore::ContentSecurityPolicy::reportViolation const):
Per the spec, the blockedURI for eval violations should be "eval".
This patch updates the blockedURI to be a string when passed to
reportViolation to allow this to happen.
(WebCore::ContentSecurityPolicy::logToConsole const):
Don't log an empty string to console. This allows us to pass an empty
string when shouldLogToConsole == LogToConsole::No so we don't need to
add an extra boolean to a lot of places to know whether to log.
- page/csp/ContentSecurityPolicy.h:
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::setTimeout):
(WebCore::WorkerGlobalScope::setInterval):
- 11:48 AM Changeset in webkit [283565] by
-
- 7 edits3 adds in trunk
Authorization header lost on 30x redirects
https://bugs.webkit.org/show_bug.cgi?id=230935
<rdar://problem/83689955>
Reviewed by Darin Adler.
Source/WebCore:
CFNetwork drops the Authorization request header in cases of same-origin redirects, which is not as per
the fetch specification [1] and doesn't match the behavior of other browsers.
To address the issue, WebKit adds the Authorization request back in case of a same-origin redirect.
Test: http/tests/fetch/fetch-redirect-same-origin-authorization.html
- platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::willSendRequest):
- platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::willSendRequest):
Source/WebKit:
CFNetwork drops the Authorization request header in cases of same-origin redirects, which is not as per
the fetch specification [1] and doesn't match the behavior of other browsers.
To address the issue, WebKit adds the Authorization request back in case of a same-origin redirect.
[1] https://fetch.spec.whatwg.org/#concept-http-redirect-fetch
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
LayoutTests:
- http/tests/fetch/fetch-redirect-same-origin-authorization-expected.txt: Added.
- http/tests/fetch/fetch-redirect-same-origin-authorization.html: Added.
- http/tests/fetch/resources/dump-authorization-header.py: Added.
Add layout test coverage.
- http/tests/xmlhttprequest/redirections-and-user-headers.html:
Update existing test to reflect behavior change.
- 11:41 AM Changeset in webkit [283564] by
-
- 8 edits in trunk/Source/WebCore
Move handling of AXValue from platform wrapper to AX core code.
https://bugs.webkit.org/show_bug.cgi?id=231200
Reviewed by Chris Fleizach.
No change in functionality.
Moved handling of the AXValue (NSAccessibilityValueAttribute) from the
Mac wrapper accessibilityAttributeValue handler to AXCoreObject::value.
This makes possible to share this code across multiple platforms.
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::headingLevel const):
Returns unsigned instead of int.
- accessibility/AccessibilityNodeObject.h:
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::value):
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
- 11:40 AM Changeset in webkit [283563] by
-
- 12 edits1 add in trunk
<model> should be draggable, similar to <img>
https://bugs.webkit.org/show_bug.cgi?id=229246
Reviewed by Wenson Hsieh.
Source/WebCore:
- page/DragActions.h:
(WebCore::anyDragSourceAction):
- page/DragController.cpp:
(WebCore::DragController::draggableElement const):
(WebCore::DragController::startDrag):
- page/EventHandler.cpp:
(WebCore::EventHandler::dragHysteresisExceeded const):
Make <model> draggable, vending a PasteboardImage with the model data and correct MIME type.
We currently make a DragImage from a node snapshot, but later will want a richer DragImage.
Source/WebKit:
- UIProcess/ios/DragDropInteractionState.mm:
(WebKit::shouldUseDragImageToCreatePreviewForDragSource):
For now, use the Web-Content-process-painted node-snapshot DragImage for the targeted preview on iOS.
Source/WebKitLegacy/mac:
- WebView/WebView.mm:
(kit):
Do nothing for <model> drags in legacy WebKit.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/cube.usdz: Added.
- TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:
(-[ModelLoadingMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):
Add a test that ensures that dragging a <model> works.
- 11:26 AM Changeset in webkit [283562] by
-
- 4 edits2 adds in trunk
Unsupported blending of mixed length types leads to nullptr deref when accessing m_value.calc in CSSPrimitiveValue::primitiveType()
https://bugs.webkit.org/show_bug.cgi?id=230929
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-05
Source/WebCore:
Reviewed by Darin Adler.
Test: fast/layoutformattingcontext/fit-content-min-height-animation.html
- css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::init):
- platform/Length.cpp:
(WebCore::blendMixedTypes):
LayoutTests:
Reviewed by Reviewed by Darin Adler.
- fast/layoutformattingcontext/fit-content-min-height-animation-expected.txt: Added.
- fast/layoutformattingcontext/fit-content-min-height-animation.html: Added.
- 11:19 AM Changeset in webkit [283561] by
-
- 6 edits in trunk
radial-gradient does not accept calc values that combine length and percent
https://bugs.webkit.org/show_bug.cgi?id=230388
Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2021-10-05
Reviewed by Simon Fraser.
Source/WebCore:
Removed outdated check that disallowed combined percentage and length expressions.
Added code to calculate radius for combined percentage and length expressions.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeRadialGradient):
LayoutTests:
- css3/calc/css3-radial-gradients-expected.html:
- css3/calc/css3-radial-gradients.html:
- 11:15 AM Changeset in webkit [283560] by
-
- 8 edits in trunk/Source
Add an alternate style for form controls, and implement it for checkboxes and radio buttons
https://bugs.webkit.org/show_bug.cgi?id=231160
Reviewed by Sam Weinig.
- rendering/RenderThemeIOS.h:
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::checkboxRadioBackgroundColor):
Add alternate background colors. Currently these are not specified as
semantic colors, so we inline the values.
(WebCore::RenderThemeIOS::checkboxRadioBackgroundGradient):
Add a gradient fill for checkbox and radio button backgrounds.
(WebCore::RenderThemeIOS::paintCheckboxRadioInnerShadow):
Add two inner shadows (really, a shadow and a glow) to the checkbox and radio button.
(WebCore::RenderThemeIOS::paintCheckbox):
(WebCore::RenderThemeIOS::paintRadio):
Drop the border and use a filled background and inner shadows instead,
when the setting is enabled.
- Scripts/Preferences/WebPreferences.yaml:
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultAlternateFormControlDesignEnabled):
- Shared/WebPreferencesDefaultValues.h:
- 11:12 AM Changeset in webkit [283559] by
-
- 20 edits3 adds1 delete in trunk
Implement missing functions in PrivateClickMeasurementDaemonClient
https://bugs.webkit.org/show_bug.cgi?id=231060
Reviewed by Chris Dumez.
Source/WebKit:
Enable debug mode in the daemon if any connected clients have debug mode enabled.
Broadcast debug messages to all clients, which will then broadcast them to all web processes.
Add an API test that turns it on then off and checks that the debug messages make it all the way to the inspector.
- NetworkProcess/NetworkSession.cpp:
(WebKit::managerOrProxy):
(WebKit::NetworkSession::setPrivateClickMeasurementDebugMode):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.cpp:
(WebKit::PCM::ConnectionToMachService::ConnectionToMachService):
(WebKit::PCM::ConnectionToMachService::send const):
(WebKit::PCM::ConnectionToMachService::sendWithReply const):
(WebKit::PCM::Connection::Connection): Deleted.
(WebKit::PCM::Connection::send const): Deleted.
(WebKit::PCM::Connection::sendWithReply const): Deleted.
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.h:
(WebKit::PCM::Connection::Connection):
(WebKit::PCM::Connection::get const):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDaemonClient.cpp:
(WebKit::PCM::DaemonClient::broadcastConsoleMessage):
(WebKit::PCM::DaemonClient::debugModeEnabled const):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::setDebugModeIsEnabled):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.cpp:
(WebKit::PCM::messageTypeSendsReply):
(WebKit::PCM::handlePCMMessageSetDebugModeIsEnabled):
(WebKit::PCM::decodeMessageAndSendToManager):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerProxy.cpp:
(WebKit::PCM::ManagerProxy::ManagerProxy):
(WebKit::PCM::ManagerProxy::setDebugModeIsEnabled):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerProxy.h:
- NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementConnectionCocoa.mm: Renamed from Source/WebKit/NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementDaemonConnectionCocoa.mm.
(WebKit::PCM::ConnectionToMachService::initializeConnectionIfNeeded const):
(WebKit::PCM::ConnectionToMachService::sendDebugModeIsEnabledMessageIfNecessary const):
(WebKit::PCM::ConnectionToMachService::checkForDebugMessageBroadcast const):
(WebKit::PCM::Connection::send const):
(WebKit::PCM::Connection::sendWithReply const):
(WebKit::PCM::ConnectionToMachService::send const):
(WebKit::PCM::ConnectionToMachService::sendWithReply const):
- Shared/EntryPointUtilities/Cocoa/Daemon/PCMDaemonConnectionSet.h: Copied from Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.h.
- Shared/EntryPointUtilities/Cocoa/Daemon/PCMDaemonConnectionSet.mm: Added.
(WebKit::PCM::DaemonConnectionSet::singleton):
(WebKit::PCM::DaemonConnectionSet::add):
(WebKit::PCM::DaemonConnectionSet::remove):
(WebKit::PCM::DaemonConnectionSet::setConnectedNetworkProcessHasDebugModeEnabled):
(WebKit::PCM::DaemonConnectionSet::debugModeEnabled const):
(WebKit::PCM::DaemonConnectionSet::broadcastConsoleMessage):
- Shared/EntryPointUtilities/Cocoa/Daemon/PCMDaemonEntryPoint.mm:
(WebKit::connectionEventHandler):
(WebKit::startListeningForMachServiceConnections):
(WebKit::peers): Deleted.
- SourcesCocoa.txt:
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _setPrivateClickMeasurementDebugModeEnabledForTesting:]):
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- WebKit.xcodeproj/project.pbxproj:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::testDaemonPList):
(TestWebKitAPI::cleanUpDaemon):
(TestWebKitAPI::TEST):
- TestWebKitAPI/cocoa/TestUIDelegate.h:
- TestWebKitAPI/cocoa/TestUIDelegate.mm:
(-[TestUIDelegate _webView:didAttachLocalInspector:]):
(-[TestUIDelegate waitForInspectorToShow]):
(-[WKWebView _test_waitForInspectorToShow]):
- 10:59 AM Changeset in webkit [283558] by
-
- 2 edits in trunk/LayoutTests
[ iOS15 WK2 ] http/tests/media/modern-media-controls/overflow-support/playback-speed-live-broadcast.html is a constant timeout.
<rdar://80393995>
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 10:51 AM Changeset in webkit [283557] by
-
- 9 edits in trunk/Source/JavaScriptCore
[JSC][32bit] Fix bugs after unlinked baseline jit
https://bugs.webkit.org/show_bug.cgi?id=231232
Patch by Xan López <Xan Lopez> on 2021-10-05
Reviewed by Yusuke Suzuki.
Fix a bunch of bugs introduced with unlinked baseline jit. As of
now we are disabling DataIC on baseline JIT to get things working
ASAP, making that work will be the next step. This makes us almost
go back to green bots.
(Patch co-authored with Geza Lore)
- bytecode/CallLinkInfo.cpp:
(JSC::CallLinkInfo::emitDataICFastPath): ASSERT we are not using DataIC on 32-bit.
- bytecode/CodeBlock.h:
(JSC::CodeBlock::hasDebuggerRequests const):
(JSC::CodeBlock::debuggerRequestsAddress): Deleted.
- jit/JITCall32_64.cpp:
(JSC::JIT::compileOpCall): don't use DataIC.
(JSC::JIT::compileOpCallSlowCase): set missing label.
- jit/JITCode.h:
(JSC::JITCode::useDataIC): disable DataIC on baseline JIT for 32-bit.
- jit/JITInlines.h:
(JSC::JIT::getConstantOperand): get constants from the CodeBlock,
since we don't do sharing on 32-bit.
(JSC::JIT::emitValueProfilingSite): remove an overzealous ASSERT.
(JSC::JIT::loadConstant): use sizeof(void*) instead of '8', makes
things work on 32-bit.
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_debug): share this with 32-bit.
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_debug): Deleted.
- llint/LowLevelInterpreter32_64.asm: do not thrash the PC register.
- 10:49 AM Changeset in webkit [283556] by
-
- 16 edits2 adds in trunk
[JSC] JSPropertyNameEnumerator should not have cached prototype chain since empty JSPropertyNameEnumerator is shared
https://bugs.webkit.org/show_bug.cgi?id=231202
JSTests:
Reviewed by Keith Miller.
- stress/for-in-validation-poly-proto.js: Added.
(shouldBe):
(test):
(factory.Test):
(factory):
- stress/for-in-validation-watchpoint.js: Added.
(shouldBe):
(test):
(Test):
(factory):
Source/JavaScriptCore:
rdar://83815122
Reviewed by Keith Miller.
r282014 assumed an invariant that JSPropertyNameEnumerator's StructureChain is immutable.
This invariant is also used in validation of JSPropertyNameEnumerator. However, this
invariant was broken since we now have shared empty sentinel JSPropertyNameEnumerator, which can
be used for different structures having different prototype chain.
Since now we have shared JSPropertyNameEnumerator, JSPropertyNameEnumerator should not have
StructureChain in its member. When invalidating StructureChain in Structure, we also clear
cached JSPropertyNameEnumerator so that we do not get a stale JSPropertyNameEnumerator from
Structure even though watchpoint-based validation is not used.
This patch also removes ValidatedViaWatchpoint flag in JSPropertyNameEnumerator due to the same
reason. We should not modify JSPropertyNameEnumerator once it is instantiated. Instead, we encode
this flag as a lowest bit of m_cachedPropertyNameEnumerator. If it is validated via traversing (not watchpoints),
then this bit is set. So when loading that pointer from StructureRareData, we can quickly detect
it without even accessing to the enumerator. This fixes the issue, and it is even cleaner.
We rename m_cachedPropertyNameEnumerator to m_cachedPropertyNameEnumeratorAndFlag since it now
includes this flag.
While reviewing the code, we also found that watchpoint-based validation didn't care about PolyProto.
We should disable watchpoint-based validation if PolyProto is used.
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetPropertyEnumerator):
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_get_property_enumerator):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LowLevelInterpreter64.asm:
- runtime/JSPropertyNameEnumerator.cpp:
(JSC::JSPropertyNameEnumerator::visitChildrenImpl):
- runtime/JSPropertyNameEnumerator.h:
(JSC::propertyNameEnumerator):
- runtime/Structure.cpp:
(JSC::Structure::visitChildrenImpl):
(JSC::Structure::setCachedPropertyNameEnumerator):
(JSC::Structure::cachedPropertyNameEnumeratorAndFlag const):
- runtime/Structure.h:
(JSC::Structure::propertyNameEnumeratorShouldWatch const):
- runtime/StructureInlines.h:
(JSC::Structure::prototypeChain const):
(JSC::Structure::clearCachedPrototypeChain):
- runtime/StructureRareData.cpp:
(JSC::StructureRareData::visitChildrenImpl):
- runtime/StructureRareData.h:
- runtime/StructureRareDataInlines.h:
(JSC::StructureRareData::cachedPropertyNameEnumerator const):
(JSC::StructureRareData::cachedPropertyNameEnumeratorAndFlag const):
(JSC::StructureRareData::setCachedPropertyNameEnumerator):
(JSC::StructureChainInvalidationWatchpoint::fireInternal):
(JSC::StructureRareData::tryCachePropertyNameEnumeratorViaWatchpoint):
(JSC::StructureRareData::clearCachedPropertyNameEnumerator):
(JSC::StructureRareData::invalidateWatchpointBasedValidation): Deleted.
- 9:57 AM Changeset in webkit [283555] by
-
- 3 edits2 adds in trunk
REGRESSION (r283335): Momentum scrolling is no longer locked to an axis
https://bugs.webkit.org/show_bug.cgi?id=231206
Reviewed by Wenson Hsieh.
Source/WebCore:
r283335 removed the line that constrained the scroll delta to an axis, so restore it.
This bug only manifested during the momentum phase because both EventDispatcher and
EventHandler send only non-momentum events through the filter. We should also filter
deltas on momentum events (webkit.org/b/231207).
Test: fast/scrolling/mac/momentum-axis-locking.html
- platform/mac/ScrollingEffectsController.mm:
(WebCore::ScrollingEffectsController::handleWheelEvent):
LayoutTests:
- fast/scrolling/mac/momentum-axis-locking-expected.txt: Added.
- fast/scrolling/mac/momentum-axis-locking.html: Added.
- 9:46 AM Changeset in webkit [283554] by
-
- 8 edits2 adds in trunk/Source/WebCore
[LFC][Integration] Introduce InlineBoxIterator
https://bugs.webkit.org/show_bug.cgi?id=231233
Reviewed by Alan Bujtas.
And use it in InlineBoxPainter.
The adoption is still incomplete here so only the legacy path is covered.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/integration/InlineIteratorBox.h:
(WebCore::InlineIterator::Box::isInlineBox const):
(WebCore::InlineIterator::Box::isRootInlineBox const):
- layout/integration/InlineIteratorBoxLegacyPath.h:
(WebCore::InlineIterator::BoxLegacyPath::isInlineBox const):
(WebCore::InlineIterator::BoxLegacyPath::isRootInlineBox const):
(WebCore::InlineIterator::BoxLegacyPath::traverseNextInlineBox):
(WebCore::InlineIterator::BoxLegacyPath::traversePreviousInlineBox):
(WebCore::InlineIterator::BoxLegacyPath::inlineFlowBox const):
- layout/integration/InlineIteratorBoxModernPath.h:
(WebCore::InlineIterator::BoxModernPath::isInlineBox const):
(WebCore::InlineIterator::BoxModernPath::isRootInlineBox const):
(WebCore::InlineIterator::BoxModernPath::traverseNextInlineBox):
(WebCore::InlineIterator::BoxModernPath::traversePreviousInlineBox):
- layout/integration/InlineIteratorInlineBox.cpp: Added.
(WebCore::InlineIterator::InlineBox::InlineBox):
(WebCore::InlineIterator::InlineBox::nextInlineBox const):
(WebCore::InlineIterator::InlineBox::previousInlineBox const):
(WebCore::InlineIterator::InlineBoxIterator::InlineBoxIterator):
(WebCore::InlineIterator::InlineBoxIterator::traverseNextInlineBox):
(WebCore::InlineIterator::InlineBoxIterator::traversePreviousInlineBox):
(WebCore::InlineIterator::inlineBoxFor):
- layout/integration/InlineIteratorInlineBox.h: Added.
(WebCore::InlineIterator::InlineBox::renderer const):
(WebCore::InlineIterator::InlineBox::legacyInlineBox const):
(WebCore::InlineIterator::InlineBoxIterator::InlineBoxIterator):
(WebCore::InlineIterator::InlineBoxIterator::operator* const):
(WebCore::InlineIterator::InlineBoxIterator::operator-> const):
(WebCore::InlineIterator::InlineBoxIterator::get const):
(WebCore::InlineIterator::InlineBox::iterator const):
(isType):
- rendering/InlineBoxPainter.cpp:
(WebCore::InlineBoxPainter::InlineBoxPainter):
(WebCore::clipRectForNinePieceImageStrip):
(WebCore::InlineBoxPainter::paintMask):
(WebCore::InlineBoxPainter::paintDecorations):
(WebCore::InlineBoxPainter::paintFillLayer):
(WebCore::InlineBoxPainter::paintBoxShadow):
(WebCore::InlineBoxPainter::constrainToLineTopAndBottomIfNeeded const):
- rendering/InlineBoxPainter.h:
- 9:43 AM Changeset in webkit [283553] by
-
- 2 edits2 deletes in trunk/Tools
REGRESSION (r283476): [ iOS macOS Debug ] TestWTF failures in RetainPtrARC and TypeCastsCocoaARC
<https://webkit.org/b/231172>
<rdar://problem/83836549>
Unreviewed partial revert of r283476.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- Remove RetainPtrARC.mm and TypeCastsCocoaARC.mm from the project.
- TestWebKitAPI/Tests/WTF/cocoa/TypeCastsCocoaARC.mm: Delete.
- TestWebKitAPI/Tests/WTF/ns/RetainPtrARC.mm: Delete.
- Remove these tests until issues can be fixed.
- 8:54 AM Changeset in webkit [283552] by
-
- 6 edits in trunk/Source/WebCore
Remove m_autoShrinkToFitEnabled from RuleSet
https://bugs.webkit.org/show_bug.cgi?id=231214
Reviewed by Alan Bujtas.
Make it RuleSetBuilder setting instead, enabled by default.
- style/RuleSet.h:
(WebCore::Style::RuleSet::disableAutoShrinkToFit): Deleted.
- style/RuleSetBuilder.cpp:
(WebCore::Style::RuleSetBuilder::RuleSetBuilder):
(WebCore::Style::m_shrinkToFit):
(WebCore::Style::RuleSetBuilder::~RuleSetBuilder):
(WebCore::Style::m_resolver): Deleted.
- style/RuleSetBuilder.h:
- style/StyleInvalidator.cpp:
(WebCore::Style::Invalidator::Invalidator):
Here we still want to avoid shrink-to-fit since the constructed RuleSets are temporary.
- style/StyleScopeRuleSets.cpp:
(WebCore::Style::ScopeRuleSets::ScopeRuleSets):
(WebCore::Style::ScopeRuleSets::resetAuthorStyle):
(WebCore::Style::ScopeRuleSets::appendAuthorStyleSheets):
Since RuleSetBuilder is scoped over everything we can no use it to do shrink-to-fit.
- 8:53 AM Changeset in webkit [283551] by
-
- 4 edits in trunk
Follow-up #2: WTF::RetainPtr<> allows assignment of two pointer types that are not assignable
<https://webkit.org/b/230406>
<rdar://problem/83241893>
Unreviewed attempt to fix API tests.
Source/WTF:
- wtf/cocoa/TypeCastsCocoa.h:
(WTF::checked_objc_cast):
- Rename checked_objc_cast<> to checked_objc_castARC<> when compiling with ARC enabled.
- Also mark as
inlinefunction to allow for optimization.
Tools:
- TestWebKitAPI/Tests/WTF/cocoa/TypeCastsCocoa.mm:
(TestWebKitAPI::TEST):
- Revert code back to using objectNS.get() for checked_objc_cast<> tests since it always worked.
- 8:21 AM Changeset in webkit [283550] by
-
- 145 edits in trunk
[IFC][Integration] Enable first-line style for modern line layout
https://bugs.webkit.org/show_bug.cgi?id=231178
Reviewed by Antti Koivisto.
Source/WebCore:
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForStyle):
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):
- layout/integration/LayoutIntegrationCoverage.h:
LayoutTests:
- fast/css/empty-inline-line-height-first-line-expected.txt:
- fast/css/empty-inline-line-height-first-line-quirksmode-expected.txt:
- platform/ios/editing/deleting/delete-at-paragraph-boundaries-002-expected.txt:
- platform/ios/editing/deleting/delete-at-paragraph-boundaries-003-expected.txt:
- platform/ios/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
- platform/ios/editing/deleting/delete-at-paragraph-boundaries-005-expected.txt:
- platform/ios/editing/deleting/delete-at-paragraph-boundaries-006-expected.txt:
- platform/ios/editing/deleting/delete-at-paragraph-boundaries-007-expected.txt:
- platform/ios/editing/deleting/delete-at-paragraph-boundaries-008-expected.txt:
- platform/ios/editing/deleting/delete-at-paragraph-boundaries-009-expected.txt:
- platform/ios/editing/deleting/delete-at-paragraph-boundaries-010-expected.txt:
- platform/ios/editing/deleting/delete-at-paragraph-boundaries-011-expected.txt:
- platform/ios/editing/deleting/non-smart-delete-expected.txt:
- platform/ios/editing/inserting/insert-br-quoted-001-expected.txt:
- platform/ios/editing/inserting/insert-br-quoted-002-expected.txt:
- platform/ios/editing/inserting/insert-br-quoted-003-expected.txt:
- platform/ios/editing/inserting/insert-br-quoted-004-expected.txt:
- platform/ios/editing/inserting/insert-br-quoted-005-expected.txt:
- platform/ios/editing/inserting/insert-br-quoted-006-expected.txt:
- platform/ios/editing/inserting/insert-div-026-expected.txt:
- platform/ios/editing/inserting/return-key-with-selection-001-expected.txt:
- platform/ios/editing/inserting/return-key-with-selection-002-expected.txt:
- platform/ios/editing/inserting/return-key-with-selection-003-expected.txt:
- platform/ios/editing/pasteboard/paste-4038267-fix-expected.txt:
- platform/ios/editing/pasteboard/paste-line-endings-001-expected.txt:
- platform/ios/editing/pasteboard/paste-line-endings-002-expected.txt:
- platform/ios/editing/pasteboard/paste-line-endings-003-expected.txt:
- platform/ios/editing/pasteboard/paste-line-endings-004-expected.txt:
- platform/ios/editing/pasteboard/paste-line-endings-005-expected.txt:
- platform/ios/editing/pasteboard/paste-line-endings-006-expected.txt:
- platform/ios/editing/pasteboard/paste-line-endings-007-expected.txt:
- platform/ios/editing/pasteboard/paste-line-endings-008-expected.txt:
- platform/ios/editing/pasteboard/paste-line-endings-009-expected.txt:
- platform/ios/editing/pasteboard/paste-line-endings-010-expected.txt:
- platform/ios/editing/pasteboard/paste-match-style-001-expected.txt:
- platform/ios/editing/pasteboard/paste-match-style-002-expected.txt:
- platform/ios/editing/pasteboard/paste-text-019-expected.txt:
- platform/ios/editing/style/block-styles-007-expected.txt:
- platform/ios/editing/style/style-3998892-fix-expected.txt:
- platform/ios/editing/style/style-boundary-001-expected.txt:
- platform/ios/editing/style/style-boundary-004-expected.txt:
- platform/ios/editing/unsupported-content/list-delete-003-expected.txt:
- platform/ios/editing/unsupported-content/list-type-after-expected.txt:
- platform/ios/fast/css/empty-inline-line-height-first-line-expected.txt:
- platform/ios/fast/css/empty-inline-line-height-first-line-quirksmode-expected.txt:
- platform/ios/fast/css/first-line-text-decoration-expected.txt:
- platform/ios/fast/css/first-line-text-decoration-inherited-from-parent-expected.txt:
- platform/ios/fast/text/firstline/001-expected.txt:
- platform/mac/editing/deleting/delete-at-paragraph-boundaries-002-expected.txt:
- platform/mac/editing/deleting/delete-at-paragraph-boundaries-003-expected.txt:
- platform/mac/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
- platform/mac/editing/deleting/delete-at-paragraph-boundaries-005-expected.txt:
- platform/mac/editing/deleting/delete-at-paragraph-boundaries-006-expected.txt:
- platform/mac/editing/deleting/delete-at-paragraph-boundaries-007-expected.txt:
- platform/mac/editing/deleting/delete-at-paragraph-boundaries-008-expected.txt:
- platform/mac/editing/deleting/delete-at-paragraph-boundaries-009-expected.txt:
- platform/mac/editing/deleting/delete-at-paragraph-boundaries-010-expected.txt:
- platform/mac/editing/deleting/delete-at-paragraph-boundaries-011-expected.txt:
- platform/mac/editing/deleting/non-smart-delete-expected.txt:
- platform/mac/editing/inserting/insert-br-quoted-001-expected.txt:
- platform/mac/editing/inserting/insert-br-quoted-002-expected.txt:
- platform/mac/editing/inserting/insert-br-quoted-003-expected.txt:
- platform/mac/editing/inserting/insert-br-quoted-004-expected.txt:
- platform/mac/editing/inserting/insert-br-quoted-005-expected.txt:
- platform/mac/editing/inserting/insert-br-quoted-006-expected.txt:
- platform/mac/editing/inserting/insert-div-026-expected.txt:
- platform/mac/editing/inserting/return-key-with-selection-001-expected.txt:
- platform/mac/editing/inserting/return-key-with-selection-002-expected.txt:
- platform/mac/editing/inserting/return-key-with-selection-003-expected.txt:
- platform/mac/editing/pasteboard/emacs-cntl-y-001-expected.txt:
- platform/mac/editing/pasteboard/emacs-ctrl-k-y-001-expected.txt:
- platform/mac/editing/pasteboard/paste-4038267-fix-expected.txt:
- platform/mac/editing/pasteboard/paste-line-endings-001-expected.txt:
- platform/mac/editing/pasteboard/paste-line-endings-002-expected.txt:
- platform/mac/editing/pasteboard/paste-line-endings-003-expected.txt:
- platform/mac/editing/pasteboard/paste-line-endings-004-expected.txt:
- platform/mac/editing/pasteboard/paste-line-endings-005-expected.txt:
- platform/mac/editing/pasteboard/paste-line-endings-006-expected.txt:
- platform/mac/editing/pasteboard/paste-line-endings-007-expected.txt:
- platform/mac/editing/pasteboard/paste-line-endings-008-expected.txt:
- platform/mac/editing/pasteboard/paste-line-endings-009-expected.txt:
- platform/mac/editing/pasteboard/paste-line-endings-010-expected.txt:
- platform/mac/editing/pasteboard/paste-match-style-001-expected.txt:
- platform/mac/editing/pasteboard/paste-match-style-002-expected.txt:
- platform/mac/editing/pasteboard/paste-text-019-expected.txt:
- platform/mac/editing/style/block-styles-007-expected.txt:
- platform/mac/editing/style/smoosh-styles-001-expected.txt:
- platform/mac/editing/style/smoosh-styles-003-expected.txt:
- platform/mac/editing/style/style-3998892-fix-expected.txt:
- platform/mac/editing/style/style-boundary-001-expected.txt:
- platform/mac/editing/style/style-boundary-002-expected.txt:
- platform/mac/editing/style/style-boundary-003-expected.txt:
- platform/mac/editing/style/style-boundary-004-expected.txt:
- platform/mac/editing/style/style-boundary-005-expected.txt:
- platform/mac/editing/unsupported-content/list-delete-001-expected.txt:
- platform/mac/editing/unsupported-content/list-delete-003-expected.txt:
- platform/mac/editing/unsupported-content/list-type-after-expected.txt:
- platform/mac/editing/unsupported-content/list-type-before-expected.txt:
- platform/mac/editing/unsupported-content/table-delete-002-expected.txt:
- platform/mac/editing/unsupported-content/table-type-after-expected.txt:
- platform/mac/editing/unsupported-content/table-type-before-expected.txt:
- platform/mac/fast/css/first-line-text-decoration-expected.txt:
- platform/mac/fast/css/first-line-text-decoration-inherited-from-parent-expected.txt:
- platform/mac/fast/text/firstline/001-expected.txt:
- platform/win/editing/deleting/delete-at-paragraph-boundaries-002-expected.txt:
- platform/win/editing/deleting/delete-at-paragraph-boundaries-003-expected.txt:
- platform/win/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
- platform/win/editing/deleting/delete-at-paragraph-boundaries-005-expected.txt:
- platform/win/editing/deleting/delete-at-paragraph-boundaries-006-expected.txt:
- platform/win/editing/deleting/delete-at-paragraph-boundaries-007-expected.txt:
- platform/win/editing/deleting/delete-at-paragraph-boundaries-008-expected.txt:
- platform/win/editing/deleting/delete-at-paragraph-boundaries-009-expected.txt:
- platform/win/editing/deleting/delete-at-paragraph-boundaries-010-expected.txt:
- platform/win/editing/deleting/delete-at-paragraph-boundaries-011-expected.txt:
- platform/win/editing/deleting/non-smart-delete-expected.txt:
- platform/win/editing/inserting/insert-br-quoted-001-expected.txt:
- platform/win/editing/inserting/insert-br-quoted-002-expected.txt:
- platform/win/editing/inserting/insert-br-quoted-003-expected.txt:
- platform/win/editing/inserting/insert-br-quoted-004-expected.txt:
- platform/win/editing/inserting/insert-br-quoted-005-expected.txt:
- platform/win/editing/inserting/insert-br-quoted-006-expected.txt:
- platform/win/editing/inserting/insert-div-026-expected.txt:
- platform/win/editing/inserting/return-key-with-selection-001-expected.txt:
- platform/win/editing/inserting/return-key-with-selection-002-expected.txt:
- platform/win/editing/inserting/return-key-with-selection-003-expected.txt:
- platform/win/editing/style/block-styles-007-expected.txt:
- platform/win/editing/style/smoosh-styles-001-expected.txt:
- platform/win/editing/style/smoosh-styles-003-expected.txt:
- platform/win/editing/style/style-3998892-fix-expected.txt:
- platform/win/editing/style/style-boundary-001-expected.txt:
- platform/win/editing/style/style-boundary-002-expected.txt:
- platform/win/editing/style/style-boundary-003-expected.txt:
- platform/win/editing/style/style-boundary-004-expected.txt:
- platform/win/editing/style/style-boundary-005-expected.txt:
- platform/win/editing/unsupported-content/list-delete-001-expected.txt:
- platform/win/editing/unsupported-content/list-delete-003-expected.txt:
- platform/win/editing/unsupported-content/list-type-after-expected.txt:
- platform/win/editing/unsupported-content/list-type-before-expected.txt:
- platform/win/editing/unsupported-content/table-delete-002-expected.txt:
- platform/win/editing/unsupported-content/table-type-after-expected.txt:
- platform/win/editing/unsupported-content/table-type-before-expected.txt:
- 7:49 AM Changeset in webkit [283549] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Move tryBreaking*Run logic to standalone functions
https://bugs.webkit.org/show_bug.cgi?id=231198
Reviewed by Antti Koivisto.
InlineContentBreaker::processOverflowingContentWithText is getting way to long and while I love keeping logic like this local, the upcoming WordBreak::BreakWord functionality
makes this function body overlap multiple pages.
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::findTrailingRunIndex):
(WebCore::Layout::isWrappableRun):
(WebCore::Layout::InlineContentBreaker::tryBreakingOverflowingRun const):
(WebCore::Layout::InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns const):
(WebCore::Layout::InlineContentBreaker::tryBreakingNextOverflowingRuns const):
(WebCore::Layout::InlineContentBreaker::processOverflowingContentWithText const):
(): Deleted.
- layout/formattingContexts/inline/InlineContentBreaker.h:
- 6:57 AM Changeset in webkit [283548] by
-
- 15 edits2 deletes in trunk/Source/WebCore
[GTK][WPE] REGRESSION: Async scrolling jumps to the top of the page until keyboard-initiated paging
https://bugs.webkit.org/show_bug.cgi?id=230953
Reviewed by Martin Robinson.
Update the non-Mac/iOS async scrolling path to work correctly after the
scrolling refactor. Trying to summarise, this implements
ScrollingEffectsController in ScrollingTreeScrollingNodeDelegateNicosia
and moves smooth and kinetic scrolling animations to
ScrollingEffectsController, to be shared by both sync and async paths.
No new tests, covered by existing tests (hopefully).
- PlatformPlayStation.cmake:
- SourcesGTK.txt:
- SourcesWPE.txt:
- page/scrolling/ScrollingTreeScrollingNode.h:
- page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateAfterChildren):
- page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::commitStateAfterChildren):
- page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.cpp:
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::ScrollingTreeScrollingNodeDelegateNicosia):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::updateFromStateNode):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::updateVisibleLengths):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::handleWheelEvent):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::stopScrollAnimations):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::animationTimerFired):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::createTimer):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::startAnimationCallback):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::stopAnimationCallback):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::allowsHorizontalScrolling const):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::allowsVerticalScrolling const):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::immediateScrollBy):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::adjustScrollPositionToBoundsIfNecessary):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::scrollOffset const):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::willStartScrollSnapAnimation):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::didStopScrollSnapAnimation):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::pageScaleFactor const):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::scrollExtents const):
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::resetCurrentPosition): Deleted.
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::ensureScrollAnimationKinetic): Deleted.
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::ensureScrollAnimationSmooth): Deleted.
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::pageScaleFactor): Deleted.
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::scrollAnimationDidUpdate): Deleted.
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::scrollAnimationDidEnd): Deleted.
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::scrollExtentsForAnimation): Deleted.
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::startTimerIfNecessary): Deleted.
- page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.h:
- platform/ScrollAnimationKinetic.h:
- platform/ScrollAnimationSmooth.h:
- platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::retargetRunningAnimation):
(WebCore::ScrollAnimator::handleWheelEvent):
(WebCore::ScrollAnimator::scrollAnimationEnabled const):
- platform/ScrollAnimator.h:
- platform/ScrollingEffectsController.cpp:
(WebCore::ScrollingEffectsController::retargetAnimatedScroll):
(WebCore::ScrollingEffectsController::processWheelEventForKineticScrolling):
(WebCore::ScrollingEffectsController::handleWheelEvent):
(WebCore::ScrollingEffectsController::regargetAnimatedScroll): Deleted.
- platform/ScrollingEffectsController.h:
(WebCore::ScrollingEffectsControllerClient::scrollAnimationEnabled const):
- platform/generic/ScrollAnimatorGeneric.cpp: Removed.
(WebCore::ScrollAnimator::create): Deleted.
(WebCore::ScrollAnimatorGeneric::ScrollAnimatorGeneric): Deleted.
(WebCore::ScrollAnimatorGeneric::handleWheelEvent): Deleted.
- platform/generic/ScrollAnimatorGeneric.h: Removed.
(): Deleted.
- 6:54 AM Changeset in webkit [283547] by
-
- 15 edits in trunk/Source/WebCore
[LFC][Integration] Split BoxIterator into a base class and LeafBoxIterator
https://bugs.webkit.org/show_bug.cgi?id=231229
Reviewed by Alan Bujtas.
LeafBoxIterator contains function for traversing non-inline boxes.
BoxIterator becomes a non-instantiated base class.
This is in preparation for adding InlineBoxIterator.
- dom/Position.cpp:
(WebCore::Position::inlineRunAndOffset const):
- editing/InlineRunAndOffset.h:
- editing/RenderedPosition.cpp:
(WebCore::RenderedPosition::RenderedPosition):
(WebCore::RenderedPosition::previousLeafOnLine const):
(WebCore::RenderedPosition::nextLeafOnLine const):
- editing/RenderedPosition.h:
- editing/VisibleUnits.cpp:
(WebCore::isTextOrLineBreakRun):
(WebCore::previousTextOrLineBreakRun):
(WebCore::nextTextOrLineBreakRun):
(WebCore::startTextOrLineBreakRun):
(WebCore::endTextOrLineBreakRun):
(WebCore::logicallyPreviousRun):
(WebCore::logicallyNextRun):
(WebCore::visualWordPosition):
- layout/integration/InlineIteratorBox.cpp:
(WebCore::InlineIterator::Box::nextOnLine const):
(WebCore::InlineIterator::Box::previousOnLine const):
(WebCore::InlineIterator::Box::nextOnLineIgnoringLineBreak const):
(WebCore::InlineIterator::Box::previousOnLineIgnoringLineBreak const):
(WebCore::InlineIterator::LeafBoxIterator::LeafBoxIterator):
(WebCore::InlineIterator::LeafBoxIterator::traverseNextOnLine):
(WebCore::InlineIterator::LeafBoxIterator::traversePreviousOnLine):
(WebCore::InlineIterator::LeafBoxIterator::traverseNextOnLineIgnoringLineBreak):
(WebCore::InlineIterator::LeafBoxIterator::traversePreviousOnLineIgnoringLineBreak):
(WebCore::InlineIterator::LeafBoxIterator::traverseNextOnLineInLogicalOrder):
(WebCore::InlineIterator::LeafBoxIterator::traversePreviousOnLineInLogicalOrder):
(WebCore::InlineIterator::boxFor):
(WebCore::InlineIterator::BoxIterator::traverseNextOnLine): Deleted.
(WebCore::InlineIterator::BoxIterator::traversePreviousOnLine): Deleted.
(WebCore::InlineIterator::BoxIterator::traverseNextOnLineIgnoringLineBreak): Deleted.
(WebCore::InlineIterator::BoxIterator::traversePreviousOnLineIgnoringLineBreak): Deleted.
(WebCore::InlineIterator::BoxIterator::traverseNextOnLineInLogicalOrder): Deleted.
(WebCore::InlineIterator::BoxIterator::traversePreviousOnLineInLogicalOrder): Deleted.
- layout/integration/InlineIteratorBox.h:
(WebCore::InlineIterator::BoxIterator::BoxIterator):
- layout/integration/InlineIteratorLine.cpp:
(WebCore::InlineIterator::Line::firstRun const):
(WebCore::InlineIterator::Line::lastRun const):
(WebCore::InlineIterator::Line::logicalStartRun const):
(WebCore::InlineIterator::Line::logicalEndRun const):
(WebCore::InlineIterator::Line::logicalStartRunWithNode const):
(WebCore::InlineIterator::Line::logicalEndRunWithNode const):
(WebCore::InlineIterator::Line::closestRunForPoint const):
(WebCore::InlineIterator::Line::closestRunForLogicalLeftPosition const):
(WebCore::InlineIterator::Line::firstSelectedBox const):
(WebCore::InlineIterator::Line::lastSelectedBox const):
- layout/integration/InlineIteratorLine.h:
- layout/integration/InlineIteratorTextBox.cpp:
(WebCore::InlineIterator::TextBoxIterator::TextBoxIterator):
- layout/integration/InlineIteratorTextBox.h:
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::boxFor const):
- layout/integration/LayoutIntegrationLineLayout.h:
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
- 5:10 AM Changeset in webkit [283546] by
-
- 5 edits1 delete in trunk
[css-position-sticky] scrollIntoView should not take into account sticky positioning offsets
https://bugs.webkit.org/show_bug.cgi?id=230689
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-position/sticky/position-sticky-scrollIntoView-expected.txt: Update results to show newly
passing test.
Source/WebCore:
When calculating the location for absolute anchors rectangles,
do not take into account sticky offsets. This means that when
scrolling to elements that are stickily positioned, their static
positions will be targeted.
No new tests. This is covered by an existing WPT test.
- rendering/RenderElement.cpp:
(WebCore::RenderElement::getLeadingCorner const): Do not take into account sticky position when calculating this point.
(WebCore::RenderElement::getTrailingCorner const): Ditto.
LayoutTests:
- platform/ios-wk2/imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-scrollIntoView-expected.txt: Removed.
- 4:48 AM Changeset in webkit [283545] by
-
- 7 edits in trunk/LayoutTests
Removing no longer needed flaky expectations from WebRTC tests
https://bugs.webkit.org/show_bug.cgi?id=231223
Unreviewed.
Update expectations based on results.webkit.org results.
- TestExpectations:
- platform/ios-simulator-wk2/TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 3:59 AM Changeset in webkit [283544] by
-
- 5 edits in trunk/Source/WebCore
Replace document.topDocument().securityOrigin() with document.topOrigin()
https://bugs.webkit.org/show_bug.cgi?id=231221
Reviewed by Youenn Fablet.
No behaviour change, Document::topOrigin() is defined as:
SecurityOrigin& topOrigin() const final { return topDocument().securityOrigin(); }
- dom/BroadcastChannel.cpp:
(WebCore::shouldPartitionOrigin):
- dom/DocumentStorageAccess.cpp:
(WebCore::DocumentStorageAccess::hasStorageAccessQuickCheck):
(WebCore::DocumentStorageAccess::hasStorageAccess):
(WebCore::DocumentStorageAccess::requestStorageAccessQuickCheck):
(WebCore::DocumentStorageAccess::requestStorageAccess):
- dom/Element.cpp:
(WebCore::Element::focus):
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
- 2:54 AM Changeset in webkit [283543] by
-
- 3 edits in trunk/Source/WebCore
Clean up shouldAutofocus in HTMLFormControlElement.cpp
https://bugs.webkit.org/show_bug.cgi?id=231220
Reviewed by Youenn Fablet.
No behaviour change.
Minor cleanups:
- Make shouldAutofocus take
const HTMLFormControlElement&instead ofHTMLFormControlElement* - Clean up repeated calls to element->document()
- Use topOrigin() instead topDocument().securityOrigin() (same thing, but shorter)
- html/HTMLFormControlElement.cpp:
(WebCore::shouldAutofocus):
(WebCore::HTMLFormControlElement::didAttachRenderers):
- html/HTMLFormControlElement.h:
(WebCore::HTMLFormControlElement::hasAutofocused const):
(WebCore::HTMLFormControlElement::hasAutofocused): Deleted.
- 1:36 AM Changeset in webkit [283542] by
-
- 4 edits in trunk/LayoutTests
Remove unnecessary autofocus attribute dependencies in tests
https://bugs.webkit.org/show_bug.cgi?id=231219
Reviewed by Antti Koivisto.
The new autofocus behaviour timing happens asynchronously with the page "update rendering" steps.
Some tests are using it solely to focus synchronously on elements. We should just use HTMLElement.focus()
there so they don't rely on the current synchronous timing of autofocus.
- fast/forms/number/number-placeholder-with-unacceptable-value-expected.html:
- fast/forms/number/number-placeholder-with-unacceptable-value.html:
- fast/forms/range/range-type-change-onchange.html:
- 12:20 AM Changeset in webkit [283541] by
-
- 2 edits in trunk/Source/WTF
Enable 2D canvas color space support on Apple platforms
https://bugs.webkit.org/show_bug.cgi?id=231145
<rdar://82948394>
Reviewed by Simon Fraser.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 12:08 AM Changeset in webkit [283540] by
-
- 2 edits in trunk/Source/WebCore
Negative integers in @font-palette-values are invalid
https://bugs.webkit.org/show_bug.cgi?id=230788
<rdar://problem/83528806>
Unreviewed post-review cleanup.
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeFontPaletteValuesRule):
- 12:04 AM Changeset in webkit [283539] by
-
- 5 edits in trunk/LayoutTests/imported/w3c
Test a font palette identifier of just "--"
https://bugs.webkit.org/show_bug.cgi?id=230975
<rdar://problem/83681811>
Reviewed by Tim Horton.
It's a valid <dashed-ident>:
"The <dashed-ident> production is a <custom-ident>, with all the case-sensitivity
that implies, with the additional restriction that it must start with two dashes
(U+002D HYPHEN-MINUS)."
This is being upstreamed at https://github.com/web-platform-tests/wpt/pull/30963.
- web-platform-tests/css/css-fonts/parsing/font-palette-valid-expected.txt:
- web-platform-tests/css/css-fonts/parsing/font-palette-valid.html:
- web-platform-tests/css/css-fonts/parsing/font-palette-values-valid-expected.txt:
- web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html:
Oct 4, 2021:
- 11:45 PM Changeset in webkit [283538] by
-
- 2 edits in trunk/LayoutTests
Update ios-wk2 test expectations for select-validity.html WPT
https://bugs.webkit.org/show_bug.cgi?id=231217
Unreviewed test gardening.
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/select-validity-expected.txt:
- 10:10 PM Changeset in webkit [283537] by
-
- 14 edits in trunk
Stop parsing context-sensitive colors in override-color
https://bugs.webkit.org/show_bug.cgi?id=231052
<rdar://problem/83746258>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
These are being upstreamed in https://github.com/web-platform-tests/wpt/pull/31078.
- web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid-expected.txt:
- web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html:
- web-platform-tests/css/css-fonts/parsing/font-palette-values-valid-expected.txt:
- web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html:
Source/WebCore:
The spec has split the <color> production into two halves:
absolute colors and non-absolute colors. This patch adds a new
enum argument to consumeColor() to distinguish which production
you want.
Tests: imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-invalid.html
imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html
- css/StyleColor.cpp:
(WebCore::StyleColor::colorFromKeyword):
(WebCore::isVGAPaletteColor):
(WebCore::isNonVGANamedColor):
(WebCore::StyleColor::isAbsoluteColorKeyword):
(WebCore::StyleColor::isSystemColorKeyword):
(WebCore::StyleColor::isColorKeyword):
(WebCore::StyleColor::isSystemColor): Deleted.
- css/StyleColor.h:
(WebCore::StyleColor::isColorKeyword):
- css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseSystemColor):
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeOverrideColorsDescriptor):
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeOriginColor):
(WebCore::CSSPropertyParserHelpers::consumeColorWorkerSafe):
(WebCore::CSSPropertyParserHelpers::consumeColor):
- css/parser/CSSPropertyParserHelpers.h:
(WebCore::CSSPropertyParserHelpers::consumeColor):
- platform/ColorData.gperf:
- testing/Internals.cpp:
(WebCore::Internals::systemColorForCSSValue):
- 8:52 PM Changeset in webkit [283536] by
-
- 13 edits in trunk
Remove the "none" value from font-palette
https://bugs.webkit.org/show_bug.cgi?id=231050
<rdar://problem/83745650>
Reviewed by Wenson Hsieh.
LayoutTests/imported/w3c:
This is being upstreamed at https://github.com/web-platform-tests/wpt/pull/31077.
- web-platform-tests/css/css-fonts/parsing/font-palette-invalid.html:
- web-platform-tests/css/css-fonts/parsing/font-palette-valid.html:
Source/WebCore:
The spec changed in
https://github.com/w3c/csswg-drafts/commit/b7103b0269cde51914af02f5ca1e5582d44e7b70.
Luckily, we never implemented this anyway, so this is just a parsing change.
Tests: imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-invalid.html
imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-valid.html
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::fontPaletteFromStyle):
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeFontPalette):
- platform/graphics/FontPalette.h:
(WebCore::operator<<):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::addAttributesForFontPalettes):
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertFontPalette):
- 8:39 PM Changeset in webkit [283535] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Disable simplified text measuring codepath when first style line has related unique values
https://bugs.webkit.org/show_bug.cgi?id=231177
Reviewed by Antti Koivisto.
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::inlineItemWidth const):
- layout/integration/LayoutIntegrationBoxTree.cpp:
- rendering/RenderText.cpp:
(WebCore::RenderText::computeCanUseSimplifiedTextMeasuring const):
- 8:37 PM Changeset in webkit [283534] by
-
- 91 edits2 moves in trunk/LayoutTests/imported/w3c
Test gardening for font-palette WPT tests
https://bugs.webkit.org/show_bug.cgi?id=231208
Unreviewed.
Update the WPT tests according to
https://github.com/web-platform-tests/wpt/pull/31044.
- web-platform-tests/css/css-fonts/animations/font-palette-animation-2-expected.html:
- web-platform-tests/css/css-fonts/animations/font-palette-animation-2.html:
- web-platform-tests/css/css-fonts/animations/font-palette-animation-3-expected-mismatch.html:
- web-platform-tests/css/css-fonts/animations/font-palette-animation-3.html:
- web-platform-tests/css/css-fonts/animations/font-palette-animation-expected.html:
- web-platform-tests/css/css-fonts/animations/font-palette-animation.html:
- web-platform-tests/css/css-fonts/font-palette-10-expected.html:
- web-platform-tests/css/css-fonts/font-palette-10.html:
- web-platform-tests/css/css-fonts/font-palette-11-expected.html:
- web-platform-tests/css/css-fonts/font-palette-11.html:
- web-platform-tests/css/css-fonts/font-palette-12-expected.html:
- web-platform-tests/css/css-fonts/font-palette-12.html:
- web-platform-tests/css/css-fonts/font-palette-13-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-13.html:
- web-platform-tests/css/css-fonts/font-palette-14-expected.html:
- web-platform-tests/css/css-fonts/font-palette-14.html:
- web-platform-tests/css/css-fonts/font-palette-15-expected.html:
- web-platform-tests/css/css-fonts/font-palette-15.html:
- web-platform-tests/css/css-fonts/font-palette-16-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-16.html:
- web-platform-tests/css/css-fonts/font-palette-17-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-17.html:
- web-platform-tests/css/css-fonts/font-palette-18-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-18.html:
- web-platform-tests/css/css-fonts/font-palette-19-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-19.html:
- web-platform-tests/css/css-fonts/font-palette-2-expected.html:
- web-platform-tests/css/css-fonts/font-palette-2.html:
- web-platform-tests/css/css-fonts/font-palette-20-expected.html:
- web-platform-tests/css/css-fonts/font-palette-20.html:
- web-platform-tests/css/css-fonts/font-palette-21-expected.html:
- web-platform-tests/css/css-fonts/font-palette-21.html:
- web-platform-tests/css/css-fonts/font-palette-22-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-22.html:
- web-platform-tests/css/css-fonts/font-palette-23-expected.html:
- web-platform-tests/css/css-fonts/font-palette-23.html:
- web-platform-tests/css/css-fonts/font-palette-24-expected.html:
- web-platform-tests/css/css-fonts/font-palette-24.html:
- web-platform-tests/css/css-fonts/font-palette-25-expected.html:
- web-platform-tests/css/css-fonts/font-palette-25.html:
- web-platform-tests/css/css-fonts/font-palette-26-expected.html:
- web-platform-tests/css/css-fonts/font-palette-26.html:
- web-platform-tests/css/css-fonts/font-palette-27-expected.html:
- web-platform-tests/css/css-fonts/font-palette-27.html:
- web-platform-tests/css/css-fonts/font-palette-28-expected.html:
- web-platform-tests/css/css-fonts/font-palette-28.html:
- web-platform-tests/css/css-fonts/font-palette-29-expected.html:
- web-platform-tests/css/css-fonts/font-palette-29.html:
- web-platform-tests/css/css-fonts/font-palette-3-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-3.html:
- web-platform-tests/css/css-fonts/font-palette-30-expected.html:
- web-platform-tests/css/css-fonts/font-palette-30.html:
- web-platform-tests/css/css-fonts/font-palette-31-expected.html:
- web-platform-tests/css/css-fonts/font-palette-31.html:
- web-platform-tests/css/css-fonts/font-palette-4-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-4.html:
- web-platform-tests/css/css-fonts/font-palette-5-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-5.html:
- web-platform-tests/css/css-fonts/font-palette-6-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-6.html:
- web-platform-tests/css/css-fonts/font-palette-7-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-7.html:
- web-platform-tests/css/css-fonts/font-palette-8-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-8.html:
- web-platform-tests/css/css-fonts/font-palette-9-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-9.html:
- web-platform-tests/css/css-fonts/font-palette-add-2-expected.html:
- web-platform-tests/css/css-fonts/font-palette-add-2.html:
- web-platform-tests/css/css-fonts/font-palette-add-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-add.html:
- web-platform-tests/css/css-fonts/font-palette-empty-font-family-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-empty-font-family.html:
- web-platform-tests/css/css-fonts/font-palette-expected.html:
- web-platform-tests/css/css-fonts/font-palette-modify-2-expected.html:
- web-platform-tests/css/css-fonts/font-palette-modify-2.html:
- web-platform-tests/css/css-fonts/font-palette-modify-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-modify.html:
- web-platform-tests/css/css-fonts/font-palette-remove-2-expected.html:
- web-platform-tests/css/css-fonts/font-palette-remove-2.html:
- web-platform-tests/css/css-fonts/font-palette-remove-expected-mismatch.html:
- web-platform-tests/css/css-fonts/font-palette-remove.html:
- web-platform-tests/css/css-fonts/font-palette.html:
- web-platform-tests/css/css-fonts/palette-values-rule-add-2-expected.html:
- web-platform-tests/css/css-fonts/palette-values-rule-add-2.html:
- web-platform-tests/css/css-fonts/palette-values-rule-add-expected-mismatch.html:
- web-platform-tests/css/css-fonts/palette-values-rule-add.html:
- web-platform-tests/css/css-fonts/palette-values-rule-delete-2-expected.html:
- web-platform-tests/css/css-fonts/palette-values-rule-delete-2.html:
- web-platform-tests/css/css-fonts/palette-values-rule-delete-expected-mismatch.html:
- web-platform-tests/css/css-fonts/palette-values-rule-delete.html:
- web-platform-tests/css/css-fonts/resources/COLR-palettes-test-font-no-light-dark.ttf: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/resources/Ahem-COLR-palettes-no-light-dark.ttf.
- web-platform-tests/css/css-fonts/resources/COLR-palettes-test-font.ttf: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/resources/Ahem-COLR-palettes.ttf.
- 7:52 PM Changeset in webkit [283533] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Hyphenation should not be applied with 'word-break: break-all'
https://bugs.webkit.org/show_bug.cgi?id=231189
Reviewed by Antti Koivisto.
"break-all: Breaking is allowed within “words”: specifically...Hyphenation is not applied."
https://drafts.csswg.org/css-text-3/#word-break-property.
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::wordBreakBehavior const):
- 7:34 PM Changeset in webkit [283532] by
-
- 1 copy in tags/Safari-613.1.3.1
Tag Safari-613.1.3.1.
- 7:32 PM Changeset in webkit [283531] by
-
- 19 edits2 moves4 adds in trunk
Choose an appropriate color space when converting an SVG image into a NativeImage for canvas drawImage
https://bugs.webkit.org/show_bug.cgi?id=231062
<rdar://problem/83752451>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
Add a test for drawImage() with an SVG image that has sRGB and Display
P3 colors.
Not adding tests for patterns pointing to SVG images for now, since
WebKit currently always taints the canvas in that case, or for
ImageBitmaps wrapping SVG images, since we always flatten them to sRGB
(and we don't track what content is inside the SVG to make a better
decision about what color space ImageBuffer to use).
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.https-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-expected.txt.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.html.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3.js:
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-0.7333-0-0.svg: Added.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-1-0-0.svg: Added.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BB0000.svg: Added.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FF0000.svg: Added.
Source/WebCore:
When GPUP canvas is enabled, drawImage() with an SVG image is handled
by drawing into a NativeImage and then sending that to the GPUP. We
need to choose a color space for the NativeImage's ImageBuffer that
matches the canvas.
Once full SVG rendering is supported by the GPU process, we can undo
this code, as we'll no longer be using a NativeImage.
Test: imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.https.html
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::drawImageToContext):
(WebCore::CanvasRenderingContext2DBase::fullCanvasCompositedDrawImage):
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImageForCanvas):
- platform/graphics/GraphicsContext.h:
- platform/graphics/Image.cpp:
(WebCore::Image::drawForCanvas):
- platform/graphics/Image.h:
- platform/graphics/MediaPlayer.h:
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawForCanvasForContainer):
(WebCore::SVGImage::drawForContainer):
(WebCore::SVGImage::drawForContainerInternal):
(WebCore::SVGImage::nativeImage):
(WebCore::SVGImage::drawForCanvas):
(WebCore::SVGImage::draw):
(WebCore::SVGImage::drawInternal):
(WebCore::SVGImage::drawAsNativeImage):
- svg/graphics/SVGImage.h:
- svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::drawForCanvas):
- svg/graphics/SVGImageForContainer.h:
LayoutTests:
- TestExpectations:
- platform/ios-14/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- 7:32 PM Changeset in webkit [283530] by
-
- 8 edits in branches/safari-613.1.3-branch/Source
Versioning.
WebKit-7613.1.3.1
- 6:22 PM Changeset in webkit [283529] by
-
- 2 edits in trunk/LayoutTests
Update test expectations for canvas color space tests in simulator
https://bugs.webkit.org/show_bug.cgi?id=231204
<rdar://problem/83865405>
Unreviewed test gardening.
- platform/ios-simulator/TestExpectations:
- 5:52 PM Changeset in webkit [283528] by
-
- 2 edits in trunk/Tools
[ews-build.webkit.org] check-patch-relevance can get stuck
https://bugs.webkit.org/show_bug.cgi?id=231190
<rdar://problem/77327168>
Reviewed by Alexey Proskuryakov.
- CISupport/ews-build/steps.py:
(CheckPatchRelevance): Compute all regexes in advance.
(CheckPatchRelevance._patch_is_relevant): Rely on pre-computed regexes,
limit the number of characters to check in a line to 250 and include a
hard-timeout so that a patch can never get EWS stuck.
- 5:33 PM Changeset in webkit [283527] by
-
- 4 edits in trunk/Source/JavaScriptCore
Display return values in nicer way in the jsc REPL and add a prettyPrint function
https://bugs.webkit.org/show_bug.cgi?id=230931
<rdar://problem/83698777>
Reviewed by Tadeu Zagallo.
Currently, print(1), print("1"), and print([1]) all print to stdout
simply as "1" (without the quotes). Same for values when running the
REPL. This isn't super helpful. Let's print quotes for strings, and
brackets for arrays. This patch adds a prettyPrint function to do
that, since we have a lot of tests that depend on the old print behavior.
This patch also makes values printed in the REPL the new pretty style.
- jsc.cpp:
(toCString):
(printInternal):
(JSC_DEFINE_HOST_FUNCTION):
(runInteractive):
(cStringFromViewWithString): Deleted.
- runtime/JSCJSValue.cpp:
(JSC::JSValue::toWTFStringForConsole const):
- runtime/JSCJSValue.h:
- 4:50 PM Changeset in webkit [283526] by
-
- 10 edits in trunk/Source/WebCore
[Build-time perf] Forward-declare more things in ScriptExecutionContext.h
https://bugs.webkit.org/show_bug.cgi?id=231182
Reviewed by Tim Horton.
Forward declare, rather than include, more classes and enums in ScriptExecutionContext.h.
Any inline definition in the style of
RefPtr<Type> type() { return nullptr; }will cause a compilation
error if the Type is not fully defined, so these definitions should be moved the the .cpp file.
Removing all the #includes and replacing them with forward-declarations causes downstream failures,
so add more forward-declarations and move definitions to the implementation file wherever possible.
- Modules/permissions/Permissions.cpp:
- Modules/permissions/Permissions.h:
- Modules/storage/DummyStorageProvider.h:
- dom/Document.cpp:
- dom/Document.h:
- dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::permissionController):
(WebCore::ScriptExecutionContext::createRTCDataChannelRemoteHandlerConnection):
- dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::permissionController): Deleted.
(WebCore::ScriptExecutionContext::createRTCDataChannelRemoteHandlerConnection): Deleted.
- workers/WorkerLoaderProxy.h:
- workers/WorkerGlobalScope.h:
- 4:44 PM Changeset in webkit [283525] by
-
- 18 edits15 adds8 deletes in trunk/LayoutTests
Re-import html/semantics/forms/ WPT
https://bugs.webkit.org/show_bug.cgi?id=231168
Reviewed by Youenn Fablet.
https://github.com/web-platform-tests/wpt/commit/dc29fc4ff101c1c216494a88a1f8a31a0f21d0aa
LayoutTests/imported/w3c:
- resources/import-expectations.json:
- resources/resource-files.json:
- web-platform-tests/html/semantics/forms/autofocus/autofocus-on-stable-document-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/autofocus/autofocus-on-stable-document.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/first-reconnected-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/autofocus/first-reconnected.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/first-when-later-but-before-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/autofocus/first-when-later-but-before.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/first-when-later-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/autofocus/first-when-later.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/first-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/autofocus/first.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/focusable-area-in-top-document-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/autofocus/focusable-area-in-top-document.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/no-cross-origin-autofocus-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/autofocus/no-cross-origin-autofocus.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/no-sandboxed-automatic-features-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/autofocus/no-sandboxed-automatic-features.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/not-on-first-task-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/autofocus/not-on-first-task.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/queue-non-focusable-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/autofocus/queue-non-focusable.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/resources/child-autofocus.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/resources/erase-first.css: Removed.
- web-platform-tests/html/semantics/forms/autofocus/resources/frame-with-autofocus-element.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/resources/moving-autofocus-to-parent.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/resources/utils.js: Removed.
- web-platform-tests/html/semantics/forms/autofocus/resources/w3c-import.log: Removed.
- web-platform-tests/html/semantics/forms/autofocus/skip-another-top-level-browsing-context-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/autofocus/skip-another-top-level-browsing-context.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/skip-document-with-fragment-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/autofocus/skip-document-with-fragment.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/skip-non-focusable-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/autofocus/skip-non-focusable.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/skip-not-fully-active-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/autofocus/skip-not-fully-active.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/spin-by-blocking-style-sheet-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/autofocus/spin-by-blocking-style-sheet.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/supported-elements-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/autofocus/supported-elements.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/update-the-rendering-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/autofocus/update-the-rendering.html: Removed.
- web-platform-tests/html/semantics/forms/autofocus/w3c-import.log: Removed.
- web-platform-tests/html/semantics/forms/introduction-1/contains.json: Removed.
- web-platform-tests/html/semantics/forms/introduction-1/w3c-import.log: Removed.
- web-platform-tests/html/semantics/forms/textfieldselection/select-event-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/textfieldselection/select-event.html: Removed.
- web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setRangeText-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setRangeText.html: Removed.
- web-platform-tests/html/semantics/forms/textfieldselection/w3c-import.log:
- web-platform-tests/html/semantics/forms/the-button-element/w3c-import.log:
- web-platform-tests/html/semantics/forms/the-button-element/active-onblur-expected.txt: Added.
- web-platform-tests/html/semantics/forms/the-button-element/active-onblur.html: Added.
- web-platform-tests/html/semantics/forms/the-button-element/button-submit-remove-jssubmit-expected.txt: Added.
- web-platform-tests/html/semantics/forms/the-button-element/button-submit-remove-jssubmit.html: Added.
- web-platform-tests/html/semantics/forms/the-form-element/form-requestsubmit-autofocus-expected.txt: Removed.
- web-platform-tests/html/semantics/forms/the-form-element/form-requestsubmit-autofocus.html: Removed.
- web-platform-tests/html/semantics/forms/the-input-element/w3c-import.log:
- web-platform-tests/html/semantics/forms/the-input-element/input-submit-remove-jssubmit-expected.txt: Added.
- web-platform-tests/html/semantics/forms/the-input-element/input-submit-remove-jssubmit.html: Added.
- web-platform-tests/html/semantics/forms/the-option-element/dynamic-content-change-rendering.html:
- web-platform-tests/html/semantics/forms/the-select-element/select-validity-expected.txt:
- web-platform-tests/html/semantics/forms/the-select-element/select-validity.html:
- web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-keyboard.tentative-expected.txt: Added.
- web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-keyboard.tentative.html: Added.
- web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-nested.tentative-expected.txt: Added.
- web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-nested.tentative.html: Added.
- web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-shadow-root-replacement.tentative-expected.txt: Added.
- web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-shadow-root-replacement.tentative.html: Added.
- web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-parts-structure.tentative-expected.txt:
- web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-parts-structure.tentative.html:
- web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-popup.tentative-expected.txt:
- web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-popup.tentative.html:
- web-platform-tests/html/semantics/forms/the-selectmenu-element/w3c-import.log:
- web-platform-tests/html/semantics/forms/the-textarea-element/w3c-import.log:
- web-platform-tests/html/semantics/forms/the-textarea-element/placeholder-white-space-notref.html: Added.
- web-platform-tests/html/semantics/forms/the-textarea-element/placeholder-white-space.tentative-expected.html: Added.
- web-platform-tests/html/semantics/forms/the-textarea-element/placeholder-white-space.tentative.html: Added.
LayoutTests:
- TestExpectations:
- tests-options.json:
- 4:37 PM Changeset in webkit [283524] by
-
- 16 edits in trunk/Source/WebCore
Use ScrollClamping in more places in scrolling code
https://bugs.webkit.org/show_bug.cgi?id=231140
Reviewed by Antti Koivisto.
Fold together two functions in ScrollingEffectsControllerClient with a ScrollClamping argument.
Also use ScrollClamping to replace bool constrainsScrollingToContentEdge() on ScrollableArea.
It's slightly annoying that ScrollClamping is a ScrollableArea state, but RenderMarquee has
no clamping by default.
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:
(WebCore::ScrollingTreeScrollingNodeDelegateMac::immediateScrollBy):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::immediateScrollByWithoutContentEdgeConstraints): Deleted.
- platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::adjustScrollPositionToBoundsIfNecessary):
(WebCore::ScrollAnimator::adjustScrollPositionIfNecessary const):
(WebCore::ScrollAnimator::immediateScrollBy):
(WebCore::ScrollAnimator::immediateScrollByWithoutContentEdgeConstraints): Deleted.
- platform/ScrollAnimator.h:
- platform/ScrollView.cpp:
(WebCore::ScrollView::adjustScrollPositionWithinRange const):
(WebCore::ScrollView::setScrollOffset):
- platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::ScrollableArea): Deleted.
- platform/ScrollableArea.h: Undo the use of bitfields here because the memory saving
is not worth the code complexity.
(WebCore::ScrollableArea::currentScrollBehaviorStatus):
(WebCore::ScrollableArea::setScrollBehaviorStatus):
(WebCore::ScrollableArea::scrollClamping const):
(WebCore::ScrollableArea::setScrollClamping):
(WebCore::ScrollableArea::verticalScrollElasticity const):
(WebCore::ScrollableArea::horizontalScrollElasticity const):
(WebCore::ScrollableArea::scrollbarOverlayStyle const):
(WebCore::ScrollableArea::currentScrollType const):
(WebCore::ScrollableArea::setCurrentScrollType):
(WebCore::ScrollableArea::constrainsScrollingToContentEdge const): Deleted.
(WebCore::ScrollableArea::setConstrainsScrollingToContentEdge): Deleted.
- platform/ScrollingEffectsController.cpp:
(WebCore::ScrollingEffectsController::scrollAnimationDidUpdate):
(WebCore::ScrollingEffectsController::scrollToOffsetForAnimation): Deleted.
- platform/ScrollingEffectsController.h:
- platform/mac/ScrollingEffectsController.mm:
(WebCore::ScrollingEffectsController::applyScrollDeltaWithStretching):
(WebCore::ScrollingEffectsController::updateRubberBandAnimatingState):
- rendering/RenderListBox.cpp:
(WebCore::RenderListBox::RenderListBox):
- rendering/RenderListBox.h: Minor rearrangement to optimize padding now that ScrollableArea is a little larger.
- rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::RenderMarquee):
- testing/Internals.cpp:
(WebCore::Internals::setScrollViewPosition):
- 4:23 PM Changeset in webkit [283523] by
-
- 10 edits1 copy1 delete in trunk/LayoutTests
Cleaning up expectations for iOS 15.
https://bugs.webkit.org/show_bug.cgi?id=230968
Unreviewed test gardening.
We conisder "platform/ios" to represent iOS 15 at this point, so we should not have created a
new directory for it in r283500. This also moves a baseline that was added in r283520.
- fast/forms/ios/accessory-bar-navigation-expected.txt:
- fast/forms/ios/focus-input-in-fixed-expected.txt:
- fast/forms/ios/focus-input-in-iframe-expected.txt:
- fast/forms/ios/focus-input-via-button-expected.txt:
- fast/forms/ios/focus-input-via-button-no-scaling-expected.txt:
- fast/forms/ios/focus-long-textarea-expected.txt:
- fast/forms/ios/zoom-after-input-tap-expected.txt:
- fast/forms/ios/zoom-after-input-tap-wide-input-expected.txt:
- platform/ios-14/TestExpectations:
- platform/ios-15/TestExpectations: Removed.
- platform/ios-15/fast/forms/ios/accessory-bar-navigation-expected.txt: Removed.
- platform/ios-15/fast/forms/ios/focus-input-in-fixed-expected.txt: Removed.
- platform/ios-15/fast/forms/ios/focus-input-in-iframe-expected.txt: Removed.
- platform/ios-15/fast/forms/ios/focus-input-via-button-expected.txt: Removed.
- platform/ios-15/fast/forms/ios/focus-input-via-button-no-scaling-expected.txt: Removed.
- platform/ios-15/fast/forms/ios/focus-long-textarea-expected.txt: Removed.
- platform/ios-15/fast/forms/ios/zoom-after-input-tap-expected.txt: Removed.
- platform/ios-15/fast/forms/ios/zoom-after-input-tap-wide-input-expected.txt: Removed.
- platform/ios/TestExpectations:
- platform/ios/fast/events/ios/keydown-keyup-keypress-keys-in-non-editable-using-chinese-keyboard-expected.txt: Renamed from LayoutTests/platform/ios-15/fast/events/ios/keydown-keyup-keypress-keys-in-non-editable-using-chinese-keyboard-expected.txt.
- 4:15 PM Changeset in webkit [283522] by
-
- 72 edits2 adds in trunk
Add SPI to launch a service service worker in a WKWebView and expose service worker to injected bundle
https://bugs.webkit.org/show_bug.cgi?id=231045
<rdar://problem/83744069>
Reviewed by Geoff Garen.
Source/WebCore:
Add new [WKWebView loadServiceWorker:(NSURL *)] to load a service worker in a web view. When called,
it causes us to create a page with HTML start registers the service worker with the provided URL.
The service worker in question will differ slightly from usual service workers in that:
- The service worker URL doesn't need to be HTTP/HTTPS. In particular, a custom scheme (with corresponding custom scheme handler) can be used.
- The service worker will always run in the WKWebView's associated WebProcess (which can be controlled via WKWebViewConfiguration._relatedWebView).
- The service worker will run on the main thead
- The service worker is not persistent, meaning that it will not be saved to disk, unlike regular service workers.
- The service worker's global object will be exposed to the injected bundle via a new serviceWorkerGlobalObjectIsAvailableForFrame function call on WKWebProcessPlugInLoadDelegate. The provided Frame will be the WKWebView's main frame.
- The service worker will be unregistered & exit as soon as its WKWebView gets closed / deallocated.
To make the service worker more usable via the injected bundle API, the following changes were made too:
- [WKWebProcessPlugInFrame lookUpFrameFromJSContext:] will return the WKWebView's main frame when passed in that view's service worker context.
- A new [WKWebProcessPlugInFrame jsContextForServiceWorkerWorld:(WKWebProcessPlugInScriptWorld *)] SPI was added to get the service worker's JS context from the view.
I added an API test that launches such a service worker, makes sure the injected bundle gets notified on
the main thread of the service worker global object and that it can script it. The test also makes sure
the _relatedWebView SPI works to force a service worker into another view's process. It also tests that
[WKWebProcessPlugInFrame lookUpFrameFromJSContext:] and [WKWebProcessPlugInFrame jsContextForServiceWorkerWorld:(WKWebProcessPlugInScriptWorld *)]
work as expected. Finally, it makes sure the service worker properly exits when the view gets closed.
- dom/Document.cpp:
(WebCore::Document::isSecureContext const):
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::commitData):
- loader/FrameLoaderClient.h:
- page/Frame.cpp:
(WebCore::Frame::fromJSContext):
- page/Frame.h:
- page/Page.cpp:
(WebCore::Page::serviceWorkerGlobalObject):
(WebCore::Page::setServiceWorkerGlobalScope):
- page/Page.h:
(WebCore::Page::isServiceWorkerPage const):
(WebCore::Page::markAsServiceWorkerPage):
- platform/RegistrableDomain.h:
(WebCore::RegistrableDomain::RegistrableDomainHash::hash):
(WebCore::RegistrableDomain::RegistrableDomainHash::equal):
Registrable domains are not case sensitive. Yet its HashTraits was doing case sensitive checks.
The Service Worker code is using a HashMap whose key is a RegistrableDomain and my new API test
was initially failing simply because I used an upper case domain name in my URL. To make my
test pass, I decided to make the RegistrableDomain HashTraits case-insensitive, instead of using
a lowercase domain in my new test.
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::addRegistration):
- workers/service/ServiceWorkerContextData.cpp:
(WebCore::ServiceWorkerContextData::isolatedCopy const):
(WebCore::ServiceWorkerContextData::isolatedCopy):
- workers/service/ServiceWorkerContextData.h:
(WebCore::ServiceWorkerContextData::encode const):
(WebCore::ServiceWorkerContextData::decode):
- workers/service/ServiceWorkerGlobalScope.cpp:
(WebCore::ServiceWorkerGlobalScope::create):
(WebCore::ServiceWorkerGlobalScope::notifyServiceWorkerPageOfCreationIfNecessary):
(WebCore::ServiceWorkerGlobalScope::serviceWorkerPage):
- workers/service/ServiceWorkerGlobalScope.h:
- workers/service/ServiceWorkerJobData.cpp:
(WebCore::ServiceWorkerJobData::serviceWorkerPageIdentifier const):
(WebCore::ServiceWorkerJobData::isolatedCopy const):
- workers/service/ServiceWorkerJobData.h:
(WebCore::ServiceWorkerJobData::encode const):
(WebCore::ServiceWorkerJobData::decode):
- workers/service/server/RegistrationDatabase.cpp:
(WebCore::RegistrationDatabase::importRecords):
- workers/service/server/RegistrationStore.cpp:
(WebCore::RegistrationStore::updateRegistration):
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::addRegistrationFromStore):
(WebCore::SWServer::addRegistration):
(WebCore::SWServer::removeRegistration):
(WebCore::SWServer::updateWorker):
(WebCore::SWServer::tryInstallContextData):
(WebCore::SWServer::installContextData):
(WebCore::SWServer::runServiceWorkerIfNecessary):
(WebCore::SWServer::runServiceWorker):
(WebCore::SWServer::unregisterServiceWorkerClient):
(WebCore::SWServer::removeContextConnection):
(WebCore::SWServer::createContextConnection):
- workers/service/server/SWServer.h:
(WebCore::SWServer::shouldRunServiceWorkersOnMainThreadForTesting const):
- workers/service/server/SWServerJobQueue.cpp:
(WebCore::SWServerJobQueue::scriptFetchFinished):
(WebCore::SWServerJobQueue::runRegisterJob):
- workers/service/server/SWServerRegistration.cpp:
(WebCore::SWServerRegistration::SWServerRegistration):
- workers/service/server/SWServerRegistration.h:
(WebCore::SWServerRegistration::serviceWorkerPageIdentifier const):
- workers/service/server/SWServerToContextConnection.cpp:
(WebCore::SWServerToContextConnection::SWServerToContextConnection):
- workers/service/server/SWServerToContextConnection.h:
(WebCore::SWServerToContextConnection::serviceWorkerPageIdentifier const):
- workers/service/server/SWServerWorker.cpp:
(WebCore::SWServerWorker::contextData const):
(WebCore::SWServerWorker::workerThreadMode const):
(WebCore::SWServerWorker::serviceWorkerPageIdentifier const):
- workers/service/server/SWServerWorker.h:
Source/WebKit:
Add new [WKWebView loadServiceWorker:(NSURL *)] to load a service worker in a web view. When called,
it causes us to create a page with HTML start registers the service worker with the provided URL.
The service worker in question will differ slightly from usual service workers in that:
- The service worker URL doesn't need to be HTTP/HTTPS. In particular, a custom scheme (with corresponding custom scheme handler) can be used.
- The service worker will always run in the WKWebView's associated WebProcess (which can be controlled via WKWebViewConfiguration._relatedWebView).
- The service worker will run on the main thead
- The service worker is not persistent, meaning that it will not be saved to disk, unlike regular service workers.
- The service worker's global object will be exposed to the injected bundle via a new serviceWorkerGlobalObjectIsAvailableForFrame function call on WKWebProcessPlugInLoadDelegate. The provided Frame will be the WKWebView's main frame.
- The service worker will be unregistered & exit as soon as its WKWebView gets closed / deallocated.
To make the service worker more usable via the injected bundle API, the following changes were made too:
- [WKWebProcessPlugInFrame lookUpFrameFromJSContext:] will return the WKWebView's main frame when passed in that view's service worker context.
- A new [WKWebProcessPlugInFrame jsContextForServiceWorkerWorld:(WKWebProcessPlugInScriptWorld *)] SPI was added to get the service worker's JS context from the view.
I added an API test that launches such a service worker, makes sure the injected bundle gets notified on
the main thread of the service worker global object and that it can script it. The test also makes sure
the _relatedWebView SPI works to force a service worker into another view's process. It also tests that
[WKWebProcessPlugInFrame lookUpFrameFromJSContext:] and [WKWebProcessPlugInFrame jsContextForServiceWorkerWorld:(WKWebProcessPlugInScriptWorld *)]
work as expected. Finally, it makes sure the service worker properly exits when the view gets closed.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::establishSWContextConnection):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::swServerForSession):
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::startFetch):
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
- Shared/LoadParameters.cpp:
(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):
- Shared/LoadParameters.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView loadRequest:]):
(-[WKWebView loadFileURL:allowingReadAccessToURL:]):
(-[WKWebView loadData:MIMEType:characterEncodingName:baseURL:]):
(-[WKWebView _loadServiceWorker:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcess):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadDataWithNavigationShared):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
(WebKit::WebPageProxy::loadServiceWorker):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::establishServiceWorkerContext):
(WebKit::WebProcessProxy::enableServiceWorkers):
- UIProcess/WebProcessProxy.h:
- WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h:
(API::InjectedBundle::PageLoaderClient::serviceWorkerGlobalObjectIsAvailableForFrame):
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(-[WKWebProcessPlugInFrame jsContextForServiceWorkerWorld:]):
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
- WebProcess/InjectedBundle/API/c/WKBundlePageLoaderClient.h:
- WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:
- WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(serviceWorkerGlobalObjectIsAvailableForFrame):
(setUpPageLoaderClient):
- WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
(WebKit::InjectedBundlePageLoaderClient::globalObjectIsAvailableForFrame):
(WebKit::InjectedBundlePageLoaderClient::serviceWorkerGlobalObjectIsAvailableForFrame):
- WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):
(WebKit::WebSWContextManagerConnection::establishConnection):
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchServiceWorkerGlobalObjectAvailable):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::jsContextForServiceWorkerWorld):
(WebKit::WebFrame::frameForContext):
- WebProcess/WebPage/WebFrame.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadData):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
Source/WTF:
- wtf/URL.cpp:
(WTF::protocolHostAndPortAreEqual):
Fix issue where protocolHostAndPortAreEqual() was doing a case-sensitive check. My new service worker
API test was initially failing because of this since it is using an upper-case domain name.
Tools:
Add API test coverage.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
(-[ServiceWorkerSchemeHandler initWithBytes:]):
(-[ServiceWorkerSchemeHandler addMappingFromURLString:toData:]):
(-[ServiceWorkerSchemeHandler webView:startURLSchemeTask:]):
(-[ServiceWorkerSchemeHandler webView:stopURLSchemeTask:]):
(-[ServiceWorkerPageRemoteObject serviceWorkerGlobalObjectIsAvailable]):
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerPagePlugIn.mm: Added.
(-[ServiceWorkerPagePlugIn webProcessPlugInBrowserContextController:serviceWorkerGlobalObjectIsAvailableForFrame:inScriptWorld:]):
(-[ServiceWorkerPagePlugIn webProcessPlugIn:didCreateBrowserContextController:]):
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerPageProtocol.h: Added.
- 4:04 PM Changeset in webkit [283521] by
-
- 2 edits in trunk/Source/WebCore
RemotePlayback missing forward declaration of Node
https://bugs.webkit.org/show_bug.cgi?id=231193
Unreviewed build fix.
The missing forward declaration was introduced in r279443 and can cause a
build failure when adding a new file to Sources.txt.
- Modules/remoteplayback/RemotePlayback.h:
- 3:50 PM Changeset in webkit [283520] by
-
- 2 edits3 adds in trunk/LayoutTests
Cleaning up expectations for iOS 15.
https://bugs.webkit.org/show_bug.cgi?id=230968
Unreviewed test gardening.
- platform/ios-14/TestExpectations:
- platform/ios-15/fast/events/ios/keydown-keyup-keypress-keys-in-non-editable-using-chinese-keyboard-expected.txt: Added.
- 3:45 PM Changeset in webkit [283519] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed build fix after r283431.
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(+[_WKWebAuthenticationPanel setUsernameForLocalCredentialWithID:username:]):
- 3:42 PM Changeset in webkit [283518] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed build fix after r283431.
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(+[_WKWebAuthenticationPanel setUsernameForLocalCredentialWithID:username:]):
- 3:41 PM Changeset in webkit [283517] by
-
- 2 edits in trunk/Tools
Follow-up: WTF::RetainPtr<> allows assignment of two pointer types that are not assignable
<https://webkit.org/b/230406>
<rdar://problem/83241893>
Unreviewed attempt to fix api-ios tests.
- TestWebKitAPI/Tests/WTF/cocoa/TypeCastsCocoa.mm:
(TestWebKitAPI::TEST):
- Work around TestWTF.TypeCastsCocoa.checked_objc_cast test failures on iOS Simulator by using @autoreleasepool.
- 2:57 PM Changeset in webkit [283516] by
-
- 2 edits in branches/safari-612.2.9.1-branch/Source/WebKit
Cherry-pick r283490. rdar://problem/83856664
Vorbis decoder can't be instantiated - follow up on Bug 230742
https://bugs.webkit.org/show_bug.cgi?id=231154
rdar://problem/83825162
Fix typo in expression.
Reviewed by Tim Horton.
- Scripts/process-entitlements.sh: Add missing bool keyword.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283490 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:47 PM Changeset in webkit [283515] by
-
- 9 edits2 adds in trunk
[WebAuthn] Prefer internal user verification if available over pin entry.
https://bugs.webkit.org/show_bug.cgi?id=213903
<rdar://problem/65359269>
Patch by John Pascoe <J Pascoe> on 2021-10-04
Reviewed by Brent Fulgham.
Source/WebCore:
This adds an option to mock internal user verification in tests.
- testing/MockWebAuthenticationConfiguration.h:
(WebCore::MockWebAuthenticationConfiguration::HidConfiguration::encode const):
(WebCore::MockWebAuthenticationConfiguration::HidConfiguration::decode):
- testing/MockWebAuthenticationConfiguration.idl:
Source/WebKit:
- UIProcess/WebAuthentication/Mock/MockHidConnection.cpp:
(WebKit::MockHidConnection::feedReports):
- UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:
(WebKit::CtapAuthenticator::makeCredential):
(WebKit::CtapAuthenticator::getAssertion):
(WebKit::fido::toStatus): Deleted.
(WebKit::fido::isPinError): Deleted.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion-hid-internal-uv.html: Added.
- TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-hid-internal-uv.html: Added.
- 2:25 PM Changeset in webkit [283514] by
-
- 5 edits in trunk
[WebAuthn] Add SPI to change username of credential
https://bugs.webkit.org/show_bug.cgi?id=230956
<rdar://problem/83471755>
Patch by John Pascoe <J Pascoe> on 2021-10-04
Reviewed by Brent Fulgham.
Source/WebKit:
Adds a new method for changing the username of a given stored webauthn credential.
New API test: TestWebKitAPI.WebAuthenticationPanel.UpdateCredentialUsername
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(+[_WKWebAuthenticationPanel setUsernameForLocalCredentialWithID:username:]):
Tools:
API test coverage for updating the username of a webauthn credential.
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
- 2:02 PM Changeset in webkit [283513] by
-
- 3 edits in trunk/LayoutTests
Remove test expectations since 'crash' has been resolved.
https://bugs.webkit.org/show_bug.cgi?id=230245.
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 12:58 PM Changeset in webkit [283512] by
-
- 7 edits1 add in trunk
IntrinsicGetterAccessCase implementation of proto needs to handle get_by_id_with_this
https://bugs.webkit.org/show_bug.cgi?id=229951
<rdar://problem/82787527>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/run-proto-intrinsic-getter-with-this-value-in-get-by-id-with-this.js: Added.
(assert):
(main.v37):
(main):
Source/JavaScriptCore:
The whole point of get_by_id_with_this is to have different
slot base values for |this| vs the slot base when invoking
getters. However, our intrinsic getter inlining wasn't respecting
this. This patch makes the proto intrinsic getter do the right
thing. For typed array intrinsic getters, if they have different
|this| value vs slot base, we chose not to inline them, because
the type checks are not on the |this| value, so they're not guaranteed
to be typed arrays. We can improve upon this in the future.
- bytecode/IntrinsicGetterAccessCase.h:
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::emitLoadPrototypeWithoutCheck):
- jit/AssemblyHelpers.h:
- jit/IntrinsicEmitter.cpp:
(JSC::IntrinsicGetterAccessCase::canEmitIntrinsicGetter):
(JSC::IntrinsicGetterAccessCase::emitIntrinsicGetter):
- jit/Repatch.cpp:
(JSC::tryCacheGetBy):
- 12:48 PM Changeset in webkit [283511] by
-
- 40 edits2 copies in trunk/Source
Split WebXR extension module IDLs into their own files and settings
https://bugs.webkit.org/show_bug.cgi?id=231149
Reviewed by Dean Jackson.
Source/WebCore:
Split WebXRInputSource+Gamepad.idl out of WebXRInputSource.idl and
WebXRSession+AR.idl out of WebXRSession.idl and make them depend on
new module specific settings WebXRGamepadsModuleEnabled and
WebXRAugmentedRealityModuleEnabled respectively.
Also adds spec links in the IDLs as I like to do.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/webxr/WebXRBoundedReferenceSpace.idl:
- Modules/webxr/WebXRFrame.idl:
- Modules/webxr/WebXRInputSource+Gamepad.idl: Added.
- Modules/webxr/WebXRInputSource.idl:
- Modules/webxr/WebXRInputSourceArray.idl:
- Modules/webxr/WebXRLayer.idl:
- Modules/webxr/WebXRPose.idl:
- Modules/webxr/WebXRReferenceSpace.idl:
- Modules/webxr/WebXRRenderState.idl:
- Modules/webxr/WebXRRigidTransform.idl:
- Modules/webxr/WebXRSession+AR.idl: Added.
- Modules/webxr/WebXRSession.idl:
- Modules/webxr/WebXRSpace.idl:
- Modules/webxr/WebXRSystem.idl:
- Modules/webxr/WebXRView.idl:
- Modules/webxr/WebXRViewerPose.idl:
- Modules/webxr/WebXRViewport.idl:
- Modules/webxr/WebXRWebGLLayer.idl:
- Modules/webxr/XREnvironmentBlendMode.idl:
- Modules/webxr/XREye.idl:
- Modules/webxr/XRFrameRequestCallback.idl:
- Modules/webxr/XRHandedness.idl:
- Modules/webxr/XRInputSourceEvent.idl:
- Modules/webxr/XRInputSourcesChangeEvent.idl:
- Modules/webxr/XRInteractionMode.idl:
- Modules/webxr/XRReferenceSpaceEvent.idl:
- Modules/webxr/XRReferenceSpaceType.idl:
- Modules/webxr/XRRenderStateInit.idl:
- Modules/webxr/XRSessionEvent.idl:
- Modules/webxr/XRSessionInit.idl:
- Modules/webxr/XRSessionMode.idl:
- Modules/webxr/XRTargetRayMode.idl:
- Modules/webxr/XRVisibilityState.idl:
- Modules/webxr/XRWebGLLayerInit.idl:
- WebCore.xcodeproj/project.pbxproj:
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
Adds WebXRAugmentedRealityModuleEnabled and WebXRGamepadsModuleEnabled
to gate enabling the WebXR AR Module and the WebXR Gamepads Module on.
- 12:40 PM Changeset in webkit [283510] by
-
- 2 edits in trunk/Source/WebKit
Send necessary sandbox extensions to WebProcess in case WebRTC codecs run in WebProcess
https://bugs.webkit.org/show_bug.cgi?id=231073
Reviewed by Eric Carlson.
Manually tested, make sure to send extensions like if audio/video capture happens in WebProcess.
This allows validating regressions due or not to GPUProcess.
- UIProcess/WebPageProxy.cpp:
- 12:35 PM Changeset in webkit [283509] by
-
- 12 edits1 copy2 moves1 add2 deletes in trunk
Use isolated NSURLSessions for each first party registrable domain
https://bugs.webkit.org/show_bug.cgi?id=230750
<rdar://83159358>
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Rebaseline WPT test that is now passing more checks.
- web-platform-tests/fetch/connection-pool/network-partition-key-expected.txt:
Source/WebCore:
Fix bug where service worker soft-update requests would have their "first-party-for-cookies"
field set to "https:" instead of a full origin (e.g. "https://localhost:8080"). This was
causing some service worker test failures now that we use different NSURLSession based on
the "first-party-for-cookies" field.
- workers/service/server/SWServer.cpp:
(WebCore::originURL):
Source/WebKit:
Previously would use up to 10 isolated NSURLSessions only for domains marked as prevalent
by ITP *and* that the user interacts with as first party website. We now use different
isolated NSURLSession for each top-level registrable domain, not matter their ITP status.
This significantly improves privacy.
To avoid having too many NSURLSession, we clear the ones that haven't been used in the
last 10 minutes, every time we add a new one.
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::sessionWrapperForTask):
(WebKit::SessionSet::isolatedSession):
LayoutTests:
This test is now passing more checks on WebKit2 but still completely fails on WebKit1 so I am
adding a WK1-specific baseline.
- platform/mac-wk1/imported/w3c/web-platform-tests/fetch/connection-pool/network-partition-key-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/connection-pool/network-partition-key-expected.txt.
- 12:34 PM Changeset in webkit [283508] by
-
- 8 edits in trunk/Source/WebCore
Make RuleSetBuilder a class
https://bugs.webkit.org/show_bug.cgi?id=231158
Reviewed by Alan Bujtas.
Improve encapsulation.
This patch also makes clients use RuleSetBuilder directly removing the two-way dependency
between RuleSet and RuleSetBuilder.
- style/RuleSet.cpp:
(WebCore::Style::RuleSet::addRule):
(WebCore::Style::RuleSet::shrinkToFit):
(WebCore::Style::RuleSet::addRulesFromSheet): Deleted.
(WebCore::Style::shrinkDynamicRules): Deleted.
- style/RuleSet.h:
(WebCore::Style::RuleSet::DynamicMediaQueryRules::shrinkToFit):
- style/RuleSetBuilder.cpp:
(WebCore::Style::RuleSetBuilder::RuleSetBuilder):
(WebCore::Style::m_resolver):
(WebCore::Style::RuleSetBuilder::~RuleSetBuilder):
(WebCore::Style::RuleSetBuilder::addRulesFromSheet):
(WebCore::Style::RuleSetBuilder::addChildRules):
(WebCore::Style::RuleSetBuilder::addStyleRule):
(WebCore::Style::RuleSetBuilder::pushCascadeLayer):
(WebCore::Style::RuleSetBuilder::popCascadeLayer):
(WebCore::Style::RuleSetBuilder::updateCascadeLayerOrder):
(WebCore::Style::RuleSetBuilder::addMutatingRulesToResolver):
(WebCore::Style::RuleSetBuilder::MediaQueryCollector::pushAndEvaluate):
(WebCore::Style::RuleSetBuilder::MediaQueryCollector::pop):
(WebCore::Style::RuleSetBuilder::MediaQueryCollector::didMutateResolver):
(WebCore::Style::RuleSetBuilder::MediaQueryCollector::addRuleIfNeeded):
(WebCore::Style::RuleSetMediaQueryCollector::pushAndEvaluate): Deleted.
(WebCore::Style::RuleSetMediaQueryCollector::pop): Deleted.
(WebCore::Style::RuleSetMediaQueryCollector::didMutateResolver): Deleted.
(WebCore::Style::RuleSetMediaQueryCollector::addRuleIfNeeded): Deleted.
MediaQueryCollector is now a private inner struct of RuleSetBuilder.
- style/RuleSetBuilder.h:
- style/StyleInvalidator.cpp:
(WebCore::Style::m_dirtiesAllStyle):
- style/StyleScopeRuleSets.cpp:
(WebCore::Style::ScopeRuleSets::updateUserAgentMediaQueryStyleIfNeeded const):
(WebCore::Style::ScopeRuleSets::initializeUserStyle):
(WebCore::Style::ScopeRuleSets::collectRulesFromUserStyleSheets):
(WebCore::Style::ScopeRuleSets::appendAuthorStyleSheets):
- style/UserAgentStyle.cpp:
(WebCore::Style::UserAgentStyle::addToDefaultStyle):
(WebCore::Style::UserAgentStyle::initDefaultStyleSheet):
- 12:31 PM Changeset in webkit [283507] by
-
- 2 edits in trunk/Source/WebKit
process-entitlements should fail if a subcommand fails
https://bugs.webkit.org/show_bug.cgi?id=231155
Reviewed by Anders Carlsson.
- Scripts/process-entitlements.sh:
See bug 231154, which fixes a mistake in r283156 which made one of the
PlistBuddy invocations from process-entitlements fail, but did not
result in a failing build. PlistBuddy does correctly return a non-zero
return value in this case, so we should just tell the shell to propagate
that upwards.
- 11:31 AM Changeset in webkit [283506] by
-
- 8 edits in branches/safari-612.2.9.1-branch/Source
Versioning.
WebKit-7612.2.9.1.4
- 11:30 AM Changeset in webkit [283505] by
-
- 8 edits in branches/safari-612.2.9.0-branch/Source
Versioning.
WebKit-7612.2.9.0.4
- 10:38 AM Changeset in webkit [283504] by
-
- 16 edits in trunk/Source/WebKit
Enable PCM debug mode per WebsiteDataStore instead of process-global
https://bugs.webkit.org/show_bug.cgi?id=231096
Reviewed by Kate Cheney.
This will make it so we don't need to restart the network process in order to enable or disable debug mode.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::setPrivateClickMeasurementDebugMode):
(WebKit::NetworkProcess::privateClickMeasurementDebugModeEnabled const): Deleted.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::setPrivateClickMeasurementDebugMode):
- NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::privateClickMeasurementDebugModeEnabled const):
- NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
- NetworkProcess/NetworkSessionCreationParameters.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClientImpl.cpp:
(WebKit::PCM::ClientImpl::debugModeEnabled const):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::setPrivateClickMeasurementDebugMode):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::experimentalFeatureEnabled):
(WebKit::WebsiteDataStore::platformSetNetworkParameters):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::setPrivateClickMeasurementDebugMode):
- 9:46 AM Changeset in webkit [283503] by
-
- 2 edits in branches/safari-613.1.4-branch/Source/WebCore
Unreviewed maccatalyst build fix.
- platform/audio/ios/AudioSessionIOS.mm:
(WebCore::AudioSessionIOS::setHostProcessAttribution):
- 9:40 AM Changeset in webkit [283502] by
-
- 8 edits in branches/safari-613.1.4-branch/Source
Versioning.
WebKit-7613.1.4
- 9:40 AM Changeset in webkit [283501] by
-
- 8 edits in trunk/Source
Versioning.
WebKit-7613.1.5
- 9:39 AM Changeset in webkit [283500] by
-
- 4 edits11 adds in trunk/LayoutTests
Cleaning up expectations for iOS 15.
https://bugs.webkit.org/show_bug.cgi?id=230968
Unreviewed test gardening.
- platform/ios-14/TestExpectations:
- platform/ios-15/fast/forms/ios/accessory-bar-navigation-expected.txt: Added.
- platform/ios-15/fast/forms/ios/focus-input-in-fixed-expected.txt: Added.
- platform/ios-15/fast/forms/ios/focus-input-in-iframe-expected.txt: Added.
- platform/ios-15/fast/forms/ios/focus-input-via-button-expected.txt: Added.
- platform/ios-15/fast/forms/ios/focus-input-via-button-no-scaling-expected.txt: Added.
- platform/ios-15/fast/forms/ios/focus-long-textarea-expected.txt: Added.
- platform/ios-15/fast/forms/ios/zoom-after-input-tap-expected.txt: Added.
- platform/ios-15/fast/forms/ios/zoom-after-input-tap-wide-input-expected.txt: Added.
- platform/ios/TestExpectations:
- platform/ipad/TestExpectations:
- 9:37 AM Changeset in webkit [283499] by
-
- 1 copy in branches/safari-613.1.4-branch
New branch.
- 9:00 AM Changeset in webkit [283498] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed maccatalyst build fix.
- platform/audio/ios/AudioSessionIOS.mm:
(WebCore::AudioSessionIOS::setHostProcessAttribution):
- 8:00 AM Changeset in webkit [283497] by
-
- 2 edits in trunk/LayoutTests
Make preload referrer-img.py compatible with Python 3.9
https://bugs.webkit.org/show_bug.cgi?id=231099
Reviewed by Jonathan Bedard.
Python 3.9 removed[1] the deprecated
base64.decodestring. We should use
base64.decodebytesinstead (available since 3.1).
[1] https://bugs.python.org/issue39351
- http/wpt/preload/resources/referrer-img.py: Replace deprecated method.
- 7:50 AM Changeset in webkit [283496] by
-
- 2 edits in trunk/Source/WebCore
Fix LTS build after 242443@main
Unreviewed build fix.
- rendering/RenderBlockFlow.cpp:
- 7:26 AM Changeset in webkit [283495] by
-
- 2 edits in trunk/Tools
Send EWS exception emails to bot watchers instead of Aakash
Unreviewed.
- CISupport/ews-build/master.cfg:
- 6:57 AM Changeset in webkit [283494] by
-
- 6 edits2 adds in trunk/LayoutTests/imported/w3c
[css-flexbox] Resync WPT tests
https://bugs.webkit.org/show_bug.cgi?id=231164
Reviewed by Rob Buis.
Imported some tests after being fixed upstream. Also fetched new ones.
- web-platform-tests/css/css-flexbox/parsing/flex-grow-computed-expected.txt:
- web-platform-tests/css/css-flexbox/parsing/flex-grow-computed.html:
- web-platform-tests/css/css-flexbox/parsing/flex-shrink-computed-expected.txt:
- web-platform-tests/css/css-flexbox/parsing/flex-shrink-computed.html:
- web-platform-tests/css/css-flexbox/text-as-flexitem-size-001-expected.txt: Added.
- web-platform-tests/css/css-flexbox/text-as-flexitem-size-001.html: Added.
- web-platform-tests/css/css-flexbox/w3c-import.log:
- 6:16 AM Changeset in webkit [283493] by
-
- 4 edits in trunk
'overflow-wrap: anywhere' should be considered when calculating min-content intrinsic sizes.
https://bugs.webkit.org/show_bug.cgi?id=231152
Reviewed by Javier Fernandez.
Source/WebCore:
As opposed to overflow-wrap: 'break-word', 'anywhere' should be taken into account when computing the preferred width.
"An otherwise unbreakable sequence of characters may be broken at an arbitrary point...
Soft wrap opportunities introduced by anywhere are considered when calculating min-content intrinsic sizes."
https://drafts.csswg.org/css-text-3/#overflow-wrap-property
- rendering/RenderText.cpp:
(WebCore::RenderText::computePreferredLogicalWidths):
(WebCore::RenderText::computeCanUseSimplifiedTextMeasuring const):
LayoutTests:
- TestExpectations: Progressions.
- 5:14 AM Changeset in webkit [283492] by
-
- 11 edits40 adds in trunk/LayoutTests
[css-grid] Resync web-platform-tests/css/css-grid tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=231020
Reviewed by Sergio Villar Senin.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-005-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-005.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-006-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-006.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-007-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/grid-positioned-item-dynamic-change-007.html: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-017-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-017.html: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-023-expected.html: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-023.html: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-024-expected.xht: Added.
- web-platform-tests/css/css-grid/abspos/positioned-grid-items-024.html: Added.
- web-platform-tests/css/css-grid/abspos/w3c-import.log:
- web-platform-tests/css/css-grid/alignment/grid-inline-baseline-expected.html: Added.
- web-platform-tests/css/css-grid/alignment/grid-inline-baseline.html: Added.
- web-platform-tests/css/css-grid/alignment/w3c-import.log:
- web-platform-tests/css/css-grid/empty-grid-within-flexbox-expected.xht: Added.
- web-platform-tests/css/css-grid/empty-grid-within-flexbox.html: Added.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-minmax-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html.
- web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-minmax.html: Added.
- web-platform-tests/css/css-grid/grid-definition/w3c-import.log:
- web-platform-tests/css/css-grid/grid-items/grid-size-with-orthogonal-child-dynamic-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html.
- web-platform-tests/css/css-grid/grid-items/grid-size-with-orthogonal-child-dynamic.html: Added.
- web-platform-tests/css/css-grid/grid-items/percentage-margin-dynamic-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html.
- web-platform-tests/css/css-grid/grid-items/percentage-margin-dynamic.html: Added.
- web-platform-tests/css/css-grid/grid-items/replaced-element-014-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html.
- web-platform-tests/css/css-grid/grid-items/replaced-element-014.html: Added.
- web-platform-tests/css/css-grid/grid-items/replaced-element-015-expected.html: Added.
- web-platform-tests/css/css-grid/grid-items/replaced-element-015.html: Added.
- web-platform-tests/css/css-grid/grid-items/w3c-import.log:
- web-platform-tests/css/css-grid/grid-model/grid-item-hit-test-expected.txt: Added.
- web-platform-tests/css/css-grid/grid-model/grid-item-hit-test.html: Added.
- web-platform-tests/css/css-grid/grid-model/w3c-import.log:
- web-platform-tests/css/css-grid/grid-with-dynamic-img-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html.
- web-platform-tests/css/css-grid/grid-with-dynamic-img.html: Added.
- web-platform-tests/css/css-grid/grid-with-orthogonal-child-within-flexbox-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html.
- web-platform-tests/css/css-grid/grid-with-orthogonal-child-within-flexbox.html: Added.
- web-platform-tests/css/css-grid/grid-within-flexbox-indefinite-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html.
- web-platform-tests/css/css-grid/grid-within-flexbox-indefinite.html: Added.
- web-platform-tests/css/css-grid/layout-algorithm/grid-intrinsic-size-dynamic-block-size-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html.
- web-platform-tests/css/css-grid/layout-algorithm/grid-intrinsic-size-dynamic-block-size.html: Added.
- web-platform-tests/css/css-grid/layout-algorithm/grid-template-flexible-rerun-track-sizing-expected.xht: Added.
- web-platform-tests/css/css-grid/layout-algorithm/grid-template-flexible-rerun-track-sizing.html: Added.
- web-platform-tests/css/css-grid/layout-algorithm/w3c-import.log:
- web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows-expected.xht: Added.
- web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows.html: Added.
- web-platform-tests/css/css-grid/placement/w3c-import.log:
- web-platform-tests/css/css-grid/w3c-import.log:
LayoutTests:
- 4:04 AM Changeset in webkit [283491] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Mark more font-palette tests as failing. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=231165
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-10-04
- platform/glib/TestExpectations:
- 1:07 AM Changeset in webkit [283490] by
-
- 2 edits in trunk/Source/WebKit
Vorbis decoder can't be instantiated - follow up on Bug 230742
https://bugs.webkit.org/show_bug.cgi?id=231154
rdar://problem/83825162
Fix typo in expression.
Reviewed by Tim Horton.
- Scripts/process-entitlements.sh: Add missing bool keyword.
- 12:48 AM Changeset in webkit [283489] by
-
- 7 edits in trunk/Source/WebCore
Regression (r283238)[ MacOS wk1 ] fast/mediacapturefromelement/CanvasCaptureMediaStream-webgl-events.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=231022
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-04
Reviewed by Youenn Fablet.
Originally the implementation would always return red frame, and the test would pass.
r283238 changed the implementation to not return a sample if there is not a display buffer,
as logically such cannot be used as a sample.
This broke the test case since the CanvasCaptureMediaStreamTrack would try to capture
the canvas display buffer during next runloop iteration (0s timeout) after each modification.
This does not work, as the display buffer is composed during "prepare for display"
phase.
Add CanvasBase observers to observe that display buffer has been prepared, and capture
the media sample after that observer has fired.
The test would work for wk2 due to timing related differences, preparation would have
typically run before the canvas capture 0s timeout.
Fixes fast/mediastream/captureStream/canvas3d.html for wk1.
- Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
(WebCore::CanvasCaptureMediaStreamTrack::Source::startProducingData):
(WebCore::CanvasCaptureMediaStreamTrack::Source::canvasChanged):
(WebCore::CanvasCaptureMediaStreamTrack::Source::canvasDisplayBufferPrepared):
- Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
- html/CanvasBase.cpp:
(WebCore::CanvasBase::addDisplayBufferObserver):
(WebCore::CanvasBase::removeDisplayBufferObserver):
(WebCore::CanvasBase::notifyObserversCanvasDisplayBufferPrepared):
- html/CanvasBase.h:
(WebCore::CanvasBase::hasDisplayBufferObservers const):
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::prepareForDisplay):
Move the "prepare only when the owner element is in the tree" logic to
its correct place to the caller, e.g. to the element itself.