⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Nov 25, 2018:

10:55 PM Changeset in webkit [238487] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening, rebaseline webgpu/queue-creation.html.

  • webgpu/queue-creation-expected.txt:
5:06 PM Changeset in webkit [238486] by Alan Bujtas
  • 2 edits in trunk/Tools

Unreviewed test fix after r238467.

  • TestWebKitAPI/Tests/WTF/ListHashSet.cpp:

(TestWebKitAPI::TEST):

2:59 PM Changeset in webkit [238485] by Wenson Hsieh
  • 2 edits in trunk/Tools

Unreviewed, fix the internal iOS 12 build after r238471

  • TestWebKitAPI/Tests/WebKitCocoa/DataDetection.mm:

(TEST):

2:11 PM Changeset in webkit [238484] by Devin Rousso
  • 20 edits
    3 copies
    8 adds in trunk/Source/WebInspectorUI

Web Inspector: Timelines: add Media timeline
https://bugs.webkit.org/show_bug.cgi?id=191625

Reviewed by Matt Baker.

Add a new timeline to Timelines for media related events (e.g. event/fullscreen/low-power).
Mimics what is visible by using the same instrumentation points as the Network tab when
"Group Media Requests" is enabled.

  • UserInterface/Models/MediaInstrument.js: Added.

(WI.MediaInstrument):
(WI.MediaInstrument.supported):
(WI.MediaInstrument.prototype.get timelineRecordType):
(WI.MediaInstrument.prototype.startInstrumentation):
(WI.MediaInstrument.prototype.stopInstrumentation):

  • UserInterface/Models/MediaTimelineRecord.js: Added.

(WI.MediaTimelineRecord):
(WI.MediaTimelineRecord.prototype.get eventType):
(WI.MediaTimelineRecord.prototype.get domNode):
(WI.MediaTimelineRecord.prototype.get domEvent):
(WI.MediaTimelineRecord.prototype.get isLowPower):
(WI.MediaTimelineRecord.prototype.get displayName):
(WI.MediaTimelineRecord.prototype.saveIdentityToCookie):

  • UserInterface/Views/MediaTimelineDataGridNode.js: Added.

(WI.MediaTimelineDataGridNode):
(WI.MediaTimelineDataGridNode.prototype.get records):
(WI.MediaTimelineDataGridNode.prototype.get data):
(WI.MediaTimelineDataGridNode.prototype.createCellContent):
(WI.MediaTimelineDataGridNode.prototype.iconClassNames):
(WI.MediaTimelineDataGridNode.prototype.filterableDataForColumn):

  • UserInterface/Views/MediaTimelineOverviewGraph.js: Added.

(WI.MediaTimelineOverviewGraph):
(WI.MediaTimelineOverviewGraph.prototype.reset):
(WI.MediaTimelineOverviewGraph.prototype.shown):
(WI.MediaTimelineOverviewGraph.prototype.hidden):
(WI.MediaTimelineOverviewGraph.prototype.layout):
(WI.MediaTimelineOverviewGraph.prototype.updateSelectedRecord):
(WI.MediaTimelineOverviewGraph.prototype._handleRecordAdded):

  • UserInterface/Views/MediaTimelineOverviewGraph.css: Added.

(.timeline-overview-graph.media > .timeline-record-bar):
(.timeline-overview-graph.media > .timeline-record-bar > .segment):

  • UserInterface/Views/MediaTimelineView.js: Added.

(WI.MediaTimelineView):
(WI.MediaTimelineView.prototype.get secondsPerPixel):
(WI.MediaTimelineView.prototype.get selectionPathComponents):
(WI.MediaTimelineView.prototype.closed):
(WI.MediaTimelineView.prototype.reset):
(WI.MediaTimelineView.prototype.dataGridSortComparator.compareDOMNodes):
(WI.MediaTimelineView.prototype.dataGridSortComparator.):
(WI.MediaTimelineView.prototype.dataGridSortComparator):
(WI.MediaTimelineView.prototype.layout):
(WI.MediaTimelineView.prototype._processPendingRecords):
(WI.MediaTimelineView.prototype._handleRecordAdded):
(WI.MediaTimelineView.prototype._handleSelectionPathComponentSiblingSelected):

  • UserInterface/Views/MediaTimelineView.css: Added.

(.timeline-view.media > .data-grid):

  • UserInterface/Views/DOMEventsBreakdownView.js:

(WI.DOMEventsBreakdownView.prototype.layout):

  • UserInterface/Views/DOMNodeEventsContentView.js:

(WI.DOMNodeEventsContentView.prototype.initialLayout):

  • UserInterface/Views/NetworkDOMNodeDetailView.js:

(WI.NetworkDOMNodeDetailView):
(WI.NetworkDOMNodeDetailView.prototype.showContentViewForIdentifier):

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype.get filterNavigationItems):
(WI.NetworkTableContentView.prototype._populateWaterfallGraph):
(WI.NetworkTableContentView.prototype._showDetailView):
(WI.NetworkTableContentView.prototype._waterfallPopoverContentForNodeEntry):
Remove passing of startTimestamp to WI.DOMEventsBreakdownView, as we should be showing
absolute timestamps for each event, not relative to the start of the recording.

  • UserInterface/Views/TimelineIcons.css:

(.media-icon .icon): Added.
(.dom-event-record .icon): Added.
(.dom-event-record.fullscreen .icon): Added.
(.low-power-record .icon): Added.

  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager.availableTimelineTypes):
(WI.TimelineManager.prototype.capturingStarted):
(WI.TimelineManager.prototype.capturingStopped):
(WI.TimelineManager.prototype._updateAutoCaptureInstruments):
(WI.TimelineManager.prototype._handleDOMNodeDidFireEvent): Added.
(WI.TimelineManager.prototype._handleDOMNodeLowPowerChanged): Added.

  • UserInterface/Views/TimelineRuler.js:

(WI.TimelineRuler.prototype.clearMarkers):
(WI.TimelineRuler.prototype._handleClick):

  • UserInterface/Views/TimelineOverview.js:

(WI.TimelineOverview.prototype._timelineRulerMouseClicked):

  • UserInterface/Models/TimelineRecording.js:

(WI.TimelineRecording.prototype.reset):
(WI.TimelineRecording.prototype.addEventMarker):
(WI.TimelineRecording.prototype.addRecord):
(WI.TimelineRecording.prototype._keyForRecord):
Drive-by: rework the logic for "click" event pass-through to the graph underneath.

  • UserInterface/Models/Instrument.js:

(WI.Instrument.createForTimelineType):

  • UserInterface/Models/TimelineRecord.js:
  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView.displayNameForTimelineType):
(WI.TimelineTabContentView.iconClassNameForTimelineType):
(WI.TimelineTabContentView.genericClassNameForTimelineType):
(WI.TimelineTabContentView.iconClassNameForRecord):
(WI.TimelineTabContentView.displayNameForRecord):

  • UserInterface/Views/TimelineRecordBar.css:

(.timeline-record-bar.timeline-record-type-media > .segment): Added.

  • UserInterface/Views/ContentView.js:

(WI.ContentView.createFromRepresentedObject):

  • UserInterface/Views/TimelineOverviewGraph.js:

(WI.TimelineOverviewGraph.createForTimeline):

  • UserInterface/Models/ScriptTimelineRecord.js:

(WI.ScriptTimelineRecord.EventType.displayName):

  • UserInterface/Main.html:
  • UserInterface/Test.html:
  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Images/DOMEvent.svg: Added.
  • UserInterface/Images/DOMEventFullscreen.svg: Added.
  • UserInterface/Images/LowPower.svg: Added.
  • UserInterface/Images/MediaInstrument.svg: Added.
1:44 PM Changeset in webkit [238483] by Matt Baker
  • 14 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove parameters from TreeOutline SelectionDidChange event
https://bugs.webkit.org/show_bug.cgi?id=191770

Reviewed by Devin Rousso.

  • UserInterface/Controllers/CallFrameTreeController.js:

(WI.CallFrameTreeController.prototype._treeSelectionDidChange):

  • UserInterface/Views/AuditNavigationSidebarPanel.js:

(WI.AuditNavigationSidebarPanel.prototype._treeSelectionDidChange):

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel):
(WI.CanvasSidebarPanel.prototype._treeSelectionDidChange):
(WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange): Deleted.

  • UserInterface/Views/CanvasTabContentView.js:

(WI.CanvasTabContentView.prototype._canvasTreeOutlineSelectionDidChange):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange):

  • UserInterface/Views/OpenResourceDialog.js:

(WI.OpenResourceDialog.prototype._treeSelectionDidChange):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WI.ResourceSidebarPanel.prototype._treeSelectionDidChange):

  • UserInterface/Views/SearchSidebarPanel.js:

(WI.SearchSidebarPanel.prototype._treeSelectionDidChange):

  • UserInterface/Views/StorageSidebarPanel.js:

(WI.StorageSidebarPanel._treeSelectionDidChange):

  • UserInterface/Views/TimelineDataGrid.js:

(WI.TimelineDataGrid.prototype._popoverCallStackTreeSelectionDidChange):
(WI.TimelineDataGrid):

  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView.prototype._recordingsTreeSelectionDidChange):
Use event.target.selectedTreeElement instead of event.data.selectedElement.

  • UserInterface/Views/TimelineOverview.js:

(WI.TimelineOverview.prototype._timelinesTreeSelectionDidChange):
(WI.TimelineOverview.prototype._timelinesTreeSelectionDidChange.updateGraphSelectedState): Deleted.
Refactor away the single place event.data.deselectedElement was used.

  • UserInterface/Views/TreeElement.js:

(WI.TreeElement.prototype.select):
(WI.TreeElement.prototype.deselect):
Remove selectedElement and deselectedElement from event data.

1:35 PM Changeset in webkit [238482] by Alan Bujtas
  • 10 edits in trunk/Source/WebCore

[LFC] Remove PointInContainingBlock and PositionInContainingBlock
https://bugs.webkit.org/show_bug.cgi?id=191954

Reviewed by Antti Koivisto.

Use Point and Position instead. Points and positions are by default in the containing block's coordinate system.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::contentHeightForFormattingContextRoot):

  • layout/LayoutUnits.h:

(WebCore::Layout::Position::operator LayoutUnit const):
(WebCore::Layout::operator<):
(WebCore::Layout::operator==):

  • layout/floats/FloatAvoider.cpp:

(WebCore::Layout::FloatAvoider::FloatAvoider):
(WebCore::Layout::FloatAvoider::setHorizontalConstraints):
(WebCore::Layout::FloatAvoider::horizontalPositionCandidate):
(WebCore::Layout::FloatAvoider::initialHorizontalPosition const):

  • layout/floats/FloatBox.cpp:

(WebCore::Layout::FloatBox::horizontalPositionCandidate):
(WebCore::Layout::FloatBox::verticalPositionCandidate):
(WebCore::Layout::FloatBox::initialVerticalPosition const):

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::positionForFloatAvoiding const):
(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
(WebCore::Layout::FloatingContext::floatingPosition const):
(WebCore::Layout::FloatingPair::horizontalConstraints const):
(WebCore::Layout::FloatingPair::bottom const):

  • layout/floats/FloatingContext.h:
  • layout/floats/FloatingState.cpp:

(WebCore::Layout::FloatingState::constraints const):
(WebCore::Layout::FloatingState::bottom const):

  • layout/floats/FloatingState.h:

(WebCore::Layout::FloatingState::FloatItem::bottom const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::initializeNewLine const):

1:32 PM Changeset in webkit [238481] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC] Rename Layout::Position to Layout::Point
https://bugs.webkit.org/show_bug.cgi?id=191950

Reviewed by Antti Koivisto.

It actually represents a point.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::mapTopLeftToAncestor):
(WebCore::Layout::FormattingContext::mapCoordinateToAncestor):

  • layout/FormattingContext.h:
  • layout/LayoutUnits.h:

(WebCore::Layout::Point::Point):
(WebCore::Layout::Point::moveBy):
(WebCore::Layout::Position::operator LayoutPoint const): Deleted.
(WebCore::Layout::Position::Position): Deleted.
(WebCore::Layout::Position::moveBy): Deleted.

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::staticPosition):

  • layout/floats/FloatingState.cpp:

(WebCore::Layout::FloatingState::constraints const):

1:30 PM Changeset in webkit [238480] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] Floating code should use typed positions (PositionInContextRoot).
https://bugs.webkit.org/show_bug.cgi?id=191949

Reviewed by Antti Koivisto.

Use PositionInContextRoot instead of LayoutUnit.

  • layout/floats/FloatingState.cpp:

(WebCore::Layout::FloatingState::constraints const):
(WebCore::Layout::FloatingState::bottom const):

  • layout/floats/FloatingState.h:

(WebCore::Layout::FloatingState::leftBottom const):
(WebCore::Layout::FloatingState::rightBottom const):
(WebCore::Layout::FloatingState::bottom const):

1:28 PM Changeset in webkit [238479] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Fix build after r238472.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::splitInlineRunIfNeeded const):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::runWidth):

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::InlineLineBreaker::textWidth const):

10:22 AM Changeset in webkit [238478] by Michael Catanzaro
  • 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.

We also have to define CRASH_UNDER_CONSTEXPR_CONTEXT(). It's a bit odd that it's possible to
use a non-constexpr function here, but it works. Currently this macro uses WTFCrash(), which
is also non-constexpr.

  • wtf/Assertions.h:
8:22 AM Changeset in webkit [238477] by Michael Catanzaro
  • 2 edits in trunk/Source/WTF

Unreviewed, rolling out r238469.

Broke the build

Reverted changeset:

"CRASH() should call abort() except on Darwin and in developer
builds"
https://bugs.webkit.org/show_bug.cgi?id=184408
https://trac.webkit.org/changeset/238469

4:19 AM Changeset in webkit [238476] by Antti Koivisto
  • 8 edits in trunk/Source/WebKit

RemoteLayerTreeNode construction cleanups
https://bugs.webkit.org/show_bug.cgi?id=191951

Reviewed by Tim Horton.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::updateLayerTree):

Drop unused LayerProperties argument.

(WebKit::RemoteLayerTreeHost::createLayer):

Split the actual construction out to makeNode.
Map updating is shared between platforms.
Move setting of layerID and clearing default actions to RemoteLayerTreeNode.

(WebKit::RemoteLayerTreeHost::makeNode):

Returns RemoteLayerTreeNode.

(WebKit::RemoteLayerTreeHost::setLayerID): Deleted.
(WebKit::RemoteLayerTreeHost::layerID): Deleted.

Move to RemoteLayerTreeNode.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:

(WebKit::RemoteLayerTreeNode::RemoteLayerTreeNode):
(WebKit::RemoteLayerTreeNode::setLayerID):
(WebKit::RemoteLayerTreeNode::layerID):

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:

(WebKit::RemoteLayerTreeHost::makeNode):
(WebKit::RemoteLayerTreeHost::createEmbeddedView):
(WebKit::RemoteLayerTreeHost::createLayer): Deleted.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(-[WKCompositingView description]):
(-[WKUIRemoteView description]):
(-[WKBackdropView description]):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(WebKit::addAnimationToLayer):

4:11 AM Changeset in webkit [238475] by timothy_horton@apple.com
  • 25 edits
    1 copy
    7 adds in trunk

Make it possible to insert editable images with a gesture
https://bugs.webkit.org/show_bug.cgi?id=191937

Reviewed by Wenson Hsieh.

Source/WebCore:

Tests:

editing/images/redo-insert-editable-image-maintains-strokes.html,
editing/images/undo-insert-editable-image.html,
editing/images/basic-editable-image-from-execCommand.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • Source/WebCore/editing/EditorCommand.cpp:
  • Source/WebCore/en.lproj/Localizable.strings:
  • editing/EditAction.h:
  • editing/Editor.cpp:

(WebCore::Editor::insertEditableImage):

  • editing/Editor.h:
  • editing/InsertEditableImageCommand.cpp: Added.

(WebCore::InsertEditableImageCommand::InsertEditableImageCommand):
(WebCore::InsertEditableImageCommand::doApply):

  • editing/InsertEditableImageCommand.h: Added.

(WebCore::InsertEditableImageCommand::create):

  • editing/VisibleSelection.cpp:

Add an editor command that inserts an editable image.
It will likely get a bit more complicated, but for now it just inserts
a 100% by 300px editable image.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _stylusTapGestureShouldCreateEditableImage]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:

Add a internal getter for a WKWebViewConfiguration property.

  • UIProcess/WebEditCommandProxy.cpp:

(WebKit::WebEditCommandProxy::nameForEditAction):
Add a undo name.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
Add a single-stylus-tap gesture recognizer.

(-[WKContentView _stylusSingleTapRecognized:]):
If allowed, request to insert an editable image when a stylus tap occurs.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::handleStylusSingleTapAtPoint):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleStylusSingleTapAtPoint):
Do a hit test, select the hit position, insert an editable image, and
then de-assist any assisted node (to make the keyboard go away).
For now, we'll only insert if we hit non-replaced elements,
though this heuristic will need to be enhanced significantly once we
decide on a design.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebEditorClient.mm:

(undoNameForEditAction):
Add a undo name.

Tools:

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::drawSquareInEditableImage):
If the canvas already has a drawing, draw a new stroke on top of it
instead of removing the existing stroke.

LayoutTests:

  • editing/images/basic-editable-image-from-execCommand-expected.txt: Added.
  • editing/images/basic-editable-image-from-execCommand.html: Added.

Add a test that ensures that editable images also work when
inserted via the editor command.

  • editing/images/redo-insert-editable-image-maintains-strokes-expected.txt: Added.
  • editing/images/redo-insert-editable-image-maintains-strokes.html: Added.

Add a test that ensures that strokes are maintained when re-doing an
un-done editable image insertion.

  • editing/images/undo-insert-editable-image-expected.txt: Added.
  • editing/images/undo-insert-editable-image.html: Added.

Add a test that ensures that the selection stays in a sensible place
when undoing and redoing editable image insertion.

4:05 AM Changeset in webkit [238474] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit

Scrolling and drawing compete for incoming gestures
https://bugs.webkit.org/show_bug.cgi?id=191940

Reviewed by Wenson Hsieh.

  • Platform/spi/ios/PencilKitSPI.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/ios/WKDrawingView.mm:

(-[WKDrawingView initWithEmbeddedViewID:webPageProxy:]):
Make scrolling and drawing mutually exclusive if editable images
are enabled.

Nov 24, 2018:

5:45 PM Changeset in webkit [238473] by Wenson Hsieh
  • 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 commit-queue@webkit.org
  • 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 Wenson Hsieh
  • 19 edits
    1 copy
    1 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 aestes@apple.com
  • 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 Michael Catanzaro
  • 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:
Note: See TracTimeline for information about the timeline view.