Timeline
Aug 15, 2021:
- 11:55 PM Changeset in webkit [281070] by
-
- 19 edits in trunk
[GTK][WPE] Add API to pass WebKitMemoryPressureHandler parameters to the network processes
https://bugs.webkit.org/show_bug.cgi?id=228227
Reviewed by Carlos Garcia Campos.
Source/WebKit:
Added webkit_website_data_manager_set_memory_pressure_settings() API function to pass a
WebKitMemoryPressureSettings instance as the settings to use by all the network processes.
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::platformInitializeNetworkProcess):
- UIProcess/API/glib/WebKitMemoryPressureSettings.cpp:
- UIProcess/API/glib/WebKitWebsiteDataManager.cpp:
(webkit_website_data_manager_set_memory_pressure_settings):
- UIProcess/API/gtk/WebKitWebsiteDataManager.h:
- UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
- UIProcess/API/wpe/WebKitWebsiteDataManager.h:
- UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didExceedMemoryLimit):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebProcessPool.h:
- UIProcess/soup/WebProcessPoolSoup.cpp:
(WebKit::memoryPressureMonitorDisabled):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
Source/WTF:
Added a new method to MemoryPressureHandler to set the configuration by copying the parameter
instead of moving it.
- wtf/MemoryPressureHandler.h:
(WTF::MemoryPressureHandler::setConfiguration):
Tools:
Added an API test for webkit_website_data_manager_set_memory_pressure_settings().
- TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:
(MemoryPressureTest::setup):
(MemoryPressureTest::teardown):
(MemoryPressureTest::loadFailedCallback):
(MemoryPressureTest::waitUntilLoadFailed):
(testMemoryPressureSettings):
(beforeAll):
- 11:51 PM Changeset in webkit [281069] by
-
- 2 edits in trunk/Source/WebCore/platform/gtk/po
French translation of webkit.HEAD
https://bugs.webkit.org/show_bug.cgi?id=229119
Rubber-stamped by Carlos Garcia Campos.
- fr.po:
- 8:34 PM Changeset in webkit [281068] by
-
- 10 edits in trunk
[iOS 15] editing/selection/ios/select-all-in-readonly-input-does-not-overflow.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=229126
rdar://80384801
Reviewed by Tim Horton.
Source/WebKit:
Remove the (now-unused) testing SPI
-[WKWebView _doAfterResettingSingleTapGesture:]. See Tools/ChangeLog for
more information.
- UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
- UIProcess/API/ios/WKWebViewTestingIOS.mm:
(-[WKWebView _doAfterResettingSingleTapGesture:]): Deleted.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _singleTapDidReset:]):
(-[WKContentView _doAfterResettingSingleTapGesture:]): Deleted.
Tools:
This test exercises the ability to cause platform selection views to show up after tapping the web view while a
DOM selection is set. In this codepath, selection views are installed when the web view becomes first responder,
when we call into-[UIWKTextInteractionAssistant activateSelection]; the call to-becomeFirstResponder, in
turn, comes from UIKit's internalUITextTapRecognizergesture, which recognizes the single tap and makes the
content view first responder.
In the case where this test fails, the synthesized tap gesture fails to activate the text tap recognizer; this
happens because the timing of when theUITextTapRecognizergets reset (i.e.-_resetGestureRecognizer) races
against the timing of when the synthesized touch event is sent to the gesture recognizer. When the touch is
delivered to the gesture *before* the text tap gesture is reset, we end up timing out because the text tap
gesture's action never fires and makes the content view first responder.
To ensure that we don't lose this race and time out, we augment the existing mechanism in
UIScriptControllerIOS::waitForSingleTapToReset()to wait for *all* enabled single tap (and single touch)
gestures to reset, instead of only waiting for the web view's synthetic click gesture. Importantly, this
includesUITextTapRecognizer, which ensures that the touches are delivered to the gesture only after the text
tap gesture has been reset (and transitions to Possible state).
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::waitForSingleTapToReset const):
Instead of using testing SPI (
-_doAfterResettingSingleTapGesture:) to wait for the single tap to reset, we can
just directly iterate through all the gestures on the content view and wait for all enabled single tap gestures
to transition back to Possible state.
LayoutTests:
Update test expectations for this flaky test.
- platform/ios-14/TestExpectations:
- platform/ios/TestExpectations:
- 1:46 PM Changeset in webkit [281067] by
-
- 4 edits in trunk/Source/WebCore
[LFC Display] Make Display::ImageBox a CachedImageClient to get image repaint working
https://bugs.webkit.org/show_bug.cgi?id=229125
Reviewed by Anders Carlsson.
Make Display::ImageBox hold a CachedResourceHandle<CachedImage> so it can register
as a client and get notified about image changes, for repainting.
- display/css/DisplayBoxFactory.cpp:
(WebCore::Display::BoxFactory::displayBoxForLayoutBox const):
- display/css/DisplayImageBox.cpp:
(WebCore::Display::ImageBox::ImageBox):
(WebCore::Display::m_cachedImage):
(WebCore::Display::ImageBox::~ImageBox):
(WebCore::Display::ImageBox::image const):
(WebCore::Display::ImageBox::imageChanged):
(WebCore::Display::ImageBox::debugDescription const):
(WebCore::Display::m_image): Deleted.
- display/css/DisplayImageBox.h:
(WebCore::Display::ImageBox::image const): Deleted.
- 1:05 PM Changeset in webkit [281066] by
-
- 5 edits in trunk/Source
Bug 229112: ThreadSanitizer: data races of WTF::String in WebResourceLoadStatisticsStore
<https://webkit.org/b/229112>
<rdar://problem/81940951>
Reviewed by Kate Cheney.
Source/WebCore:
Covered by running layout tests with TSan in:
http/tests/privateClickMeasurement/
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):
- Add WTFMove() for updated SourceSite constructor. Verified that this doesn't create a use-after-move issue.
- loader/PrivateClickMeasurement.h:
(WebCore::PrivateClickMeasurement::SourceSite::SourceSite):
- Change to take rvalue reference for efficiency and to match AttributionDestinationSite constructor.
(WebCore::PrivateClickMeasurement::SourceSite::isolatedCopy const): Add.
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::isolatedCopy const): Add.
- Add isolatedCopy() methods to use in multi-threaded scenarios.
Source/WebKit:
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::attributePrivateClickMeasurement):
- Make isolated copies of sourceSite and destinationSite to fix data races.
(WebKit::WebResourceLoadStatisticsStore::privateClickMeasurementToString):
- Make isolated copy of WTF::String to fix data race.
- 12:02 PM Changeset in webkit [281065] by
-
- 4 edits in trunk/LayoutTests
[GLIB] Update test expectations after r280077
https://bugs.webkit.org/show_bug.cgi?id=229124
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-08-15
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 11:38 AM Changeset in webkit [281064] by
-
- 10 edits in trunk/Source/WebCore
Remove shadow related SVG functionality
https://bugs.webkit.org/show_bug.cgi?id=228870
Patch by Rob Buis <rbuis@igalia.com> on 2021-08-15
Reviewed by Simon Fraser.
Remove shadow related SVG functionality since it was added
for the removed property -webkit-svg-shadow (see r238071).
- rendering/style/SVGRenderStyle.cpp:
(WebCore::SVGRenderStyle::SVGRenderStyle):
(WebCore::SVGRenderStyle::operator== const):
(WebCore::SVGRenderStyle::copyNonInheritedFrom):
(WebCore::SVGRenderStyle::diff const):
- rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::initialLightingColor):
(WebCore::SVGRenderStyle::baselineShiftValue const):
(WebCore::SVGRenderStyle::isolatesBlending const):
(WebCore::SVGRenderStyle::initialShadow): Deleted.
(WebCore::SVGRenderStyle::setShadow): Deleted.
(WebCore::SVGRenderStyle::shadow const): Deleted.
- rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::layout):
- rendering/svg/RenderSVGImage.h:
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::computeFloatVisibleRectInContainer const):
(WebCore::RenderSVGRoot::updateCachedBoundaries):
- rendering/svg/RenderSVGRoot.h:
- rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):
(WebCore::SVGRenderSupport::computeFloatVisibleRectInContainer):
- rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::~SVGRenderingContext):
(WebCore::SVGRenderingContext::prepareToRenderSVGContent):
- rendering/svg/SVGRenderingContext.h:
- 10:44 AM Changeset in webkit [281063] by
-
- 1 copy in tags/Safari-612.1.27.0.23
Tag Safari-612.1.27.0.23.
- 10:41 AM Changeset in webkit [281062] by
-
- 5 edits in trunk/Source/JavaScriptCore
[ARM64] Add Pre/Post-Indexed Address Mode to Air for ARM64 (Store Instruction)
https://bugs.webkit.org/show_bug.cgi?id=228538
Reviewed by Filip Pizlo.
The previous patch has introduced the pre/post-index address mode for Load instruction,
which benefits loop program. Here, this patch adds the corresponding mode for Store
instruction. Store Register (immediate) stores a word or a doubleword from a register
to memory. The address that is used for the store is calculated from a base register
and an immediate offset.
######################################
## Pre-Index Address Mode For Store ##
######################################
STR Wt, [Xn, #imm]!
In B3 Reduction Strength, since we have this reduction rule:
Turns this: Store(value, Add(address, offset1), offset = offset2)
Into this: Store(value, address, offset = offset1 + offset2)
The equivalent pattern is:
address = Add(base, offset)
...
memory = Store(value, base, offset)
Here, we only consider the pattern:
address = Add(base, offset)
memory = Store(value, base, offset)
And, this patch directly treats it as the canonical form. Ideally, we should move
memory to just after the address like what we did for PreIndex Load in the previous
patch. But, we cannot provide a better way to do that since the value may be
used between address and memory. To move value upward, we must move all descendants
of the value along with it to prevent B3 IR index violations, which is risky and expensive.
Next, lower to Air:
Move %base, %address
Move %value, (%address, prefix(offset))
######################################
## Post-Index Address Mode For Load ##
######################################
STR Wt, [Xn], #imm
Then, the equivalent pattern is:
memory = Store(value, base, 0)
...
address = Add(base, offset)
First, we convert it to the canonical form:
newOffset = Constant
newAddress = Add(base, offset)
memory = Store(value, base, 0) move the offset and address to just before the memory
...
offset = Identity(newOffset)
address = Identity(newAddress)
Next, lower to Air:
Move %base, %newAddress
Move %value, (%newAddress, postfix(offset))
##############################################
## Test for Pre/Post-Increment Address Mode ##
##############################################
B3 IR:
Int64 b@0 = ArgumentReg(%x0)
Int64 b@1 = ArgumentReg(%x1)
Int64 b@2 = Const64(8)
Int64 b@3 = Add(b@0, $8(b@2))
Void b@4 = Store(b@1, b@3, ControlDependent|Writes:Top)
Void b@5 = Return(b@3, Terminal)
W/O Pre-Increment Address Mode:
Move %x0, %x2, b@0
Add64 $8, %x2, %x0, b@3
Move %x1, 8(%x2), b@4
Ret64 %x0, b@5
W/ Pre-Increment Address Mode:
MoveWithIncrement64 %x1, (%x0,Pre($8)), b@4
Ret64 %x0, b@5
B3 IR:
Int64 b@0 = ArgumentReg(%x0)
Int64 b@1 = ArgumentReg(%x1)
Void b@2 = Store(b@1, b@0, ControlDependent|Writes:Top)
Int64 b@3 = Const64(8)
Int64 b@4 = Add(b@0, $8(b@3))
Void b@5 = Return(b@4, Terminal)
W/O Post-Increment Address Mode:
Move %x1, (%x0), b@2
Add64 $8, %x0, %x0, b@4
Ret64 %x0, b@5
W/ Post-Increment Address Mode:
MoveWithIncrement64 %x1, (%x0,Post($8)), b@2
Ret64 %x0, b@5
- b3/B3CanonicalizePrePostIncrements.cpp:
(JSC::B3::canonicalizePrePostIncrements):
- b3/B3LowerToAir.cpp:
- b3/testb3.h:
- b3/testb3_3.cpp:
(testStorePreIndex32):
(testStorePreIndex64):
(testStorePostIndex32):
(testStorePostIndex64):
(addShrTests):
- 8:44 AM Changeset in webkit [281061] by
-
- 22 edits1 copy in trunk/Source/WebCore
[LFC Display] Introduce type-safe rect types for the display tree
https://bugs.webkit.org/show_bug.cgi?id=220214
Reviewed by Alan Bujtas.
Introduce AbsoluteFloatRect, UnadjustedAbsoluteFloatRect and ViewFloatRect which are
type-safe float rect types for the display tree.
AbsoluteFloatRect is relative to document origin. UnadjustedAbsoluteFloatRect is similar,
but is computed before scrolling and transforms are taken into account.
ViewFloatRect is relative to the view.
- WebCore.xcodeproj/project.pbxproj:
- display/DisplayGeometryTypes.h: Copied from Source/WebCore/display/css/DisplayReplacedBox.h.
(WebCore::Display::intersection):
(WebCore::Display::unionRect):
- display/DisplayTree.cpp:
(WebCore::Display::Tree::setBoxNeedsDisplay const):
- display/DisplayTree.h:
- display/DisplayTreeBuilder.cpp:
- display/css/DisplayBox.cpp:
(WebCore::Display::Box::Box):
(WebCore::Display::Box::setNeedsDisplay):
- display/css/DisplayBox.h:
(WebCore::Display::Box::Box):
(WebCore::Display::Box::absoluteBoxRect const):
(WebCore::Display::Box::absolutePaintingExtent const):
- display/css/DisplayBoxClip.cpp:
(WebCore::Display::BoxClip::pushClip):
(WebCore::Display::BoxClip::pushRoundedClip):
- display/css/DisplayBoxClip.h:
(WebCore::Display::BoxClip::clipRect const):
- display/css/DisplayBoxDecorationPainter.cpp:
(WebCore::Display::BoxDecorationPainter::paintFillLayer const):
- display/css/DisplayBoxFactory.cpp:
(WebCore::Display::BoxFactory::displayBoxForRootBox const):
(WebCore::Display::BoxFactory::displayBoxForLayoutBox const):
(WebCore::Display::BoxFactory::displayBoxForTextRun const):
(WebCore::Display::BoxFactory::setupBoxGeometry const):
- display/css/DisplayBoxModelBox.cpp:
(WebCore::Display::BoxModelBox::BoxModelBox):
(WebCore::Display::BoxModelBox::clipForDescendants const):
(WebCore::Display::BoxModelBox::absolutePaintingExtent const):
- display/css/DisplayBoxModelBox.h:
(WebCore::Display::BoxModelBox::BoxModelBox):
(WebCore::Display::BoxModelBox::absoluteBorderBoxRect const):
(WebCore::Display::BoxModelBox::absolutePaddingBoxRect const):
(WebCore::Display::BoxModelBox::absoluteContentBoxRect const):
(WebCore::Display::BoxModelBox::setAbsolutePaddingBoxRect):
(WebCore::Display::BoxModelBox::setAbsoluteContentBoxRect):
- display/css/DisplayContainerBox.cpp:
(WebCore::Display::ContainerBox::ContainerBox):
- display/css/DisplayContainerBox.h:
- display/css/DisplayImageBox.cpp:
(WebCore::Display::ImageBox::ImageBox):
- display/css/DisplayImageBox.h:
- display/css/DisplayReplacedBox.cpp:
(WebCore::Display::ReplacedBox::ReplacedBox):
- display/css/DisplayReplacedBox.h:
(WebCore::Display::ReplacedBox::replacedContentRect const):
(WebCore::Display::ReplacedBox::setReplacedContentRect):
- display/css/DisplayStackingItem.h:
(WebCore::Display::StackingItem::paintedContentBounds const):
(WebCore::Display::StackingItem::paintedBoundsIncludingDescendantItems const):
(WebCore::Display::StackingItem::setPaintedContentBounds):
(WebCore::Display::StackingItem::setPaintedBoundsIncludingDescendantItems):
- display/css/DisplayTextBox.cpp:
(WebCore::Display::TextBox::TextBox):
- display/css/DisplayTextBox.h:
- 8:43 AM Changeset in webkit [281060] by
-
- 4 edits in trunk/Source/WebCore
[LFC Display] Add a Display::Box flag for HasTransfrom
https://bugs.webkit.org/show_bug.cgi?id=229115
Reviewed by Alan Bujtas.
It's possible for a non-box model box to have a RenderStyle with a transform, but that
style isn't applied because transforms only apply to atomic inline or block boxes,
so store a bit on Box for boxes that have transforms.
- display/css/DisplayBox.h:
(WebCore::Display::Box::setHasTransform):
(WebCore::Display::Box::hasTransform const):
- display/css/DisplayBoxFactory.cpp:
(WebCore::Display::BoxFactory::constructBoxRareGeometry const):
(WebCore::Display::BoxFactory::setupBoxModelBox const):
- display/css/DisplayCSSPainter.cpp:
(WebCore::Display::CSSPainter::paintAtomicallyPaintedBox):
Aug 14, 2021:
- 10:25 PM Changeset in webkit [281059] by
-
- 5 edits in branches/safari-612.1.27.0-branch/Source
Cherry-pick r281058. rdar://problem/81947517
[GPU Process] REGRESSION: WebContent often crashes when opening a Google spreadsheet with charts
https://bugs.webkit.org/show_bug.cgi?id=229106
<rdar://81806877>
Reviewed by Wenson Hsieh.
Source/WebCore:
Add a method to return the backend of the ImageBuffer.
- platform/graphics/ConcreteImageBuffer.h:
- platform/graphics/ImageBuffer.h:
Source/WebKit:
Don't resume processing the DisplayList of an ImageBuffer until its
backend is created.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp: (WebKit::RemoteRenderingBackendProxy::didAppendData):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281058 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:22 PM Changeset in webkit [281058] by
-
- 5 edits in trunk/Source
[GPU Process] REGRESSION: WebContent often crashes when opening a Google spreadsheet with charts
https://bugs.webkit.org/show_bug.cgi?id=229106
<rdar://81806877>
Reviewed by Wenson Hsieh.
Source/WebCore:
Add a method to return the backend of the ImageBuffer.
- platform/graphics/ConcreteImageBuffer.h:
- platform/graphics/ImageBuffer.h:
Source/WebKit:
Don't resume processing the DisplayList of an ImageBuffer until its
backend is created.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::didAppendData):
- 10:38 AM Changeset in webkit [281057] by
-
- 2 edits3 deletes in trunk/LayoutTests
[GLIB] Update baselines after r281012
https://bugs.webkit.org/show_bug.cgi?id=229108
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-08-14
- platform/glib/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any.worker-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/content-security-policy/inside-worker/dedicatedworker-report-only-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/fetch/h1-parsing/status-code.window-expected.txt:
- platform/glib/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/integrity-expected.txt: Removed.