Branch: refs/heads/webkitglib/2.40
Home: https://github.com/WebKit/WebKit
Commit: 05b9320a72ca404b5193f81f8394b81a2782d94c
https://github.com/WebKit/WebKit/commit/05b9320a72ca404b5193f81f8394b81a2782d94c
Author: Philippe Normand <[email protected]>
Date: 2023-04-05 (Wed, 05 Apr 2023)
Changed paths:
M Source/WebCore/platform/graphics/gstreamer/VideoFrameGStreamer.cpp
Log Message:
-----------
Cherry-pick 262500@main (08d1bd527b97).
https://bugs.webkit.org/show_bug.cgi?id=254892
REGRESSION(259869@main): [GStreamer][WebCodecs] 2 tests now crashing
https://bugs.webkit.org/show_bug.cgi?id=254892
Reviewed by Žan Doberšek.
Ensure the Cairo surface wrapped in the GstBuffer remains alive as long as
the buffer, otherwise we
might attempt to unref/destroy a surface that was previously unreffed
elsewhere.
* Source/WebCore/platform/graphics/gstreamer/VideoFrameGStreamer.cpp:
(WebCore::VideoFrame::fromNativeImage):
Canonical link: https://commits.webkit.org/262500@main
Commit: bbf35fce73dd9f17d72d5f438db5f3db32b2fcaa
https://github.com/WebKit/WebKit/commit/bbf35fce73dd9f17d72d5f438db5f3db32b2fcaa
Author: Myles C. Maxfield <[email protected]>
Date: 2023-04-05 (Wed, 05 Apr 2023)
Changed paths:
A LayoutTests/http/tests/text/primary-font-interstitial-expected.html
A LayoutTests/http/tests/text/primary-font-interstitial.html
A LayoutTests/http/tests/text/resources/Gulf-regular.ttf
M Source/WebCore/platform/graphics/FontCascadeFonts.h
M Source/WebCore/platform/graphics/FontRanges.h
Log Message:
-----------
Cherry-pick 262464@main (7ba7f4d9fb85).
https://bugs.webkit.org/show_bug.cgi?id=244757
unicode-range may cause us to use Times's font metrics erroneously
https://bugs.webkit.org/show_bug.cgi?id=244757
Reviewed by Darin Adler.
When we lay out a line, we use the metrics of the primary font inside our
computation to determine line height.
If the content just says `font-family: a, b`; then it's clear that `a` is
the primary font. However, `a` can
actually be a composite font, as such:
```
@font-face {
font-family: a;
src: url("MyFont.ttf");
unicode-range: some range;
}
@font-face {
font-family: a;
src: url("MyOtherFont.ttf");
unicode-range: a distinct range that doesn't intersect the other font's
range;
}
```
In this situation, when laying out a line, should we use the metrics from
MyFont.ttf or MyOtherFont.ttf?
The spec isn't prescriptive here, so it's kind of up to us to determine
what to do. What we actually do is
from FontCascadeFonts::primaryFont():
A) If one of the `unicode-range`s includes the space character, use that
one (last one wins if there are
multiple). If we need to download this font, do so.
B) If none of the `unicode-range`s includes the space character, then use
the last @font-face block, but
set the flag to forbid downloads from occuring.
When we ask for a font that hasn't finished loading yet, the font object we
get back is an "interstitial"
font, which just means it's a temporary invisible font to use until the
real one finishes downloading. The
interstitial font is hardcoded to always be Times. When we set the flag to
forbid downloads from occurring,
the font we get back is this "interstitial" font, but we'll never switch
from the interstitial font to the
real one - because the real one will never finish downloading because it
never started downloading! So we
just use the metrics from Times indefinitely, which is a surprising result!
The solution here is just to allow downloads in both cases A) and B) above.
By allowing downloads in case
B), we start the font loading process which means we'll eventually switch
off of using Times's metrics.
Test: http/tests/text/primary-font-interstitial.html
* LayoutTests/http/tests/text/primary-font-interstitial-expected.html:
Added.
* LayoutTests/http/tests/text/primary-font-interstitial.html: Added.
* LayoutTests/http/tests/text/resources/Gulf-regular.ttf: Added.
* Source/WebCore/platform/graphics/FontCascadeFonts.h:
(WebCore::FontCascadeFonts::primaryFont):
Canonical link: https://commits.webkit.org/262464@main
Commit: c522d2cda125612c6672d13ab0384476581efefe
https://github.com/WebKit/WebKit/commit/c522d2cda125612c6672d13ab0384476581efefe
Author: Diego Pino Garcia <[email protected]>
Date: 2023-04-05 (Wed, 05 Apr 2023)
Changed paths:
M Source/WebKit/WebProcess/WebProcess.h
Log Message:
-----------
Cherry-pick 262405@main (84f510837198).
https://bugs.webkit.org/show_bug.cgi?id=252988
[GTK] Unreviewed, build fix for Ubuntu 20.04 after 262210@main
https://bugs.webkit.org/show_bug.cgi?id=252988
Variable 'm_displayForCompositing' was not declared for condition
PLATFORM(GTK) && USE(EGL).
* Source/WebKit/WebProcess/WebProcess.h:
Canonical link: https://commits.webkit.org/262405@main
Commit: 0f48cc5d8f80c195c3f66d840341ab91e393902c
https://github.com/WebKit/WebKit/commit/0f48cc5d8f80c195c3f66d840341ab91e393902c
Author: Youenn Fablet <[email protected]>
Date: 2023-04-05 (Wed, 05 Apr 2023)
Changed paths:
M Source/WebKit/WebProcess/Inspector/RemoteWebInspectorUI.cpp
M Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp
M Source/WebKit/WebProcess/Inspector/WebInspectorUIExtensionController.cpp
M Source/WebKit/WebProcess/Inspector/WebInspectorUIExtensionController.h
M Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp
M Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp
M Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebBadgeClient.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebPermissionController.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp
M Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.cpp
M Source/WebKit/WebProcess/WebPage/WebFrame.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebPage/WebPageOverlay.cpp
M Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.cpp
M Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.cpp
Log Message:
-----------
Cherry-pick 262156@main (e800fd7a7833).
https://bugs.webkit.org/show_bug.cgi?id=254505
Update WebPage::fromCorePage similarly to WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=254505
rdar://problem/107259664
Reviewed by Alex Christensen.
Check that chorme client is not an empty client inside CorePage.
Update call sites accordingly.
* Source/WebKit/WebProcess/Inspector/RemoteWebInspectorUI.cpp:
(WebKit::RemoteWebInspectorUI::initialize):
* Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::establishConnection):
* Source/WebKit/WebProcess/Inspector/WebInspectorUIExtensionController.cpp:
(WebKit::WebInspectorUIExtensionController::WebInspectorUIExtensionController):
* Source/WebKit/WebProcess/Inspector/WebInspectorUIExtensionController.h:
* Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::broadcastConsoleMessage):
* Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::tryLoadingUsingURLSchemeHandler):
(WebKit::WebLoaderStrategy::pageLoadCompleted):
(WebKit::WebLoaderStrategy::browsingContextRemoved):
(WebKit::WebLoaderStrategy::setResourceLoadSchedulingMode):
* Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::focusServiceWorkerClient):
* Source/WebKit/WebProcess/WebCoreSupport/WebBadgeClient.cpp:
(WebKit::WebBadgeClient::setAppBadge):
(WebKit::WebBadgeClient::setClientBadge):
* Source/WebKit/WebProcess/WebCoreSupport/WebPermissionController.cpp:
(WebKit::WebPermissionController::query):
* Source/WebKit/WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:
(WebKit::WebResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
* Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::VisitedLinkTableController::addVisitedLink):
* Source/WebKit/WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::page const):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::fromCorePage):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPageOverlay.cpp:
(WebKit::WebPageOverlay::willMoveToPage):
(WebKit::WebPageOverlay::didMoveToPage):
* Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::copy):
* Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.cpp:
(WebKit::WebStorageNamespaceProvider::sessionStorageNamespace):
(WebKit::WebStorageNamespaceProvider::copySessionStorageNamespace):
* Source/WebKit/WebProcess/cocoa/LaunchServicesDatabaseManager.mm:
(WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):
Canonical link: https://commits.webkit.org/262156@main
Commit: 80a2146f3a6f779309568b479b4556df1da3d670
https://github.com/WebKit/WebKit/commit/80a2146f3a6f779309568b479b4556df1da3d670
Author: Ryosuke Niwa <[email protected]>
Date: 2023-04-05 (Wed, 05 Apr 2023)
Changed paths:
A
LayoutTests/editing/execCommand/insert-list-move-paragraph-display-contents-crash-expected.txt
A
LayoutTests/editing/execCommand/insert-list-move-paragraph-display-contents-crash.html
M Source/WebCore/editing/InsertListCommand.cpp
Log Message:
-----------
Cherry-pick 262051@main (6e4c6ef4ca8a).
https://bugs.webkit.org/show_bug.cgi?id=254375
Assertion failure in CompositeEditCommand::moveParagraph via
InsertListCommand::listifyParagraph
https://bugs.webkit.org/show_bug.cgi?id=254375
Reviewed by Wenson Hsieh.
https://commits.webkit.org/70668@main made
InsertListCommand::listifyParagraph to cross editing boundaries
to look for the start & the end of the current paragraph so that we can
include non-editable inline content.
This, however, is inconsistent with CompositeEditCommand::moveParagraph's
precondition that startOfParagraph
is the start of paragraph without crossing editing boundaries.
This patch addresses this precondition by calling startOfParagraph and
endOfParagraph for the second time
without specifying CanSkipOverEditingBoundary.
*
LayoutTests/editing/execCommand/insert-list-move-paragraph-display-contents-crash-expected.txt:
Added.
*
LayoutTests/editing/execCommand/insert-list-move-paragraph-display-contents-crash.html:
Added.
* Source/WebCore/editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::listifyParagraph):
Canonical link: https://commits.webkit.org/262051@main
Commit: 861e946097ddb9940e1870a0211f00488aed2238
https://github.com/WebKit/WebKit/commit/861e946097ddb9940e1870a0211f00488aed2238
Author: Sihui Liu <[email protected]>
Date: 2023-04-05 (Wed, 05 Apr 2023)
Changed paths:
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
Log Message:
-----------
Cherry-pick 261336@main (945b8f4da6d3).
https://bugs.webkit.org/show_bug.cgi?id=253487
WebPage::startTextManipulations returns without invoking completionHandler
https://bugs.webkit.org/show_bug.cgi?id=253487
rdar://106347676
Reviewed by Ryosuke Niwa.
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::startTextManipulations):
Canonical link: https://commits.webkit.org/261336@main
Commit: 95ac0bd5e81f6cfba816525ec90e213da8c13f40
https://github.com/WebKit/WebKit/commit/95ac0bd5e81f6cfba816525ec90e213da8c13f40
Author: Ahmad Saleem <[email protected]>
Date: 2023-04-05 (Wed, 05 Apr 2023)
Changed paths:
A LayoutTests/fast/scrolling/scroll-max-value-expected.txt
A LayoutTests/fast/scrolling/scroll-max-value.html
M Source/WebCore/rendering/RenderTextControlSingleLine.cpp
Log Message:
-----------
Cherry-pick 261121@main (393d4a1bb437).
https://bugs.webkit.org/show_bug.cgi?id=250383
Adjust text input scrollWidth and scrollHeight to include padding and any
whitespace added by decorations
https://bugs.webkit.org/show_bug.cgi?id=250383
rdar://problem/104332108
Reviewed by Alan Baradlay.
This patch is to align WebKit with Blink / Chromium and Gecko / Firefox.
Merge - https://src.chromium.org/viewvc/blink?view=revision&revision=186123
This patch modifies "ScrollWidth" and "ScrollHeight" functions to ensure
that
scrollLeft (and similarly scrollTop) is always within range [0, scrollWidth
- clientWidth]
and padding and whitespaces added by decorations are accounted.
* Source/WebCore/rendering/RenderTextControlSingleLine.cpp:
(RenderTextConrolSingleLine::scrollWidth):
(RenderTextConrolSingleLine::scrollHeight):
* LayoutTests/fast/scrolling/scroll-max-value.html: Add Test Case
* LayoutTests/fast/scrolling/scroll-max-value-expected.txt: Add Test Case
Expectation
Canonical link: https://commits.webkit.org/261121@main
Commit: d0ab3516a0787a31752dcdbb7331fedb9efd32fb
https://github.com/WebKit/WebKit/commit/d0ab3516a0787a31752dcdbb7331fedb9efd32fb
Author: Chris Dumez <[email protected]>
Date: 2023-04-05 (Wed, 05 Apr 2023)
Changed paths:
M Source/WebCore/bindings/js/JSDOMWindowBase.cpp
M Source/WebCore/bindings/js/JSDOMWindowBase.h
Log Message:
-----------
Cherry-pick 261145@main (34d9c5fdefdb).
https://bugs.webkit.org/show_bug.cgi?id=253296
Use tighter typing for value returned by
JSDOMWindowBase::scriptExecutionContext()
https://bugs.webkit.org/show_bug.cgi?id=253296
Reviewed by Sihui Liu.
* Source/WebCore/bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::scriptExecutionContext const):
* Source/WebCore/bindings/js/JSDOMWindowBase.h:
Canonical link: https://commits.webkit.org/261145@main
Commit: 545e08cc5e92a3f43816bfc8af5c002a80de85e5
https://github.com/WebKit/WebKit/commit/545e08cc5e92a3f43816bfc8af5c002a80de85e5
Author: Antti Koivisto <[email protected]>
Date: 2023-04-05 (Wed, 05 Apr 2023)
Changed paths:
M Source/WebCore/style/AttributeChangeInvalidation.cpp
Log Message:
-----------
Cherry-pick 261076@main (2c5baee03fa2).
https://bugs.webkit.org/show_bug.cgi?id=253067
nullptr crash in WebCore::SelectorChecker::attributeSelectorMatches
https://bugs.webkit.org/show_bug.cgi?id=253067
rdar://105628059
Reviewed by Geoffrey Garen and Alan Baradlay.
Speculative fix.
* Source/WebCore/style/AttributeChangeInvalidation.cpp:
(WebCore::Style::AttributeChangeInvalidation::invalidateStyle):
Check that we actually have an attribute selector.
Canonical link: https://commits.webkit.org/261076@main
Commit: 6d8bb8ce13fb954eafd80f7912d71787ea8447ad
https://github.com/WebKit/WebKit/commit/6d8bb8ce13fb954eafd80f7912d71787ea8447ad
Author: Chirag M Shah <[email protected]>
Date: 2023-04-06 (Thu, 06 Apr 2023)
Changed paths:
M Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h
Log Message:
-----------
Cherry-pick 261817@main (52c77eeabac7).
https://bugs.webkit.org/show_bug.cgi?id=254045
Fix smart pointer usage when dealing with ScriptExecutionContext
https://bugs.webkit.org/show_bug.cgi?id=254045
rdar://106721110
Reviewed by Ryosuke Niwa.
This change fixes uses of ScriptExecutionContext so that it conforms
with the smart pointer usage guidelines.
* Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h:
Canonical link: https://commits.webkit.org/261817@main
Commit: 79b2722fd578a4cfdf4cac09a1d0678e7089818d
https://github.com/WebKit/WebKit/commit/79b2722fd578a4cfdf4cac09a1d0678e7089818d
Author: Chris Dumez <[email protected]>
Date: 2023-04-06 (Thu, 06 Apr 2023)
Changed paths:
A
LayoutTests/http/wpt/html/cross-origin-embedder-policy/cached-iframe-require-corp.https-expected.txt
A
LayoutTests/http/wpt/html/cross-origin-embedder-policy/cached-iframe-require-corp.https.html
A
LayoutTests/http/wpt/html/cross-origin-embedder-policy/cached-iframe-require-corp.https.html.headers
A
LayoutTests/http/wpt/html/cross-origin-embedder-policy/resources/require-corp-cacheable-iframe.html
A
LayoutTests/http/wpt/html/cross-origin-embedder-policy/resources/require-corp-cacheable-iframe.html.headers
M Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp
Log Message:
-----------
Cherry-pick 261924@main (38e9c1ce273d).
https://bugs.webkit.org/show_bug.cgi?id=254065
Cross-Origin-Embedder-Policy incorrectly blocks iframe on cache hit
https://bugs.webkit.org/show_bug.cgi?id=254065
Reviewed by Youenn Fablet.
iframe loads served by the HTTP disk cache would fail
Cross-Origin-Embedder-Policy
(COEP) validation because
shouldInterruptLoadForCSPFrameAncestorsOrXFrameOptions()
was doing the checks using `m_response` instead of the `response` that is
passed
in argument. `m_response` has not yet been updated to be the same as
`response`
in the case where the response comes from the disk cache.
*
LayoutTests/http/wpt/html/cross-origin-embedder-policy/cached-iframe-require-corp.https-expected.txt:
Added.
*
LayoutTests/http/wpt/html/cross-origin-embedder-policy/cached-iframe-require-corp.https.html:
Added.
*
LayoutTests/http/wpt/html/cross-origin-embedder-policy/cached-iframe-require-corp.https.html.headers:
Added.
*
LayoutTests/http/wpt/html/cross-origin-embedder-policy/resources/require-corp-cacheable-iframe.html:
Added.
*
LayoutTests/http/wpt/html/cross-origin-embedder-policy/resources/require-corp-cacheable-iframe.html.headers:
Added.
* Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::shouldInterruptLoadForCSPFrameAncestorsOrXFrameOptions):
Canonical link: https://commits.webkit.org/261924@main
Commit: e4b5fe0057c51f45a5c385e9a5d27c47e68b4f24
https://github.com/WebKit/WebKit/commit/e4b5fe0057c51f45a5c385e9a5d27c47e68b4f24
Author: Razvan Caliman <[email protected]>
Date: 2023-04-06 (Thu, 06 Apr 2023)
Changed paths:
M Source/WebInspectorUI/UserInterface/Models/DOMNodeStyles.js
M
Source/WebInspectorUI/UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js
Log Message:
-----------
Cherry-pick 261883@main (96c03ed0c66b).
https://bugs.webkit.org/show_bug.cgi?id=253956
Web Inspector: Styles Panel: Adding a new CSS rule doesn't work on first
attempt
https://bugs.webkit.org/show_bug.cgi?id=253956
Reviewed by Patrick Angle.
To add a new CSS rule, an inspector stylesheet is first created.
This operation triggers a `DOMNodeStyles.refresh()`.
The operation to add the new rule to this stylesheet also triggers a
refresh. But if the promise for the first refresh is still pending,
the second call is ignored. This means that the Styles panel ends up
not showing any matching styles from the initially empty stylehseet.
A subsequent call to add a new rule bypasses the need to create a new
stylesheet. The `DOMNodeStyles.refresh()` it trigges brings the Styles
panel in sync with the latest contents of the inspector-generated
stylehseet.
That's why two rules show up on the first successful attempt.
The logic to mark the newly created rule's selector as editable is too
lenient:
it marks all CSS rules with a selector identical to the one of the newly
created rule.
This patch makes a stricter check by identifying the newly created rule by
its `CSSStyle.styleId`.
* Source/WebInspectorUI/UserInterface/Models/DOMNodeStyles.js:
(WI.DOMNodeStyles.prototype.addRule.completed):
(WI.DOMNodeStyles.prototype.addRule.addedRule):
*
Source/WebInspectorUI/UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
(WI.SpreadsheetRulesStyleDetailsPanel):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationSectionAddNewRule):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype._addNewRule):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype._addedNewRuleCallback):
Canonical link: https://commits.webkit.org/261883@main
Commit: b23ec50b9c1a434ecc4d5de02f8bea0491b99c67
https://github.com/WebKit/WebKit/commit/b23ec50b9c1a434ecc4d5de02f8bea0491b99c67
Author: Said Abou-Hallawa <[email protected]>
Date: 2023-04-06 (Thu, 06 Apr 2023)
Changed paths:
M LayoutTests/css3/filters/effect-blur-hw.html
M LayoutTests/css3/filters/effect-blur.html
M LayoutTests/css3/filters/effect-combined.html
A LayoutTests/css3/filters/svg-morphology-clipped-expected.html
A LayoutTests/css3/filters/svg-morphology-clipped.html
M LayoutTests/fast/filter-image/filter-image-blur-expected.html
M LayoutTests/fast/filter-image/filter-image-blur.html
M LayoutTests/fast/filter-image/resources/svg-blur.svg
M LayoutTests/fast/filter-image/resources/svg-noblur.svg
A LayoutTests/fast/hidpi/filters-drop-shadow-expected.html
A LayoutTests/fast/hidpi/filters-drop-shadow.html
M
LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filter-region-transformed-child-001-expected.html
M Source/WebCore/platform/graphics/filters/Filter.cpp
M Source/WebCore/platform/graphics/filters/Filter.h
M Source/WebCore/platform/graphics/filters/FilterEffect.cpp
M Source/WebCore/rendering/CSSFilter.cpp
M Source/WebCore/rendering/CSSFilter.h
M Source/WebCore/rendering/RenderLayerFilters.cpp
M Source/WebCore/rendering/style/StyleFilterImage.cpp
M Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp
M Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp
M Source/WebCore/svg/SVGFEMorphologyElement.cpp
M Source/WebCore/svg/SVGFEMorphologyElement.h
M Source/WebCore/svg/graphics/filters/SVGFilter.cpp
M Source/WebCore/svg/graphics/filters/SVGFilter.h
M Source/WebCore/svg/graphics/filters/SVGFilterGraph.h
M Source/WebKit/Shared/WebCoreArgumentCoders.cpp
Log Message:
-----------
Cherry-pick 261827@main (7acdd2650a9b).
https://bugs.webkit.org/show_bug.cgi?id=254062
[Filters] Calculating the CSSFilter geometry and clipping sometimes is
incorrect
https://bugs.webkit.org/show_bug.cgi?id=254062
rdar://106844401
Reviewed by Simon Fraser.
Like SVGFilter, CSSFilter should always intersect the FilterEffect
imageRect with
its primitiveSubregion. This will require:
1. Filter::ClipOperation will be removed.
2. Filter::clipToMaxEffectRect() will always clip the rectangle with
maxEffectRect.
3. FilterEffect::calculateImageRect() will return the maxEffectRect if
number of
input effects is zero. This was a bug which was covered by the union
mode of
Filter::clipToMaxEffectRect().
4. RenderLayerFilters::beginFilterEffect() should set its targetBoundingBox
the
sourceImageRect of FilterTargetSwitcher.
5. SVGFilterGraph::getNamedNodes() should not return an error if one of the
inputs
is builtin and there is no node for it. This happens when we build a
graph of
primitives and one of the inputs is SourceGraphic or SourceAlpha. In
this case
we just need to ignore this input since there is no built-in primitive
for it.
This fixes the calculation of the filter outsets which was covered by
the union
mode of Filter::clipToMaxEffectRect().
6. SVGFEMorphologyElement::outsets() needs to implemented. This is a bug
which was
covered by the union mode of Filter::clipToMaxEffectRect().
Note: This work is towards enabling the GraphicsContext filters. The
clipping has
to fixed first since no intermidate buffers are used to apply the CSSFilter.
* LayoutTests/css3/filters/effect-blur-hw.html:
* LayoutTests/css3/filters/effect-blur.html:
* LayoutTests/css3/filters/effect-combined.html:
* LayoutTests/css3/filters/svg-morphology-clipped-expected.html: Added.
* LayoutTests/css3/filters/svg-morphology-clipped.html: Added.
* LayoutTests/fast/filter-image/filter-image-blur-expected.html:
* LayoutTests/fast/filter-image/filter-image-blur.html:
* LayoutTests/fast/filter-image/resources/svg-blur.svg:
* LayoutTests/fast/filter-image/resources/svg-noblur.svg:
* LayoutTests/fast/hidpi/filters-drop-shadow-expected.html: Added.
* LayoutTests/fast/hidpi/filters-drop-shadow.html: Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filter-region-transformed-child-001-expected.html:
* Source/WebCore/platform/graphics/filters/Filter.cpp:
(WebCore::Filter::Filter):
(WebCore::Filter::clipToMaxEffectRect const):
* Source/WebCore/platform/graphics/filters/Filter.h:
(WebCore::Filter::Filter):
(WebCore::Filter::clipOperation const): Deleted.
(WebCore::Filter::setClipOperation): Deleted.
* Source/WebCore/platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::calculateImageRect const):
* Source/WebCore/rendering/CSSFilter.cpp:
(WebCore::CSSFilter::create):
(WebCore::CSSFilter::CSSFilter):
(WebCore::createBlurEffect):
(WebCore::createReferenceFilter):
(WebCore::CSSFilter::buildFilterFunctions):
* Source/WebCore/rendering/CSSFilter.h:
* Source/WebCore/rendering/RenderLayerFilters.cpp:
(WebCore::RenderLayerFilters::beginFilterEffect):
* Source/WebCore/rendering/style/StyleFilterImage.cpp:
(WebCore::StyleFilterImage::image const):
* Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
* Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGResourceContainer):
* Source/WebCore/svg/SVGFEMorphologyElement.cpp:
(WebCore::SVGFEMorphologyElement::outsets const):
* Source/WebCore/svg/SVGFEMorphologyElement.h:
* Source/WebCore/svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::create):
(WebCore::SVGFilter::SVGFilter):
* Source/WebCore/svg/graphics/filters/SVGFilter.h:
* Source/WebCore/svg/graphics/filters/SVGFilterGraph.h:
(WebCore::SVGFilterGraph::SVGFilterGraph):
(WebCore::SVGFilterGraph::sourceGraphic const):
(WebCore::SVGFilterGraph::sourceAlpha const):
(WebCore::SVGFilterGraph::addNamedNode):
(WebCore::SVGFilterGraph::getNamedNode const):
(WebCore::SVGFilterGraph::getNamedNodes const):
(WebCore::SVGFilterGraph::isSourceName):
* Source/WebKit/Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<Filter>::encode):
(IPC::ArgumentCoder<Filter>::decode):
Canonical link: https://commits.webkit.org/261827@main
Commit: 903c9c543610efc983a0594a6ce03f25aa551d42
https://github.com/WebKit/WebKit/commit/903c9c543610efc983a0594a6ce03f25aa551d42
Author: Tadeu Zagallo <[email protected]>
Date: 2023-04-06 (Thu, 06 Apr 2023)
Changed paths:
A JSTests/stress/tdz-check-catch-read.js
M Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
Log Message:
-----------
Cherry-pick 261006@main (e7b74be2715f).
https://bugs.webkit.org/show_bug.cgi?id=253142
[JSC] ResolveNode can't always skip the extra move
https://bugs.webkit.org/show_bug.cgi?id=253142
rdar://106076478
Reviewed by Keith Miller.
In http://commits.webkit.org/260555@main I landed an optimization avoid the
extra
move in ResolveNode. However, that's not valid when we actually need the
TDZ check.
If the check fails, we throw an exception, but we already wrote to the
destination.
As a compromise, we still avoid the move unless we actually need the TDZ
check.
* JSTests/stress/tdz-check-catch-read.js: Added.
(f):
* Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:
(JSC::ResolveNode::emitBytecode):
Canonical link: https://commits.webkit.org/261006@main
Commit: c9c32c15c20e727f8ca0134be5d78793298104a1
https://github.com/WebKit/WebKit/commit/c9c32c15c20e727f8ca0134be5d78793298104a1
Author: Chris Dumez <[email protected]>
Date: 2023-04-06 (Thu, 06 Apr 2023)
Changed paths:
M
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html
A
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-sameish-expected.txt
A
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-sameish.html
M
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter.html
M
LayoutTests/imported/w3c/web-platform-tests/url/url-setters-stripping.any-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/url/url-setters-stripping.any.worker-expected.txt
M Source/WTF/wtf/URLParser.cpp
Log Message:
-----------
Cherry-pick 261017@main (0c6de669a59b).
https://bugs.webkit.org/show_bug.cgi?id=251087
Strip tab and newline from Location/URL/<a>/<area>'s protocol setter
https://bugs.webkit.org/show_bug.cgi?id=251087
rdar://104599983
Reviewed by Alex Christensen.
Our URL parser was already skipping newlines and tabs in the scheme while
parsing. However, URL::setProtocol() would call
URLParser::maybeCanonicalizeScheme()
before parsing and this function would fail if the protocol contains any
newlines or tabs.
*
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html:
*
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-sameish-expected.txt:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-sameish.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter.html:
Resync tests after https://github.com/web-platform-tests/wpt/pull/38032.
*
LayoutTests/imported/w3c/web-platform-tests/url/url-setters-stripping.any-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/url/url-setters-stripping.any.worker-expected.txt:
Rebaseline tests that are now passing.
* Source/WTF/wtf/URLParser.cpp:
(WTF::URLParser::maybeCanonicalizeScheme):
Update URLParser::maybeCanonicalizeScheme() to allow for newlines and tabs
in
the scheme since it is allowed by the specification and our URL parser
actually
handles them fine.
Canonical link: https://commits.webkit.org/261017@main
Commit: 2804afc607007f016b639d5aa0ee4eaca6976bb2
https://github.com/WebKit/WebKit/commit/2804afc607007f016b639d5aa0ee4eaca6976bb2
Author: Michael Catanzaro <[email protected]>
Date: 2023-04-06 (Thu, 06 Apr 2023)
Changed paths:
M Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
M Source/JavaScriptCore/heap/AbstractSlotVisitorInlines.h
M Source/WebCore/animation/DocumentTimeline.cpp
M Source/WebCore/platform/animation/TimingFunction.h
M Source/WebCore/platform/graphics/AudioTrackPrivate.h
M Source/WebCore/platform/graphics/InbandTextTrackPrivate.h
M Source/WebCore/platform/graphics/TrackPrivateBase.h
M Source/WebCore/platform/graphics/VideoTrackPrivate.h
M Source/WebCore/style/ElementRuleCollector.cpp
M Source/WebCore/svg/SVGPathSeg.h
M Source/bmalloc/libpas/src/libpas/pas_fast_megapage_table.c
M Tools/TestWebKitAPI/Tests/WTF/BoxPtr.cpp
M Tools/TestWebKitAPI/Tests/WTF/CompactRefPtr.cpp
M Tools/TestWebKitAPI/Tests/WTF/NakedPtr.cpp
M Tools/TestWebKitAPI/Tests/WTF/PackedRefPtr.cpp
M Tools/TestWebKitAPI/Tests/WTF/RefPtr.cpp
Log Message:
-----------
Cherry-pick 262664@main (2b34340acfdb).
https://bugs.webkit.org/show_bug.cgi?id=254758
Fix build with GCC 13 -Werror
https://bugs.webkit.org/show_bug.cgi?id=254758
Reviewed by Adrian Perez de Castro.
This allows building with GCC 13 in DEVELOPER_MODE (where warnings are
now fatal).
* Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
* Source/JavaScriptCore/heap/AbstractSlotVisitorInlines.h:
(JSC::AbstractSlotVisitor::ReferrerContext::ReferrerContext):
* Source/WebCore/animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::animationCanBeRemoved):
* Source/WebCore/platform/animation/TimingFunction.h:
* Source/WebCore/platform/graphics/AudioTrackPrivate.h:
(WebCore::AudioTrackPrivate::operator== const):
* Source/WebCore/platform/graphics/InbandTextTrackPrivate.h:
(WebCore::InbandTextTrackPrivate::operator== const):
* Source/WebCore/platform/graphics/TrackPrivateBase.h:
* Source/WebCore/platform/graphics/VideoTrackPrivate.h:
(WebCore::VideoTrackPrivate::operator== const):
* Source/WebCore/style/ElementRuleCollector.cpp:
(WebCore::Style::leftToRightDeclaration):
(WebCore::Style::rightToLeftDeclaration):
* Source/WebCore/svg/SVGPathSeg.h:
* Source/bmalloc/libpas/src/libpas/pas_fast_megapage_table.c:
(pas_fast_megapage_table_set_by_index):
* Tools/TestWebKitAPI/Tests/WTF/BoxPtr.cpp:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WTF/CompactRefPtr.cpp:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WTF/NakedPtr.cpp:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WTF/PackedRefPtr.cpp:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WTF/RefPtr.cpp:
(TestWebKitAPI::TEST):
Canonical link: https://commits.webkit.org/262664@main
Compare: https://github.com/WebKit/WebKit/compare/768963a39cda...2804afc60700
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes