Add instrumentation for frame start/end on timeline.
Web Inspector: add timeline instrumentation for frame events
https://bugs.webkit.org/show_bug.cgi?id=80127
Reviewed by Pavel Feldman.
Source/WebCore:
- display frame boundaries when vertical overview mode is on
- aggregate by frame in vertical overview mode
- switched event filtering criteria from index to time in vertical overview mode
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didBeginFrameImpl):
(WebCore):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::didBeginFrame):
(WebCore):
* inspector/InspectorTimelineAgent.cpp:
(TimelineRecordType):
(WebCore::InspectorTimelineAgent::didBeginFrame):
(WebCore):
* inspector/InspectorTimelineAgent.h:
(InspectorTimelineAgent):
* inspector/front-end/TimelineModel.js:
* inspector/front-end/TimelineOverviewPane.js:
(WebInspector.TimelineOverviewPane):
(WebInspector.TimelineOverviewPane.prototype._showMemoryGraph):
(WebInspector.TimelineOverviewPane.prototype.setStartAtZero):
(WebInspector.TimelineOverviewPane.prototype.updateEventDividers):
(WebInspector.TimelineOverviewPane.prototype.sidebarResized):
(WebInspector.TimelineOverviewPane.prototype.reset):
(WebInspector.TimelineOverviewPane.prototype.accept):
(WebInspector.TimelineOverviewPane.prototype.windowStartTime):
(WebInspector.TimelineOverviewPane.prototype.windowEndTime):
(WebInspector.TimelineOverviewPane.prototype._onWindowChanged):
(WebInspector.TimelineStartAtZeroOverview):
(WebInspector.TimelineStartAtZeroOverview.prototype.reset):
(WebInspector.TimelineStartAtZeroOverview.prototype.update):
(WebInspector.TimelineStartAtZeroOverview.prototype._aggregateFrames):
(WebInspector.TimelineStartAtZeroOverview.prototype._aggregateFrameStatistics):
(WebInspector.TimelineStartAtZeroOverview.prototype._aggregateRecords):
(WebInspector.TimelineStartAtZeroOverview.prototype._buildBar):
(WebInspector.TimelineStartAtZeroOverview.prototype.getWindowTimes):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._updateEventDividers):
(WebInspector.TimelinePanel.prototype._createEventDivider):
(WebInspector.TimelinePanel.prototype._toggleStartAtZeroButtonClicked):
(WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline.addTimestampRecords):
(WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
(WebInspector.TimelinePanel.prototype._refresh):
(WebInspector.TimelinePanel.prototype._refreshRecords):
(WebInspector.TimelineCategoryFilter.prototype.accept):
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.prototype.get _recordStyles):
* inspector/front-end/inspectorCommon.css:
* inspector/front-end/timelinePanel.css:
(#timeline-container):
(.timeline .resources-event-divider):
(.timeline.timeline-start-at-zero .resources-divider):
(.timeline .resources-event-divider.timeline-frame-divider):
Source/WebKit/chromium:
- expose an instrumentation method from WebWidget to mark frame update start
* public/WebWidget.h:
(WebWidget):
(WebKit::WebWidget::instrumentBeginFrame):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::instrumentBeginFrame):
(WebKit):
* src/WebViewImpl.h:
(WebViewImpl):
LayoutTests:
* inspector/timeline/timeline-enum-stability-expected.txt:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@109724
268f45cc-cd09-0410-ab3c-
d52691b4dbfc