Timeline
Nov 24, 2018:
- 5:45 PM Changeset in webkit [238473] by
-
- 6 edits in trunk/Source
[Cocoa] Fix a few localizable string descriptions in WebEditCommandProxy.cpp and WebEditorClient.mm
https://bugs.webkit.org/show_bug.cgi?id=191945
Reviewed by Anders Carlsson.
Source/WebCore:
Run
update-webkit-localizable-strings.
- en.lproj/Localizable.strings:
Source/WebKit:
Replace some a couple of command undo action name descriptions with "Undo action name", to match all other
edit commands.
- UIProcess/WebEditCommandProxy.cpp:
(WebKit::WebEditCommandProxy::nameForEditAction):
Source/WebKitLegacy/mac:
- WebCoreSupport/WebEditorClient.mm:
(undoNameForEditAction):
- 4:37 PM Changeset in webkit [238472] by
-
- 5 edits in trunk/Source/WebCore
Remove now unnecessary specialized ListHashSet from InlineItem.h
https://bugs.webkit.org/show_bug.cgi?id=191946
Patch by Sam Weinig <sam@webkit.org> on 2018-11-24
Reviewed by Zalan Bujtas.
Now that ListHashSet supports raw pointer overloads for smart pointers,
we can fix the FIXME in InlineItem.h and remove the specialized ListHashSet
and ListHashSet::find calls.
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::splitInlineRunIfNeeded const):
(WebCore::Layout::InlineFormattingContext::collectInlineContentForSubtree const):
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::InlineFormattingContext::Geometry::runWidth):
- layout/inlineformatting/InlineItem.h:
(WebCore::Layout::InlineItemHashFunctions::hash): Deleted.
(WebCore::Layout::InlineItemHashFunctions::equal): Deleted.
(WebCore::Layout::InlineItemHashTranslator::hash): Deleted.
(WebCore::Layout::InlineItemHashTranslator::equal): Deleted.
- layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::InlineLineBreaker::textWidth const):
- 1:06 PM Changeset in webkit [238471] by
-
- 19 edits1 copy1 add in trunk
[Cocoa] Add WKWebView SPI to trigger and remove data detection
https://bugs.webkit.org/show_bug.cgi?id=191918
<rdar://problem/36185051>
Reviewed by Tim Horton.
Source/WebCore:
Add a helper method on DataDetection to remove all data detected links in the given document. See WebKit changes
for more detail.
- editing/cocoa/DataDetection.h:
- editing/cocoa/DataDetection.mm:
(WebCore::DataDetection::removeDataDetectedLinksInDocument):
Source/WebKit:
Adds support for two new WKWebView SPI methods,
-_detectDataWithTypes:completionHandler:and
-_removeAllDataDetectedLinks:, to allow internal WebKit clients to run data detection and add links to data
detected content, or remove all data detected links from the document.
Test: WebKit.AddAndRemoveDataDetectors
- Shared/Cocoa/DataDetectionResult.h:
- Shared/Cocoa/DataDetectionResult.mm:
(WebKit::DataDetectionResult::decode):
Modernize DataDetectionResult's IPC decoding, so that it can be used with reply-based async IPC.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _removeDataDetectedLinks:]):
(-[WKWebView _detectDataWithTypes:completionHandler:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::detectDataInAllFrames):
(WebKit::WebPageProxy::removeDataDetectedLinks):
Add or remove data detected links from each frame in the page, and then propagate the new data detector
results of the main frame to the UI process (this matches current behavior, where the results of -[WKWebView
_dataDetectionResults] only reflects data detection results in the main frame of the page).
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::removeDataDetectedLinks):
(WebKit::WebPage::detectDataInAllFrames):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Tools:
Add an API test to exercise the new WebKit SPI.
- TestWebKitAPI/DataDetectorsCoreSPI.h: Added.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/DataDetection.mm:
(-[WKWebView synchronouslyDetectDataWithTypes:]):
(-[WKWebView synchronouslyRemoveDataDetectedLinks]):
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(TestWebKitAPI::TEST):
(-[TestWKWebView tagsInBody]): Deleted.
(-[TestWKWebView expectElementTagsInOrder:]): Deleted.
(-[TestWKWebView expectElementCount:tagName:]): Deleted.
(-[TestWKWebView expectElementTag:toComeBefore:]): Deleted.
Rename this from
-expectElementCount:tagName:to-expectElementCount:querySelector:.
- TestWebKitAPI/Tests/WebKitCocoa/data-detectors.html: Added.
Add a new test page containing some content that can be data detected.
- TestWebKitAPI/cocoa/TestWKWebView.h:
- TestWebKitAPI/cocoa/TestWKWebView.mm:
(-[WKWebView tagsInBody]):
(-[WKWebView expectElementTagsInOrder:]):
(-[WKWebView expectElementCount:querySelector:]):
(-[WKWebView expectElementTag:toComeBefore:]):
Move some testing helper functions from WKAttachmentTests to a testing category on WKWebView. This allows us to
use-expectElementCount:querySelector:in tests outside of WKAttachmentTests.
(-[WKWebView objectByEvaluatingJavaScript:]):
(-[WKWebView objectByEvaluatingJavaScriptWithUserGesture:]):
(-[WKWebView stringByEvaluatingJavaScript:]):
Move some common helper functions from TestWKWebView to a testing category on WKWebView.
(-[TestWKWebView objectByEvaluatingJavaScript:]): Deleted.
(-[TestWKWebView objectByEvaluatingJavaScriptWithUserGesture:]): Deleted.
(-[TestWKWebView stringByEvaluatingJavaScript:]): Deleted.
- 10:37 AM Changeset in webkit [238470] by
-
- 16 edits in trunk/Source
[Cocoa] SOFT_LINK_CLASS_FOR_{HEADER,SOURCE} should generate a more concise getter function
https://bugs.webkit.org/show_bug.cgi?id=191899
Reviewed by Dean Jackson.
Source/WebCore:
- editing/cocoa/DataDetection.mm:
- editing/cocoa/FontAttributesCocoa.mm:
- editing/cocoa/FontShadowCocoa.mm:
- platform/cocoa/DataDetectorsCoreSoftLink.h:
- platform/graphics/cocoa/ColorCocoa.mm:
- platform/ios/PlatformScreenIOS.mm:
Source/WebCore/PAL:
- pal/cocoa/PassKitSoftLink.h:
- pal/ios/UIKitSoftLink.h:
Source/WebKit:
- Shared/cocoa/WebCoreArgumentCodersCocoa.mm:
- UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
- UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:
Source/WTF:
Currently, SOFT_LINK_CLASS_FOR_HEADER declares a class getter function that includes the
framework name. For example, NSView would have a class getter named
namespace::get_AppKit_NSViewClass().
Including the framework name in the getter is unnecessary. Objective-C classes already exist
in a global namespace, so there is no need to disambiguate class names by framework. This
patch elides the framework name from the getter function. For example, NSView would now have
a getter named namespace::getNSViewClass().
- wtf/cocoa/SoftLinking.h:
- 7:13 AM Changeset in webkit [238469] by
-
- 2 edits in trunk/Source/WTF
CRASH() should call abort() except on Darwin and in developer builds
https://bugs.webkit.org/show_bug.cgi?id=184408
Reviewed by Daniel Bates.
CRASH() should call abort() except on Darwin and in developer builds, as discussed on
webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
can't do that.
Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
is reportedly useful in nightmare scenarios where core dumps are unavailable.
- wtf/Assertions.h:
Nov 23, 2018:
- 11:17 PM Changeset in webkit [238468] by
-
- 27 edits2 moves in trunk/Source/WebKit
Replace LayerOrView typedef with a class
https://bugs.webkit.org/show_bug.cgi?id=191927
Reviewed by Tim Horton.
This typedef restricts remote layer representation to be either a CA layer or a view. We might want
have more flexibility, for example tiles don't really need to be UIViews. It will also make it easier
to unify Mac and iOS code, and hopefully make it less confusing too.
This patch introduces RemoteLayerTreeNode class that replaces most uses of LayerOrView typedef
(the rest are converted to pure CALayer). It also does a bunch of related cleanup.
- Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.h:
- Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToUIView):
(WebKit::applyPropertiesToLayer): Deleted.
- SourcesCocoa.txt:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _propertiesOfLayerWithID:]):
- UIProcess/Cocoa/LayerRepresentation.h: Removed.
- UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
(WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):
- UIProcess/PageClient.h:
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
(WebKit::RemoteLayerTreeDrawingAreaProxy::layerWithIDForTesting const):
- UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h:
(WebKit::RemoteLayerTreeHost::rootNode const):
(WebKit::RemoteLayerTreeHost::rootLayer const): Deleted.
- UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::updateLayerTree):
(WebKit::RemoteLayerTreeHost::nodeForID const):
(WebKit::RemoteLayerTreeHost::layerWillBeRemoved):
(WebKit::RemoteLayerTreeHost::animationDidStart):
(WebKit::RemoteLayerTreeHost::animationDidEnd):
(WebKit::RemoteLayerTreeHost::clearLayers):
(WebKit::RemoteLayerTreeHost::layerWithIDForTesting const):
(WebKit::RemoteLayerTreeHost::layerForID const):
(WebKit::RemoteLayerTreeHost::rootLayer const):
(WebKit::RemoteLayerTreeHost::createLayer):
(WebKit::RemoteLayerTreeHost::detachRootLayer):
(WebKit::RemoteLayerTreeHost::mapAllIOSurfaceBackingStore):
(WebKit::RemoteLayerTreeHost::getLayer const): Deleted.
- UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h: Added.
(WebKit::RemoteLayerTreeNode::layer const):
(WebKit::RemoteLayerTreeNode::uiView const):
- UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm: Added.
(WebKit::RemoteLayerTreeNode::RemoteLayerTreeNode):
(WebKit::RemoteLayerTreeNode::detachFromParent):
- UIProcess/RemoteLayerTree/RemoteLayerTreeScrollingPerformanceData.mm:
(WebKit::RemoteLayerTreeScrollingPerformanceData::blankPixelCount const):
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::createLayer):
- UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
(WebKit::layerRepresentationFromLayerOrView): Deleted.
- UIProcess/WebAuthentication/Cocoa/HidService.h:
- UIProcess/WebAuthentication/Cocoa/HidService.mm:
- UIProcess/WebPageProxy.h:
- UIProcess/ios/LayerRepresentation.mm: Removed.
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::setRemoteLayerTreeRootNode):
(WebKit::PageClientImpl::acceleratedCompositingRootLayer const):
(WebKit::PageClientImpl::setAcceleratedCompositingRootLayer): Deleted.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::setRemoteLayerTreeRootNode):
(WebKit::WebPageProxy::setAcceleratedCompositingRootLayer): Deleted.
- UIProcess/mac/PageClientImplMac.h:
- UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::setRemoteLayerTreeRootNode):
(WebKit::PageClientImpl::setAcceleratedCompositingRootLayer): Deleted.
- UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::createFence):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::setRemoteLayerTreeRootNode):
(WebKit::WebPageProxy::acceleratedCompositingRootLayer const):
(WebKit::WebPageProxy::setAcceleratedCompositingRootLayer): Deleted.
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
- 10:08 PM Changeset in webkit [238467] by
-
- 5 edits in trunk
Add raw pointer overloads to ListHashSet via SmartPtr specialized functions
https://bugs.webkit.org/show_bug.cgi?id=191936
Patch by Sam Weinig <sam@webkit.org> on 2018-11-23
Reviewed by Zalan Bujtas.
Source/WTF:
Adds overloads for find, contains, insertBefore and remove that take raw pointers
when the value type V of a ListHashSet is true for the predicate IsSmartPtr<V>::value.
This brings the interface to ListHashSet closer inline with HashSet, HashMap and HashCountedSet
which already have this functionality. Like in the other collections, this is especially
useful when using std::unique_ptr<> as the value, since there would be no way to pass it
to these functions. One difference between this set of overloads is the inclusion of insertBefore,
which is unique to ListHashSet. As would be expected, this specialization only changes the first
parameter, the one that needs to be found, to support a raw pointer.
- wtf/ListHashSet.h:
(WTF::U>::find):
(WTF::U>::find const):
(WTF::U>::contains const):
(WTF::U>::insertBefore):
(WTF::U>::remove):
Tools:
Adds tests for raw pointer overloads in ListHashSet.
- TestWebKitAPI/Tests/WTF/HashSet.cpp:
- TestWebKitAPI/Tests/WTF/ListHashSet.cpp:
- 7:51 PM Changeset in webkit [238466] by
-
- 4 edits in trunk/Source
[WebAuthN] Enable Web Authentication as an experimental feature for macOS
https://bugs.webkit.org/show_bug.cgi?id=191932
rdar://problem/46225210
Reviewed by Brent Fulgham.
Source/WebCore:
Add myself to the contact of Web Authentication.
- features.json:
Source/WebKit:
- Shared/WebPreferences.yaml:
- 6:17 PM Changeset in webkit [238465] by
-
- 3 edits3 adds in trunk
REGRESSION (r236785): Nullptr crash in StyledMarkupAccumulator::traverseNodesForSerialization
https://bugs.webkit.org/show_bug.cgi?id=191921
Reviewed by Dean Jackson.
Source/WebCore:
The bug was caused by traverseNodesForSerialization not being able to traverse past the end of shadow root
when skipping children of a node for which enterNode returns false because it was using NodeTraversal's
nextSkippingChildren instead of a member function which supports traversing the composed tree.
Fixed the crash by using variant of nextSkippingChildren which knows how to traverse past the last node
in a shadow tree. Also added more assertions to help debug issues like this in the future.
Test: editing/pasteboard/copy-paste-across-shadow-boundaries-5.html
- editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):
LayoutTests:
Added a regression test.
- editing/pasteboard/copy-paste-across-shadow-boundaries-5-expected.txt: Added.
- editing/pasteboard/copy-paste-across-shadow-boundaries-5.html: Added.
- platform/ios/editing/pasteboard/copy-paste-across-shadow-boundaries-5-expected.txt: Added.
- 2:06 PM Changeset in webkit [238464] by
-
- 3 edits2 adds in trunk
Updating href on textPath doesn't update its rendering
https://bugs.webkit.org/show_bug.cgi?id=191920
Reviewed by Dean Jackson.
Source/WebCore:
Fixed the bug by invalidating the RenderSVGResource in SVGTextPathElement::svgAttributeChanged
in addition to updating the pending resources.
Test: svg/text/textpath-reference-update.html
- svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::svgAttributeChanged):
LayoutTests:
Added a ref test.
- svg/text/textpath-reference-update-expected.html: Added.
- svg/text/textpath-reference-update.html: Added.
- 12:47 PM Changeset in webkit [238463] by
-
- 78 edits in trunk/Source/WebCore
Introduce user-defined literal for LayoutUnit
https://bugs.webkit.org/show_bug.cgi?id=191915
Reviewed by Dean Jackson.
- platform/LayoutUnit.h:
Introduce a user-defined literal for LayoutUnit, _lu, replacing the existing "fromPixel" factory function.
- layout/FormattingContextGeometry.cpp:
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
- layout/inlineformatting/InlineLineBreaker.cpp:
- page/FrameView.cpp:
- page/FrameViewLayoutContext.h:
- page/Page.cpp:
- page/SpatialNavigation.h:
- platform/ScrollableArea.cpp:
- rendering/EllipsisBox.cpp:
- rendering/FlexibleBoxAlgorithm.cpp:
- rendering/FloatingObjects.cpp:
- rendering/GridLayoutFunctions.cpp:
- rendering/GridTrackSizingAlgorithm.cpp:
- rendering/InlineFlowBox.cpp:
- rendering/InlineTextBox.cpp:
- rendering/LayoutState.h:
- rendering/LogicalSelectionOffsetCaches.h:
- rendering/RenderBlock.cpp:
- rendering/RenderBlock.h:
- rendering/RenderBlockFlow.cpp:
- rendering/RenderBlockFlow.h:
- rendering/RenderBlockLineLayout.cpp:
- rendering/RenderBox.cpp:
- rendering/RenderBoxModelObject.cpp:
- rendering/RenderDeprecatedFlexibleBox.cpp:
- rendering/RenderDeprecatedFlexibleBox.h:
- rendering/RenderElement.cpp:
- rendering/RenderFlexibleBox.cpp:
- rendering/RenderFlexibleBox.h:
- rendering/RenderFragmentContainer.cpp:
- rendering/RenderFragmentedFlow.cpp:
- rendering/RenderGrid.cpp:
- rendering/RenderGrid.h:
- rendering/RenderImage.cpp:
- rendering/RenderLayer.cpp:
- rendering/RenderListMarker.cpp:
- rendering/RenderMultiColumnFlow.cpp:
- rendering/RenderMultiColumnSet.cpp:
- rendering/RenderReplaced.cpp:
- rendering/RenderReplaced.h:
- rendering/RenderRubyRun.h:
- rendering/RenderTable.cpp:
- rendering/RenderTable.h:
- rendering/RenderTableSection.cpp:
- rendering/RenderTheme.cpp:
- rendering/RenderTreeAsText.cpp:
- rendering/RenderView.cpp:
- rendering/RootInlineBox.h:
- rendering/SimpleLineLayout.cpp:
- rendering/SimpleLineLayoutPagination.cpp:
- rendering/TableLayout.h:
- rendering/line/BreakingContext.h:
- rendering/line/LineLayoutState.h:
- rendering/line/LineWidth.h:
- rendering/mathml/MathOperator.cpp:
- rendering/mathml/MathOperator.h:
- rendering/mathml/RenderMathMLBlock.h:
- rendering/mathml/RenderMathMLFraction.cpp:
- rendering/mathml/RenderMathMLFraction.h:
- rendering/mathml/RenderMathMLMath.cpp:
- rendering/mathml/RenderMathMLMath.h:
- rendering/mathml/RenderMathMLMenclose.h:
- rendering/mathml/RenderMathMLOperator.cpp:
- rendering/mathml/RenderMathMLOperator.h:
- rendering/mathml/RenderMathMLPadded.h:
- rendering/mathml/RenderMathMLRoot.cpp:
- rendering/mathml/RenderMathMLRoot.h:
- rendering/mathml/RenderMathMLRow.h:
- rendering/mathml/RenderMathMLScripts.cpp:
- rendering/mathml/RenderMathMLScripts.h:
- rendering/mathml/RenderMathMLSpace.h:
- rendering/mathml/RenderMathMLToken.cpp:
- rendering/mathml/RenderMathMLToken.h:
- rendering/mathml/RenderMathMLUnderOver.h:
- rendering/shapes/ShapeOutsideInfo.cpp:
- rendering/style/CollapsedBorderValue.h:
Update all instances of LayoutUnit(), LayoutUnit(0), LayoutUnit { 0 }, etc. and add any other
literal conversions that will be needed when making non-int LayoutUnit constructors explicit.
For good measure, also mark all default values for LayoutUnit parameters.
- 11:45 AM Changeset in webkit [238462] by
-
- 2 edits in trunk/Source/WebCore
[GTK] Scrollbars not following gtk-primary-button-warps-slider setting
https://bugs.webkit.org/show_bug.cgi?id=191067
Updated code per the style guide, removed unreachable break (non-semantic change)
Patch by Jim Mason <jmason@ibinx.com> on 2018-11-23
Reviewed by Michael Catanzaro.
- platform/gtk/ScrollbarThemeGtk.cpp:
(WebCore::ScrollbarThemeGtk::handleMousePressEvent):
- 10:18 AM Changeset in webkit [238461] by
-
- 16 edits in trunk
Enable drag and drop support for iOSMac
https://bugs.webkit.org/show_bug.cgi?id=191818
<rdar://problem/43907454>
Reviewed by Dean Jackson.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
Enables drag and drop by default on iOSMac by switching on ENABLE_DATA_INTERACTION and ENABLE_DRAG_SUPPORT. This
enables support for dragging links, text selections, and images, though many advanced features (e.g. custom
pasteboard data) will require additional support from the platform.
- Configurations/FeatureDefines.xcconfig:
- platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::informationForItemAtIndex):
(WebCore::registerItemToPasteboard):
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const):
- platform/ios/WebItemProviderPasteboard.mm:
(-[WebItemProviderLoadResult canBeRepresentedAsFileUpload]):
(-[WebItemProviderPasteboard numberOfFiles]):
Disable codepaths which attempt to access or set
teamDataorpreferredPresentationStyleonNSItemProvider
in iOSMac, since these are currently unimplemented.
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit:
- Configurations/FeatureDefines.xcconfig:
- Shared/WebPreferencesDefaultValues.cpp:
(defaultCustomPasteboardDataEnabled):
Enable custom pasteboard data by default on iOSMac. While writing and reading custom pasteboard data is
currently broken in iOSMac due to the lack ofteamDataandpreferredPresentationStyle, opting into custom
pasteboard data at least allows us to avoid writing unsanitized data types to the pasteboard.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformEditorState const):
Fix a regression from <https://trac.webkit.org/r236619> wherein the web process crashes when attempting to edit
a text field. This happens because the call to-[UIKeyboard isInHardwareKeyboardMode]on the iOSMac platform
attempts to initialize aUHASWorkspacefrom the web process, which then attempts to connect to the UIKit host
application. Instead, we can skip this call altogether on iOSMac, where the platform never considers a hardware
keyboard to be "connected", even when typing.
Source/WebKitLegacy/mac:
- Configurations/FeatureDefines.xcconfig:
Tools:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
- 9:05 AM Changeset in webkit [238460] by
-
- 11 edits2 adds in trunk
[LFC][IFC] Add support for variable height runs.
https://bugs.webkit.org/show_bug.cgi?id=191925
Reviewed by Antti Koivisto.
Source/WebCore:
https://www.w3.org/TR/CSS22/visudet.html#inline-box-height
10.8 Line height calculations: the 'line-height' and 'vertical-align' properties
The height of each inline-level box in the line box is calculated. For replaced elements, inline-block elements,
and inline-table elements, this is the height of their margin box; for inline boxes, this is their 'line-height'.
The line box height is the distance between the uppermost box top and the lowermost box bottom.
The minimum height consists of a minimum height above the baseline and a minimum depth below it,
exactly as if each line box starts with a zero-width inline box with the element's font and line height properties.
We call that imaginary box a "strut." (The name is inspired by TeX.).
Test: fast/inline/inline-content-with-image-simple.html
- layout/Verification.cpp:
(WebCore::Layout::checkForMatchingNonTextRuns):
(WebCore::Layout::checkForMatchingTextRuns):
(WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::initializeNewLine const):
(WebCore::Layout::InlineFormattingContext::splitInlineRunIfNeeded const):
(WebCore::Layout::InlineFormattingContext::createFinalRuns const):
(WebCore::Layout::InlineFormattingContext::appendContentToLine const):
(WebCore::Layout::InlineFormattingContext::layoutInlineContent const):
- layout/inlineformatting/InlineFormattingContext.h:
(WebCore::Layout::InlineFormattingContext::Line::logicalHeight const):
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::InlineFormattingContext::Geometry::justifyRuns):
- layout/inlineformatting/InlineRun.h:
(WebCore::Layout::InlineRun::logicalWidth const):
(WebCore::Layout::InlineRun::logicalHeight const):
(WebCore::Layout::InlineRun::setLogicalWidth):
(WebCore::Layout::InlineRun::width const): Deleted.
(WebCore::Layout::InlineRun::height const): Deleted.
(WebCore::Layout::InlineRun::setWidth): Deleted.
- layout/inlineformatting/Line.cpp:
(WebCore::Layout::InlineFormattingContext::Line::init):
(WebCore::Layout::InlineFormattingContext::Line::appendContent):
(WebCore::Layout::InlineFormattingContext::Line::close):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::outputInlineRuns):
Tools:
- LayoutReloaded/misc/LFC-passing-tests.txt:
LayoutTests:
- fast/inline/inline-content-with-image-simple-expected.txt: Added.
- fast/inline/inline-content-with-image-simple.html: Added.
- 7:07 AM Changeset in webkit [238459] by
-
- 5 edits in trunk/Source
UI side compositing doesn't paint on Mac
https://bugs.webkit.org/show_bug.cgi?id=191908
Reviewed by Tim Horton.
Source/WebCore:
For clarity put RGB10 and RGB10A8 formats behind PLATFORM(IOS_FAMILY). They are not supported on Mac.
- platform/graphics/cocoa/IOSurface.h:
- platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::IOSurface):
(WebCore::IOSurface::ensurePlatformContext):
(WebCore::IOSurface::format const):
(WebCore::operator<<):
Source/WebKit:
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::bytesPerPixel const):
(WebKit::RemoteLayerBackingStore::surfaceBufferFormat const):
These deep color formats are not supported on Mac.
- 5:36 AM Changeset in webkit [238458] by
-
- 3 edits in trunk/Tools
[GTK] [WPE] Tools/Platform{GTK,WPE}.cmake files missing from the tarballs
https://bugs.webkit.org/show_bug.cgi?id=191923
Add Tools/PlatformGTK.cmake and Tools/PlatformWPE.cmake to their
respective tarballs.
Reviewed by Carlos Garcia Campos.
- gtk/manifest.txt.in:
- wpe/manifest.txt.in:
- 3:04 AM Changeset in webkit [238457] by
-
- 60 edits14 adds in trunk
[css-grid] Implement Baseline Alignment for grid items
https://bugs.webkit.org/show_bug.cgi?id=145566
Reviewed by Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
Updated test expectations of severla tests, that are now passing with the new code.
- resources/import-expectations.json:
- web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-001-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-002-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-003-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-004-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-005-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-006-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-007-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-008-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-001-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-002-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-003-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-004-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-004-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-003-expected.txt:
- web-platform-tests/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-007.html:
- web-platform-tests/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-008.html:
- web-platform-tests/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-009.html:
- web-platform-tests/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-010.html:
- web-platform-tests/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-011.html:
- web-platform-tests/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-012.html:
- web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-002-expected.txt:
- web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-002-expected.txt:
- web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-rl-002-expected.txt:
- web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-002-expected.txt:
- web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002-expected.txt:
- web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002-expected.txt:
Source/WebCore:
This patch impements the Baseline Self-Alignment feature for grid items according to
the CSS Box Alignment specification [1].
This new layout logic is handled by the Self-Alignment (justify-self and align-self)
and Default-Alignment (justify-items and align-items) CSS properties.
This feature allows users to align the grid items sharing a Baseline Alignment Context,
either row or column contexts, based on their respective baselines.
[1] https://drafts.csswg.org/css-align-3/#baseline-align-self
Tests: fast/css-grid-layout/grid-self-baseline-and-flex-tracks-with-indefinite-container-crash.html
fast/css-grid-layout/grid-self-baseline-and-flexible-tracks-should-not-crash.html
fast/css-grid-layout/grid-self-baseline-and-item-relayout-should-not-crash.html
fast/css-grid-layout/grid-self-baseline-and-relative-sized-items-crash.html
fast/css-grid-layout/grid-self-baseline-and-relative-sized-tracks-crash.html
fast/css-grid-layout/grid-self-baseline-followed-by-item-style-change-should-not-crash.html
- Sources.txt:
- rendering/GridBaselineAlignment.cpp: Added.
(WebCore::GridBaselineAlignment::marginOverForChild const):
(WebCore::GridBaselineAlignment::marginUnderForChild const):
(WebCore::GridBaselineAlignment::logicalAscentForChild const):
(WebCore::GridBaselineAlignment::ascentForChild const):
(WebCore::GridBaselineAlignment::descentForChild const):
(WebCore::GridBaselineAlignment::isDescentBaselineForChild const):
(WebCore::GridBaselineAlignment::isHorizontalBaselineAxis const):
(WebCore::GridBaselineAlignment::isOrthogonalChildForBaseline const):
(WebCore::GridBaselineAlignment::isParallelToBaselineAxisForChild const):
(WebCore::GridBaselineAlignment::baselineGroupForChild const):
(WebCore::GridBaselineAlignment::updateBaselineAlignmentContext):
(WebCore::GridBaselineAlignment::baselineOffsetForChild const):
(WebCore::GridBaselineAlignment::clear):
(WebCore::BaselineGroup::BaselineGroup):
(WebCore::BaselineGroup::update):
(WebCore::BaselineGroup::isOppositeBlockFlow const):
(WebCore::BaselineGroup::isOrthogonalBlockFlow const):
(WebCore::BaselineGroup::isCompatible const):
(WebCore::BaselineContext::BaselineContext):
(WebCore::BaselineContext::sharedGroup const):
(WebCore::BaselineContext::updateSharedGroup):
(WebCore::BaselineContext::findCompatibleSharedGroup):
- rendering/GridBaselineAlignment.h: Added.
(WebCore::BaselineGroup::maxAscent const):
(WebCore::BaselineGroup::maxDescent const):
(WebCore::BaselineGroup::size const):
(WebCore::isBaselinePosition):
(WebCore::GridBaselineAlignment::setBlockFlow):
- rendering/GridLayoutFunctions.h:
- rendering/GridTrackSizingAlgorithm.cpp:
(WebCore::gridAxisForDirection):
(WebCore::gridDirectionForAxis):
(WebCore::GridTrackSizingAlgorithm::availableSpace const):
(WebCore::GridTrackSizingAlgorithm::isIntrinsicSizedGridArea const):
(WebCore::GridTrackSizingAlgorithmStrategy::logicalHeightForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::minContentForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::maxContentForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::minSizeForChild const):
(WebCore::GridTrackSizingAlgorithm::canParticipateInBaselineAlignment const):
(WebCore::GridTrackSizingAlgorithm::participateInBaselineAlignment const):
(WebCore::GridTrackSizingAlgorithm::updateBaselineAlignmentContext):
(WebCore::GridTrackSizingAlgorithm::baselineOffsetForChild const):
(WebCore::GridTrackSizingAlgorithm::clearBaselineItemsCache):
(WebCore::GridTrackSizingAlgorithm::cacheBaselineAlignedItem):
(WebCore::GridTrackSizingAlgorithm::copyBaselineItemsCache):
(WebCore::GridTrackSizingAlgorithm::setup):
(WebCore::GridTrackSizingAlgorithm::computeBaselineAlignmentContext):
- rendering/GridTrackSizingAlgorithm.h:
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::firstLineBaseline const):
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::computeIntrinsicLogicalWidths const):
(WebCore::RenderGrid::placeItemsOnGrid const):
(WebCore::RenderGrid::performGridItemsPreLayout const):
(WebCore::synthesizedBaselineFromMarginBox):
(WebCore::RenderGrid::isBaselineAlignmentForChild const):
(WebCore::RenderGrid::baselinePosition const):
(WebCore::RenderGrid::firstLineBaseline const):
(WebCore::RenderGrid::inlineBlockBaseline const):
(WebCore::RenderGrid::columnAxisBaselineOffsetForChild const):
(WebCore::RenderGrid::rowAxisBaselineOffsetForChild const):
(WebCore::RenderGrid::columnAxisOffsetForChild const):
(WebCore::RenderGrid::rowAxisOffsetForChild const):
- rendering/RenderGrid.h:
LayoutTests:
Most of the baseline realated tests pass now; just a few still fail because of unrelated bugs.
- TestExpectations: Removed several entries, related to the baseline tests that are now passing.
- fast/css-grid-layout/grid-align-baseline-expected.txt:
- fast/css-grid-layout/grid-align-baseline-vertical-expected.txt:
- fast/css-grid-layout/grid-baseline-expected.html:
- fast/css-grid-layout/grid-baseline-margins-expected.html:
- fast/css-grid-layout/grid-baseline-margins.html:
- fast/css-grid-layout/grid-baseline-must-respect-grid-order-expected.txt:
- fast/css-grid-layout/grid-baseline-must-respect-grid-order.html:
- fast/css-grid-layout/grid-baseline.html:
- fast/css-grid-layout/grid-self-baseline-and-flex-tracks-with-indefinite-container-crash-expected.txt: Added.
- fast/css-grid-layout/grid-self-baseline-and-flex-tracks-with-indefinite-container-crash.html: Added.
- fast/css-grid-layout/grid-self-baseline-and-flexible-tracks-should-not-crash-expected.txt: Added.
- fast/css-grid-layout/grid-self-baseline-and-flexible-tracks-should-not-crash.html: Added.
- fast/css-grid-layout/grid-self-baseline-and-item-relayout-should-not-crash-expected.txt: Added.
- fast/css-grid-layout/grid-self-baseline-and-item-relayout-should-not-crash.html: Added.
- fast/css-grid-layout/grid-self-baseline-and-relative-sized-items-crash-expected.txt: Added.
- fast/css-grid-layout/grid-self-baseline-and-relative-sized-items-crash.html: Added.
- fast/css-grid-layout/grid-self-baseline-and-relative-sized-tracks-crash-expected.txt: Added.
- fast/css-grid-layout/grid-self-baseline-and-relative-sized-tracks-crash.html: Added.
- fast/css-grid-layout/grid-self-baseline-followed-by-item-style-change-should-not-crash-expected.txt: Added.
- fast/css-grid-layout/grid-self-baseline-followed-by-item-style-change-should-not-crash.html: Added.
- fast/css-grid-layout/grid-self-baseline-two-dimensional-expected.txt:
- fast/css-grid-layout/grid-self-baseline-two-dimensional.html: