Add instrumentation for frame start/end on timeline.
authorcaseq@chromium.org <caseq@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 5 Mar 2012 08:48:29 +0000 (08:48 +0000)
committercaseq@chromium.org <caseq@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 5 Mar 2012 08:48:29 +0000 (08:48 +0000)
commit739864f5e69e057dddae4cd087ec2bf5880f28e2
tree586e2a4f1235cbfad738c58f99503d97f734dfac
parenta7210a6120421adc3fb7b6196e9a9cb068ec59bb
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
17 files changed:
LayoutTests/ChangeLog
LayoutTests/inspector/timeline/timeline-enum-stability-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/inspector/InspectorInstrumentation.cpp
Source/WebCore/inspector/InspectorInstrumentation.h
Source/WebCore/inspector/InspectorTimelineAgent.cpp
Source/WebCore/inspector/InspectorTimelineAgent.h
Source/WebCore/inspector/front-end/TimelineModel.js
Source/WebCore/inspector/front-end/TimelineOverviewPane.js
Source/WebCore/inspector/front-end/TimelinePanel.js
Source/WebCore/inspector/front-end/TimelinePresentationModel.js
Source/WebCore/inspector/front-end/inspectorCommon.css
Source/WebCore/inspector/front-end/timelinePanel.css
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/public/WebWidget.h
Source/WebKit/chromium/src/WebViewImpl.cpp
Source/WebKit/chromium/src/WebViewImpl.h