Index: chrome/tools/test/reference_build/chrome_linux/resources/inspector/profile_view.js |
diff --git a/chrome/tools/test/reference_build/chrome_linux/resources/inspector/profile_view.js b/chrome/tools/test/reference_build/chrome_linux/resources/inspector/profile_view.js |
index 9d196a37af4c3733b0a1c27c1ecef763d8f001c6..bdea6319db7a2f20f90b1671790e98085bbc0138 100644 |
--- a/chrome/tools/test/reference_build/chrome_linux/resources/inspector/profile_view.js |
+++ b/chrome/tools/test/reference_build/chrome_linux/resources/inspector/profile_view.js |
@@ -53,6 +53,7 @@ devtools.profiler.ViewBuilder.prototype.buildView = function( |
callTree, opt_bottomUpViewWeights) { |
var head; |
var samplingRate = this.samplingRate; |
+ var createViewNode = this.createViewNode; |
callTree.traverse(function(node, viewParent) { |
var totalWeight = node.totalWeight * samplingRate; |
var selfWeight = node.selfWeight * samplingRate; |
@@ -63,8 +64,7 @@ devtools.profiler.ViewBuilder.prototype.buildView = function( |
selfWeight = 0; |
} |
} |
- var viewNode = new devtools.profiler.ProfileView.Node( |
- node.label, totalWeight, selfWeight, head); |
+ var viewNode = createViewNode(node.label, totalWeight, selfWeight, head); |
if (viewParent) { |
viewParent.addChild(viewNode); |
} else { |
@@ -72,26 +72,50 @@ devtools.profiler.ViewBuilder.prototype.buildView = function( |
} |
return viewNode; |
}); |
- var view = new devtools.profiler.ProfileView(head); |
+ var view = this.createView(head); |
return view; |
}; |
/** |
+ * Factory method for a profile view. |
+ * |
+ * @param {devtools.profiler.ProfileView.Node} head View head node. |
+ * @return {devtools.profiler.ProfileView} Profile view. |
+ */ |
+devtools.profiler.ViewBuilder.prototype.createView = function(head) { |
+ return new devtools.profiler.ProfileView(head); |
+}; |
+ |
+ |
+/** |
+ * Factory method for a profile view node. |
+ * |
+ * @param {string} internalFuncName A fully qualified function name. |
+ * @param {number} totalTime Amount of time that application spent in the |
+ * corresponding function and its descendants (not that depending on |
+ * profile they can be either callees or callers.) |
+ * @param {number} selfTime Amount of time that application spent in the |
+ * corresponding function only. |
+ * @param {devtools.profiler.ProfileView.Node} head Profile view head. |
+ * @return {devtools.profiler.ProfileView.Node} Profile view node. |
+ */ |
+devtools.profiler.ViewBuilder.prototype.createViewNode = function( |
+ funcName, totalTime, selfTime, head) { |
+ return new devtools.profiler.ProfileView.Node( |
+ funcName, totalTime, selfTime, head); |
+}; |
+ |
+ |
+/** |
* Creates a Profile View object. It allows to perform sorting |
- * and filtering actions on the profile. Profile View mimicks |
- * the Profile object from WebKit's JSC profiler. |
+ * and filtering actions on the profile. |
* |
* @param {devtools.profiler.ProfileView.Node} head Head (root) node. |
* @constructor |
*/ |
devtools.profiler.ProfileView = function(head) { |
this.head = head; |
- this.title = ''; |
- this.uid = ''; |
- this.heavyProfile = null; |
- this.treeProfile = null; |
- this.flatProfile = null; |
}; |
@@ -140,63 +164,12 @@ devtools.profiler.ProfileView.prototype.traverse = function(f) { |
*/ |
devtools.profiler.ProfileView.Node = function( |
internalFuncName, totalTime, selfTime, head) { |
- this.callIdentifier = 0; |
this.internalFuncName = internalFuncName; |
- this.initFuncInfo(); |
this.totalTime = totalTime; |
this.selfTime = selfTime; |
this.head = head; |
this.parent = null; |
this.children = []; |
- this.visible = true; |
-}; |
- |
- |
-/** |
- * RegEx for stripping V8's prefixes of compiled functions. |
- */ |
-devtools.profiler.ProfileView.Node.FUNC_NAME_STRIP_RE = |
- /^(?:LazyCompile|Function): (.*)$/; |
- |
- |
-/** |
- * RegEx for extracting script source URL and line number. |
- */ |
-devtools.profiler.ProfileView.Node.FUNC_NAME_PARSE_RE = /^([^ ]+) (.*):(\d+)$/; |
- |
- |
-/** |
- * RegEx for removing protocol name from URL. |
- */ |
-devtools.profiler.ProfileView.Node.URL_PARSE_RE = /^(?:http:\/)?.*\/([^/]+)$/; |
- |
- |
-/** |
- * Inits 'functionName', 'url', and 'lineNumber' fields using 'internalFuncName' |
- * field. |
- */ |
-devtools.profiler.ProfileView.Node.prototype.initFuncInfo = function() { |
- var nodeAlias = devtools.profiler.ProfileView.Node; |
- this.functionName = this.internalFuncName; |
- |
- var strippedName = nodeAlias.FUNC_NAME_STRIP_RE.exec(this.functionName); |
- if (strippedName) { |
- this.functionName = strippedName[1]; |
- } |
- |
- var parsedName = nodeAlias.FUNC_NAME_PARSE_RE.exec(this.functionName); |
- if (parsedName) { |
- this.url = parsedName[2]; |
- var parsedUrl = nodeAlias.URL_PARSE_RE.exec(this.url); |
- if (parsedUrl) { |
- this.url = parsedUrl[1]; |
- } |
- this.functionName = parsedName[1]; |
- this.lineNumber = parsedName[3]; |
- } else { |
- this.url = ''; |
- this.lineNumber = 0; |
- } |
}; |