X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fthird_party%2FWebKit%2FSource%2Fdevtools%2Ffront_end%2Ftimeline%2FTimelineJSProfile.js;h=42eda0d6aab7d918680535d829c11e448b57a536;hb=1afa4dd80ef85af7c90efaea6959db1d92330844;hp=175adbc2ef23a08813f1de4edcd9689c64c049d1;hpb=90762837333c13ccf56f2ad88e4481fc71e8d281;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/third_party/WebKit/Source/devtools/front_end/timeline/TimelineJSProfile.js b/src/third_party/WebKit/Source/devtools/front_end/timeline/TimelineJSProfile.js index 175adbc..42eda0d 100644 --- a/src/third_party/WebKit/Source/devtools/front_end/timeline/TimelineJSProfile.js +++ b/src/third_party/WebKit/Source/devtools/front_end/timeline/TimelineJSProfile.js @@ -6,92 +6,6 @@ WebInspector.TimelineJSProfileProcessor = { }; /** - * @param {!WebInspector.TimelineModelImpl} timelineModel - * @param {!ProfilerAgent.CPUProfile} jsProfile - */ -WebInspector.TimelineJSProfileProcessor.mergeJSProfileIntoTimeline = function(timelineModel, jsProfile) -{ - if (!jsProfile.samples) - return; - var jsProfileModel = new WebInspector.CPUProfileDataModel(jsProfile); - var idleNode = jsProfileModel.idleNode; - var programNode = jsProfileModel.programNode; - var gcNode = jsProfileModel.gcNode; - - /** - * @param {!WebInspector.TimelineModel.Record} record - */ - function processRecord(record) - { - if (record.type() !== WebInspector.TimelineModel.RecordType.FunctionCall && - record.type() !== WebInspector.TimelineModel.RecordType.EvaluateScript) - return; - var recordStartTime = record.startTime(); - var recordEndTime = record.endTime(); - var originalChildren = record.children().splice(0); - var childIndex = 0; - - /** - * @param {number} depth - * @param {!ProfilerAgent.CPUProfileNode} node - * @param {number} startTime - */ - function onOpenFrame(depth, node, startTime) - { - if (node === idleNode || node === programNode || node === gcNode) - return; - var event = { - type: "JSFrame", - data: node, - startTime: startTime - }; - putOriginalChildrenUpToTime(startTime); - record = new WebInspector.TimelineModel.RecordImpl(timelineModel, event, record); - } - - /** - * @param {number} depth - * @param {!ProfilerAgent.CPUProfileNode} node - * @param {number} startTime - * @param {number} totalTime - * @param {number} selfTime - */ - function onCloseFrame(depth, node, startTime, totalTime, selfTime) - { - if (node === idleNode || node === programNode || node === gcNode) - return; - record.setEndTime(Math.min(startTime + totalTime, recordEndTime)); - record._selfTime = record.endTime() - record.startTime(); - putOriginalChildrenUpToTime(record.endTime()); - var deoptReason = node.deoptReason; - if (deoptReason && deoptReason !== "no reason") - record.addWarning(deoptReason); - record = record.parent; - } - - /** - * @param {number} endTime - */ - function putOriginalChildrenUpToTime(endTime) - { - for (; childIndex < originalChildren.length; ++childIndex) { - var child = originalChildren[childIndex]; - var midTime = (child.startTime() + child.endTime()) / 2; - if (midTime >= endTime) - break; - child.parent = record; - record.children().push(child); - } - } - - jsProfileModel.forEachFrame(onOpenFrame, onCloseFrame, recordStartTime, recordEndTime); - putOriginalChildrenUpToTime(recordEndTime); - } - - timelineModel.forAllRecords(processRecord); -} - -/** * @param {!WebInspector.TracingTimelineModel} timelineModel * @param {!ProfilerAgent.CPUProfile} jsProfile * @return {!Array.}