Timeline
Jun 20, 2021:
- 7:51 PM Changeset in webkit [279062] by
-
- 2 edits1 delete in trunk/Source/WTF
Replace Span implementation with one from libc++, which is more spec complient
https://bugs.webkit.org/show_bug.cgi?id=227197
Reviewed by Darin Adler.
- wtf/Span.h:
The tcb span implementation had some SFINAE issues when converting containers
had data() and size() member functions but were not span compatible that were
causing failures. Rather than trying to fix those, this adopts a modified version
of the libc++ span implementation which is more up-to-date.
To fix MSVC compile issues, the as_bytes/as_writable_bytes functions have been
re-implemented to not work around a compile issue seen where using the dynamic_extent
specicialization from the static extent specicialization was failing to compile.
- 6:19 PM Changeset in webkit [279061] by
-
- 4 edits in trunk/Source/WebCore
HitTestLocation::m_boundingBox should be able hold subpixel values
https://bugs.webkit.org/show_bug.cgi?id=227185
Reviewed by Sam Weinig.
This is in preparation for supporting non-integral area hi-testing (e.g. on 2x displays).
No functionality change yet.
- rendering/HitTestLocation.cpp:
(WebCore::rectForPoint):
- rendering/HitTestLocation.h:
(WebCore::HitTestLocation::boundingBox const):
- rendering/RenderInline.cpp:
(WebCore::RenderInline::hitTestCulledInline):
- 4:22 PM Changeset in webkit [279060] by
-
- 11 edits2 moves in trunk/Source
[macOS] Rename WKVisualSearchPreviewController to WKQuickLookPreviewController
https://bugs.webkit.org/show_bug.cgi?id=227193
Reviewed by Sam Weinig.
Source/WebCore/PAL:
Fix up some compiler flags in this SPI header. Instead of using
HAVE(VK_IMAGE_ANALYSIS)to guard SPI
declarations, use the newHAVE(QUICKLOOK_PREVIEW_ITEM_DATA_PROVIDER),HAVE(QUICKLOOK_ITEM_PREVIEW_OPTIONS)
andHAVE(QUICKLOOK_PREVIEW_ACTIVITY)flags.
- pal/spi/mac/QuickLookMacSPI.h:
Source/WebKit:
Rename WKVisualSearchPreviewController to WKQuickLookPreviewController, with the intention of using this logic
to implement a new context menu action for opening images in a QuickLook preview panel. See below for more
details.
- SourcesCocoa.txt:
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::handleContextMenuLookUpImage): Deleted.
Move this into WebPageProxyMac.mm, since this is (1) only relevant to macOS, and (2) this logic now requires
WKQuickLookPreviewController.h, which WebPageProxyMac.mm already imports.
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::acceptsPreviewPanelControl):
- UIProcess/WebPageProxy.h:
- UIProcess/mac/WKQuickLookPreviewController.h: Renamed from Source/WebKit/UIProcess/mac/WKVisualSearchPreviewController.h.
- UIProcess/mac/WKQuickLookPreviewController.mm: Renamed from Source/WebKit/UIProcess/mac/WKVisualSearchPreviewController.mm.
(-[WKQuickLookPreviewController initWithPage:imageData:title:imageURL:activity:]):
Add QuickLookPreviewActivity, a flag to indicate whether or not WKQuickLookPreviewController should
start with QLPreviewActivityVisualSearch or QLPreviewActivityNone. For the time being, we only use this helper
object for visual search, so we only pass in QuickLookPreviewActivity::VisualSearch.
(-[WKQuickLookPreviewController beginControl:]):
(-[WKQuickLookPreviewController endControl:]):
(-[WKQuickLookPreviewController closePanelIfNecessary]):
(-[WKQuickLookPreviewController isControlling:]):
(-[WKQuickLookPreviewController provideDataForItem:]):
(-[WKQuickLookPreviewController numberOfPreviewItemsInPreviewPanel:]):
(-[WKQuickLookPreviewController previewPanel:previewItemAtIndex:]):
(-[WKQuickLookPreviewController previewPanel:initialActivityForItem:]):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::beginPreviewPanelControl):
(WebKit::WebPageProxy::endPreviewPanelControl):
(WebKit::WebPageProxy::closeSharedPreviewPanelIfNecessary):
(WebKit::WebPageProxy::handleContextMenuLookUpImage):
(WebKit::WebPageProxy::showImageInQuickLookPreviewPanel):
(WebKit::WebPageProxy::showImageInVisualSearchPreviewPanel): Deleted.
- WebKit.xcodeproj/project.pbxproj:
Source/WTF:
Add some compile-time flags to guard QuickLook SPI declarations.
- wtf/PlatformHave.h:
- 2:31 PM Changeset in webkit [279059] by
-
- 7 edits in trunk/Source
[Live Text] Mouse events should only trigger text recognition if the cursor is moving
https://bugs.webkit.org/show_bug.cgi?id=227181
rdar://79469827
Reviewed by Tim Horton.
Source/WebCore:
Make a slight adjustment to how we trigger the text recognition timer when hovering over images; instead of
allowing any non-synthetic mouse event to kick off the timer, limit it to only mouse events with horizontal or
vertical movement deltas.
To implement this, we remove some
ENABLE(POINTER_LOCK)guards around PlatformMouseEvent's movement delta, and
check whether the movement delta is nonzero in EventHandler when determining whether to start the text
recognition timer.
- page/EventHandler.cpp:
(WebCore::EventHandler::updateMouseEventTargetNode):
Check for a nonzero movement delta in place of the synthetic click type; since all synthetic mouse events are
created with no horizontal or vertical delta, since new movement delta check obviates the need for checking the
synthetic click type.
Additionally, we invert the conditional here so that if any mouse events are detected over content that is not
an image, we'll immediately stop the timer; however, if the mouse event is over an image, we'll only kick off
the timer if the movement delta is additionally nonzero.
- platform/PlatformMouseEvent.h:
(WebCore::PlatformMouseEvent::globalPosition const):
(WebCore::PlatformMouseEvent::movementDelta const):
- platform/mac/PlatformEventFactoryMac.mm:
(WebCore::PlatformMouseEventBuilder::PlatformMouseEventBuilder):
Source/WebKit:
Populate the
deltaXanddeltaYmembers of the platform mouse event on iOS, when using a trackpad. This
allows the adjusted logic in EventHandler to apply to iPadOS when using a trackpad as well (see WebCore
ChangeLog for more information).
- Shared/WebEventConversion.cpp:
(WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):
- UIProcess/ios/WKMouseGestureRecognizer.mm:
(-[WKMouseGestureRecognizer createMouseEventWithType:wasCancelled:]):
- 1:33 PM Changeset in webkit [279058] by
-
- 3 edits in trunk/Source/WTF
Adopt Span in SHA1.h
https://bugs.webkit.org/show_bug.cgi?id=227184
Reviewed by Chris Dumez.
Replaces overload of addBytes taking a Vector with ones taking
a Span and add overloads for Span<const std::byte> which all the
others are now implemented in terms of. This is useful since
any Span can be turned into one of type Span<const std::byte>
just by calling asBytes(existingSpan).
This leaves most of the existing overloads in place (though
simplifies them by implementing them as Span contructions),
though we should consider removing some in a separate pass.
- wtf/SHA1.cpp:
- wtf/SHA1.h:
- 12:46 PM Changeset in webkit [279057] by
-
- 5 edits in trunk/Source/WebCore
Move rectForPoint() static function out from the HitTestLocation class
https://bugs.webkit.org/show_bug.cgi?id=227182
Reviewed by Sam Weinig.
This function implicitly enlarges the hit test area which may trigger unexpected behavior.
It's better to not have it on the class's public interface.
- rendering/HitTestLocation.cpp:
(WebCore::rectForPoint):
(WebCore::HitTestLocation::rectForPoint): Deleted.
- rendering/HitTestLocation.h:
- rendering/LegacyEllipsisBox.cpp:
(WebCore::LegacyEllipsisBox::nodeAtPoint): While this may be a functionality change where we
replace the previously set area padding with 0 (actually 1px), I don't think that's what this is about.
- testing/Internals.cpp:
(WebCore::Internals::nodesFromRect const):
- 11:17 AM Changeset in webkit [279056] by
-
- 8 edits in trunk/Source/WebCore
Remove HitTestLocation(FloatPoint) c'tor
https://bugs.webkit.org/show_bug.cgi?id=227179
Reviewed by Sam Weinig.
FloatPoint are used to store pixed snapped coordinate values in the rendering code.
This is in preparation for supporting non-integral HitTestLocation intersect.
- rendering/HitTestLocation.cpp:
- rendering/HitTestLocation.h:
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hitTestLayerByApplyingTransform):
- rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::nodeAtFloatPoint):
- rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::nodeAtFloatPoint):
- rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::nodeAtFloatPoint):
- rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::nodeAtFloatPoint):
- 10:31 AM Changeset in webkit [279055] by
-
- 11 edits in trunk
CSS counter style improvements for Armenian, Tamil, and some CJK styles
https://bugs.webkit.org/show_bug.cgi?id=227190
Reviewed by Sam Weinig.
Source/WebCore:
- css/CSSPrimitiveValueMappings.h: Added CJKDecimal and Tamil.
Also updated for name changes of Cjk to CJK.
- css/CSSValueKeywords.in: Added cjk-decimal and tamil.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::isPredefinedCounterStyle):
Updated since the last predefined counter style is now Tamil.
- rendering/RenderListMarker.cpp: Tweak coding style a bit, using
constexpr and auto and removing some unneeded explicit type names.
(WebCore::effectiveListMarkerType): Added Tamil. Corrected range
for Armenian, LowerArmenian, and UpperArmenian to be 1-9999.
Added CJKDecimal. Updated for name changes of Cjk to CJK.
(WebCore::listMarkerSuffix): Addded Tamil. Corrected suffix for
multiple types to be ideographic comma instead of period.
(WebCore::suffixRequiresSpace): Added. Used so we don't add a space
after all suffixes.
(WebCore::listMarkerText): Added CJKDecimal and Tamil.
(WebCore::RenderListMarker::paint): Removed all the cases for the
many list style types that just paint as text, using default instead.
Call suffixRequiresSpace and don't add a space if not needed.
(WebCore::RenderListMarker::updateContent): Removed all the cases for
the many list style types that are text based, using default instead.
(WebCore::RenderListMarker::computePreferredLogicalWidths): Removed
all the cases for the many list style types that are text based, using
default instead. Call suffixRequiresSpace and don't include the space
if not needed.
(WebCore::RenderListMarker::suffix const): Call suffixRequiresSpace
and don't include a space if not needed.
(WebCore::RenderListMarker::getRelativeMarkerRect): Removed all the
cases for the many list style types that are text based, using default
instead. Call suffixRequiresSpace and don't include the space if not
needed.
- rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<): Added CJKDecimal and Tamil. Also sorted the
list styles alphabetically.
- rendering/style/RenderStyleConstants.h: Added CJKDecimal and
Tamil and use CJK instead of Cjk in names of the other styles.
LayoutTests:
- TestExpectations: Remove failure expectations for 26 tests.
- fast/lists/w3-css3-list-styles-fallback-style-expected.txt: Expect 9999 limit instead
of 99999999 for Armenian, and success rather than failure for Tamil.
- fast/lists/w3-css3-list-styles-fallback-style.html: Ditto.
- 3:53 AM Changeset in webkit [279054] by
-
- 17 edits6 adds in trunk
Skip shadow-root creation for input element if it is not necessary
https://bugs.webkit.org/show_bug.cgi?id=227189
Reviewed by Maciej Stachowiak.
Source/WebCore:
Test: fast/forms/checkbox-child-hidden.html
Cherry-pick Chromium optimizations[1,2] for input element and extend the coverage for more types.
Some of input element (e.g. checkbox) do not need to create a shadow-root since they do not have shadow-subtree.
This patch optimizes input element creation by skipping creation of shadow-root for these input types.
Since HTMLTextFormControlElement::childShouldCreateRenderer creates renderer only for children under shadow-root,
we do not need to consider about the case appending an element to checkbox etc. They will not get renderers.
We also replace HTMLInputElement related class' override with final if they are final to make class-hierarchy more explicit
and not to miss the change that needs to be done in the derived classes.
On M1 MBP, this patch improves Speedometer2 by 0.8%.
[1]: https://chromium-review.googlesource.com/c/chromium/src/+/773180
[2]: https://chromium-review.googlesource.com/c/chromium/src/+/826426 (but this is not necessary in WebKit since HTMLTextFormControlElement::childShouldCreateRenderer does the right thing elegantly)
- dom/Element.cpp:
(WebCore::Element::ensureUserAgentShadowRoot):
(WebCore::Element::createUserAgentShadowRoot):
- dom/Element.h:
- html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/BaseDateAndTimeInputType.h:
(WebCore::BaseDateAndTimeInputType::BaseDateAndTimeInputType):
- html/ColorInputType.cpp:
(WebCore::ColorInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/ColorInputType.h:
- html/FileInputType.cpp:
(WebCore::FileInputType::FileInputType):
(WebCore::FileInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::create):
(WebCore::HTMLInputElement::createShadowSubtreeAndUpdateInnerTextElementEditability):
(WebCore::HTMLInputElement::updateType): It is possible that shadow root is already created for the previous InputType.
So we should use ensureUserAgentShadowRoot.
(WebCore::HTMLInputElement::initializeInputType): Since this is called at initialization time, we can use createUserAgentShadowRoot
instead of ensureUserAgentShadowRoot.
(WebCore::HTMLInputElement::didAddUserAgentShadowRoot): Deleted. Clean up the logic instead of relying on this callback.
Since HTMLInputElement can replace InputType, while we need to create shadow-subtree when InputType is replaced,
this callback could not be called since shadow-root is already created for the previous InputType. Not relying on this
callback makes the logic much simpler: explicitly create shadow-root and shadow-subtree.
- html/HTMLInputElement.h:
- html/InputType.h:
(WebCore::InputType::needsShadowSubtree const): Since this is in the critical path, we need this super optimized implementation.
Button, checkbox, hidden, image, radio, reset, and submit do not require shadow root.
- html/RangeInputType.cpp:
(WebCore::RangeInputType::RangeInputType):
(WebCore::RangeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/SearchInputType.cpp:
(WebCore::SearchInputType::SearchInputType):
(WebCore::SearchInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::TextFieldInputType):
(WebCore::TextFieldInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
LayoutTests:
- fast/forms/checkbox-and-pseudo-expected.txt: Added.
- fast/forms/checkbox-and-pseudo.html: Added.
- fast/forms/checkbox-child-hidden-expected.html: Added.
- fast/forms/checkbox-child-hidden.html: Added.
- 2:48 AM Changeset in webkit [279053] by
-
- 4 edits1 add in trunk
[JSC] Add ValueOf fast path in toPrimitive
https://bugs.webkit.org/show_bug.cgi?id=226948
Reviewed by Ross Kirsling.
JSTests:
- microbenchmarks/valueof-via-toprimitive.js: Added.
Source/JavaScriptCore:
Add fast path for Object.prototype.valueOf function call since we
sometimes encounter this case in Speedometer2/EmberJS-Debug-TodoMVC.
ToT Patched
value-of-call 65.7169+-0.6192 45.0986+-0.0830 definitely 1.4572x faster
- runtime/JSCJSValue.cpp:
(JSC::JSValue::toStringSlowCase const):
- runtime/JSObject.cpp:
(JSC::callToPrimitiveFunction):
- 12:37 AM Changeset in webkit [279052] by
-
- 3 edits in trunk/Source/JavaScriptCore
Fix speculated type in the one-argument overload of speculateNeitherDoubleNorHeapBigIntNorString
https://bugs.webkit.org/show_bug.cgi?id=227119
Reviewed by Yusuke Suzuki.
Same problem as bug 226786: a missing check for HeapBigInt in the speculateNeitherDoubleNorHeapBigIntNorString function introduced in 226676.
I also rewrote the SpeculatedType for NeitherDoubleNorHeapBigIntNorString in typeFilterFor for readability. The old and the new SpeculatedType are perfectly identical, it is just a different (and in my view more readable) way of writing it.
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::speculateNeitherDoubleNorHeapBigIntNorString):
- dfg/DFGUseKind.h:
(JSC::DFG::typeFilterFor):
Jun 19, 2021:
- 7:05 PM Changeset in webkit [279051] by
-
- 5 edits in trunk/Source/WTF
Adopt Span in Base64.h
https://bugs.webkit.org/show_bug.cgi?id=227132
Reviewed by Chris Dumez.
Replaces overloads taking Vectors with ones taking Spans
and add overloads for Span<const std::byte> which all the
others are now implemented in terms of. This is useful since
any Span can be turned into one of type Span<const std::byte>
just by calling asBytes(existingSpan).
This leaves most of the existing overloads in place (though
simplifies them by implementing them as Span contructions)
though we should consider removing some in a separate pass.
- wtf/Vector.h:
Add value_type typedef so that Vector<T> can be automatically
deduced as Span<T>.
- wtf/text/CString.h:
Add bytes() and bytesInludingNullTerminator() (only the former
is used in this patch, but the later will be needed shortly)
which return Span<const uint8_t> of the CString. I chose to use
an explicit function, rather than making it converible to Span
like Vector, because some callers will want the null terminator
and some will not.
- wtf/text/Base64.cpp:
- wtf/text/Base64.h:
Canonicalize all input buffers either as a Span<const std::byte> or
a StringView, making all the other overloads just forward to one of
those two (String -> StringView, everything else -> Span<const std::byte>).
Clean up the header a bit by putting all the declarations at the top of
the file.
- 1:31 PM Changeset in webkit [279050] by
-
- 40 edits in trunk
Fix CSS serialization issues affecting css-counter-styles tests
https://bugs.webkit.org/show_bug.cgi?id=226708
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-counter-styles/counter-style-additive-symbols-syntax-expected.txt:
- web-platform-tests/css/css-counter-styles/counter-style-symbols-syntax-expected.txt:
- web-platform-tests/css/css-syntax/url-whitespace-consumption-expected.txt:
Updated to reflect progressions.
Source/WebCore:
Fix two serialization isssues affecting css-counter-styles tests:
1) URLs were serializing the full resolved URL, rather than the
partial URL string from the style sheet.
2) Items in additive-symbols that had both an integer and a string
would incorrectly serialize with a comma within the item.
- css/CSSCrossfadeValue.cpp:
(WebCore::CSSCrossfadeValue::valueWithStylesResolved): Added.
Calls resolveImageStyles on the image values.
- css/CSSCrossfadeValue.h: Updated for the above.
- css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::CSSCursorImageValue): Changed the hot spot
to use std::optional instead of a separate boolean.
(WebCore::CSSCursorImageValue::create): Moved this out of the header
because it's not better for inlining to have it there.
(WebCore::CSSCursorImageValue::customCSSText const): Updated for the
m_hotSpot changes.
(WebCore::CSSCursorImageValue::updateCursorElement): Removed unneeded
check of hasFragmentIdentifier, which is already done by the
SVGURIReference::targetElementFromIRIString function. Updated to use
m_originalSpecifiedURLString, and added a FIXME about the strange way
this just keeps accumulating more and more clients in a set, but did
not change that behavior.
(WebCore::CSSCursorImageValue::cursorElementRemoved): Added a FIXME.
(WebCore::CSSCursorImageValue::cursorElementChanged): Updated for the
change to m_hotSpot and addded some FIXME.
(WebCore::CSSCursorImageValue::equals const): Updated for the m_hotSpot
change; much simpler since std::optional does the right thing.
(WebCore::CSSCursorImageValue::valueWithStylesResolved): Added.
Calls resolveImageStyles on the image value.
- css/CSSCursorImageValue.h: Updated for the above changes.
- css/CSSFilterImageValue.cpp:
(WebCore::CSSFilterImageValue::valueWithStylesResolved): Added.
Calls resolveImageStyles on the image value and also calls
createFilterOperations.
- css/CSSFilterImageValue.h: Updated for the above.
- css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::valueWithStylesResolved): Renamed from
gradientWithStylesResolved.
- css/CSSGradientValue.h: Updated for the above.
- css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::valueWithStylesResolved): Renamed from
imageSetWithStylesResolved. Optimized the case where the resolved
version is not different to re-use the original CSSImageSetValue.
- css/CSSImageSetValue.h: Updated for the above.
- css/CSSImageValue.cpp:
(WebCore::operator==): Added. Check if two ResolvedURL are equal.
(WebCore::makeResolvedURL): Added. Make a ResolvedURL from an
existing URL without the original specified string.
(WebCore::CSSImageValue::CSSImageValue): Take ResolvedURL instead
of a URL. Also updated to use std::optional instead of a separate
m_accessedImage boolean.
(WebCore::CSSImageValue::create): Added an overload that takes
ResolvedURL argument and also moved here from the header since we
don't get any benefit from inlining.
(WebCore::CSSImageValue::isPending const): Updates since m_cachedImage
is now a std::optional, and the std::nullopt case is used for this.
(WebCore::CSSImageValue::reresolvedURL const): Added. Used so we can
share code between the following functions.
(WebCore::CSSImageValue::valueWithStylesResolved): Added. Computes
the fully resolved URL and makes a new image value if needed that
always uses it. Also points the new value at the old one so we can
update m_cachedImage in both.
(WebCore::CSSImageValue::loadImage): Use the new reresolvedURL function.
Also update m_cachedImage in any underlying objects.
(WebCore::CSSImageValue::traverseSubresources): Updated for change
to m_cachedImage.
(WebCore::CSSImageValue::equals const): Updated for change to use
ResolvedURL.
(WebCore::CSSImageValue::customCSSText const): Ditto. This is the
only place where we use specifiedURLString.
(WebCore::CSSImageValue::createDeprecatedCSSOMWrapper const): Updated
for change from m_url.
(WebCore::CSSImageValue::knownToBeOpaque const): Updated for change
to m_cachedImage.
- css/CSSImageValue.h: Added ResolvedURL, new create
overloads. Replaced url() function with location() function, which
returns a string. Note that this always returns the resolved string,
only customCSSText returns the original string. Replaced m_url with
m_location, eliminated m_accessedImage and made m_cachedImage use
std::optional instead. Added m_unresolvedValue.
- css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::completeURL const): Deleted unused function.
- css/StyleSheetContents.h: Ditto.
- css/parser/CSSParserContext.cpp:
(WebCore::CSSParserContext::completeURL const): Updated to return
ResolvedURL instead of a URL.
- css/parser/CSSParserContext.h: Ditto.
- css/parser/CSSParserIdioms.cpp:
(WebCore::completeURL): Deleted unused function.
- css/parser/CSSParserIdioms.h: Ditto.
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeCursor): Use std::optional for the hot spot.
(WebCore::consumeCounterStyleAdditiveSymbols): Put the integer/symbol
pair into a separate space-separated list instead of appending both
to the top level command-separated list. Also removed support for
non-standard "image without symbol" and "symbol without image".
Neither the specification nor the web platform tests currently call
for that.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeImage): Call the new
overload of CSSImageValue::create, passing a ResolvedURL.
- css/parser/CSSPropertyParserWorkerSafe.cpp:
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontFaceSrcURI):
Update for the change to completeURL and refactor a bit. Later we could
make the same kind of fix for CSSFontFaceSrcValue that we did in this
patch for CSSImageValue, but did not try that for now.
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::addCursor): Updated to take a std::optional for
the hot spot.
- rendering/style/RenderStyle.h: Ditto.
- rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::imageURL): Updated for CSSImageValue::imageURL.
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyValueContent): Call
resolveImageStyles consistently.
- style/StyleBuilderState.cpp:
(WebCore::Style::BuilderState::resolveImageStyles): Call the new
valueWithStylesResolved function on all the different image value
types. This unifies the approach across all 6 classes.
(WebCore::Style::BuilderState::createStyleImage): Tweaked style.
LayoutTests:
- fast/css/parse-border-image-repeat-null-crash-expected.txt: Update to reflect correct
path; the path is not really relevant to what was being tested here either way.
- fast/css/uri-token-parsing-expected.txt: Updated to expect behavior that is sensible
and also matches Firefox.
- fast/css/uri-token-parsing.html: Ditto.
- fast/fast/css/url-with-multi-byte-unicode-escape-expected.txt: Updated to expect that
URL is still encoded as UTF-8, not yet re-URL-encoded as it will be for loading. The
one that will be used for loading can still be seen in computed style. The test still
covers correclty parsig this URL.
- fast/fast/css/url-with-multi-byte-unicode-escape.html: Ditto.
- fast/filter-image/parse-filter-image-expected.txt: Updated to no longer test addition
of trailing slashes to peculiar URLs that are made by using filenames as host names.
Now this checks URLs that just contain filenames, which makes more logical sense, and
no trailing slash addition is expected.
- fast/filter-image/parse-filter-image.html: Ditto.
- fast/innerHTML/innerHTML-uri-resolution.html: Updated test to use computed style so
it no longer depends on WebKit-only behavior to run correctly.
- 1:25 AM Changeset in webkit [279049] by
-
- 13 edits in trunk/Source/JavaScriptCore
[Revert r278576] Put the Baseline JIT prologue and op_loop_hint code in JIT thunks.
https://bugs.webkit.org/show_bug.cgi?id=226375
Not reviewed.
Suspect regresses Speedometer2.
- assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::untagReturnAddress):
(JSC::AbstractMacroAssembler::untagReturnAddressWithoutExtraValidation): Deleted.
- assembler/MacroAssemblerARM64E.h:
(JSC::MacroAssemblerARM64E::untagReturnAddress):
(JSC::MacroAssemblerARM64E::untagReturnAddressWithoutExtraValidation): Deleted.
- assembler/MacroAssemblerARMv7.h:
- assembler/MacroAssemblerMIPS.h:
- bytecode/CodeBlock.h:
(JSC::CodeBlock::addressOfNumParameters):
(JSC::CodeBlock::offsetOfNumParameters):
(JSC::CodeBlock::offsetOfInstructionsRawPointer):
(JSC::CodeBlock::offsetOfNumCalleeLocals): Deleted.
(JSC::CodeBlock::offsetOfNumVars): Deleted.
(JSC::CodeBlock::offsetOfArgumentValueProfiles): Deleted.
(JSC::CodeBlock::offsetOfShouldAlwaysBeInlined): Deleted.
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitSaveCalleeSavesFor):
(JSC::AssemblyHelpers::emitSaveCalleeSavesForBaselineJIT): Deleted.
(JSC::AssemblyHelpers::emitRestoreCalleeSavesForBaselineJIT): Deleted.
- jit/JIT.cpp:
(JSC::JIT::compileAndLinkWithoutFinalizing):
(JSC::JIT::privateCompileExceptionHandlers):
(JSC::prologueGeneratorSelector): Deleted.
(JSC::JIT::prologueGenerator): Deleted.
(JSC::JIT::arityFixupPrologueGenerator): Deleted.
- jit/JIT.h:
- jit/JITInlines.h:
(JSC::JIT::emitNakedNearCall):
- jit/JITOpcodes.cpp:
(JSC::JIT::op_ret_handlerGenerator):
(JSC::JIT::emit_op_enter):
(JSC::JIT::op_enter_handlerGenerator):
(JSC::JIT::emit_op_loop_hint):
(JSC::JIT::emitSlow_op_loop_hint):
(JSC::JIT::op_enter_Generator): Deleted.
(JSC::JIT::op_enter_canBeOptimized_Generator): Deleted.
(JSC::JIT::op_enter_cannotBeOptimized_Generator): Deleted.
(JSC::JIT::op_loop_hint_Generator): Deleted.
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_enter):
- jit/ThunkGenerators.cpp:
(JSC::popThunkStackPreservesAndHandleExceptionGenerator):
- 12:19 AM Changeset in webkit [279048] by
-
- 6 edits in trunk
Unreviewed, reverting r278699.
https://bugs.webkit.org/show_bug.cgi?id=227174
Regressed JetStream2/WSL
Reverted changeset:
"[JSC] Remove useDataICInOptimizingJIT option"
https://bugs.webkit.org/show_bug.cgi?id=226862
https://trac.webkit.org/changeset/278699