| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * Copyright (C) 2012 Intel Inc. All rights reserved. | 3 * Copyright (C) 2012 Intel Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
| 7 * met: | 7 * met: |
| 8 * | 8 * |
| 9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 721 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 732 | 732 |
| 733 /** | 733 /** |
| 734 * @param {!Array.<!WebInspector.InvalidationTrackingEvent>} invalidations | 734 * @param {!Array.<!WebInspector.InvalidationTrackingEvent>} invalidations |
| 735 */ | 735 */ |
| 736 function groupInvalidationsByCause(invalidations) | 736 function groupInvalidationsByCause(invalidations) |
| 737 { | 737 { |
| 738 var causeToInvalidationMap = {}; | 738 var causeToInvalidationMap = {}; |
| 739 for (var index = 0; index < invalidations.length; index++) { | 739 for (var index = 0; index < invalidations.length; index++) { |
| 740 var invalidation = invalidations[index]; | 740 var invalidation = invalidations[index]; |
| 741 var causeKey = ""; | 741 var causeKey = ""; |
| 742 if (invalidation.cause && invalidation.cause.reason) | 742 if (invalidation.cause.reason) |
| 743 causeKey += invalidation.cause.reason + "."; | 743 causeKey += invalidation.cause.reason + "."; |
| 744 if (invalidation.cause && invalidation.cause.stackTrace) { | 744 if (invalidation.cause.stackTrace) { |
| 745 invalidation.cause.stackTrace.forEach(function(stackFrame) { | 745 invalidation.cause.stackTrace.forEach(function(stackFrame) { |
| 746 causeKey += stackFrame["functionName"] + "."; | 746 causeKey += stackFrame["functionName"] + "."; |
| 747 causeKey += stackFrame["scriptId"] + "."; | 747 causeKey += stackFrame["scriptId"] + "."; |
| 748 causeKey += stackFrame["url"] + "."; | 748 causeKey += stackFrame["url"] + "."; |
| 749 causeKey += stackFrame["lineNumber"] + "."; | 749 causeKey += stackFrame["lineNumber"] + "."; |
| 750 causeKey += stackFrame["columnNumber"] + "."; | 750 causeKey += stackFrame["columnNumber"] + "."; |
| 751 }); | 751 }); |
| 752 } | 752 } |
| 753 | 753 |
| 754 if (causeToInvalidationMap[causeKey]) | 754 if (causeToInvalidationMap[causeKey]) |
| (...skipping 10 matching lines...) Expand all Loading... |
| 765 */ | 765 */ |
| 766 function appendInvalidationGroup(parentElement, invalidations) | 766 function appendInvalidationGroup(parentElement, invalidations) |
| 767 { | 767 { |
| 768 var row = parentElement.createChild("div", "invalidations-group section"
); | 768 var row = parentElement.createChild("div", "invalidations-group section"
); |
| 769 var header = row.createChild("div", "header"); | 769 var header = row.createChild("div", "header"); |
| 770 header.addEventListener("click", function() { | 770 header.addEventListener("click", function() { |
| 771 toggleDetails(header, invalidations); | 771 toggleDetails(header, invalidations); |
| 772 }); | 772 }); |
| 773 | 773 |
| 774 var first = invalidations[0]; | 774 var first = invalidations[0]; |
| 775 var reason = first.cause && first.cause.reason; | 775 var reason = first.cause.reason; |
| 776 var topFrame = first.cause && first.cause.stackTrace && first.cause.stac
kTrace[0]; | 776 var topFrame = first.cause.stackTrace && first.cause.stackTrace[0]; |
| 777 | 777 |
| 778 if (reason) | 778 if (reason) |
| 779 header.createTextChild(WebInspector.UIString("%s for ", reason)); | 779 header.createTextChild(WebInspector.UIString("%s for ", reason)); |
| 780 else | 780 else |
| 781 header.createTextChild(WebInspector.UIString("Unknown cause for ")); | 781 header.createTextChild(WebInspector.UIString("Unknown cause for ")); |
| 782 | 782 |
| 783 appendTruncatedNodeList(header, invalidations); | 783 appendTruncatedNodeList(header, invalidations); |
| 784 | 784 |
| 785 if (topFrame) { | 785 if (topFrame) { |
| 786 header.createTextChild(WebInspector.UIString(". ")); | 786 header.createTextChild(WebInspector.UIString(". ")); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 809 } | 809 } |
| 810 } | 810 } |
| 811 | 811 |
| 812 /** | 812 /** |
| 813 * @param {!Element} parentElement | 813 * @param {!Element} parentElement |
| 814 * @param {!Array.<!WebInspector.InvalidationTrackingEvent>} invalidations | 814 * @param {!Array.<!WebInspector.InvalidationTrackingEvent>} invalidations |
| 815 */ | 815 */ |
| 816 function appendTruncatedNodeList(parentElement, invalidations) | 816 function appendTruncatedNodeList(parentElement, invalidations) |
| 817 { | 817 { |
| 818 var invalidationNodes = []; | 818 var invalidationNodes = []; |
| 819 invalidations.forEach(function(invalidation) { | 819 var invalidationNodeIdMap = {}; |
| 820 for (var i = 0; i < invalidations.length; i++) { |
| 821 var invalidation = invalidations[i]; |
| 820 var invalidationNode = createInvalidationNode(invalidation, false); | 822 var invalidationNode = createInvalidationNode(invalidation, false); |
| 821 if (invalidationNode) | 823 if (invalidationNode && !invalidationNodeIdMap[invalidation.nodeId])
{ |
| 822 invalidationNodes.push(invalidationNode); | 824 invalidationNodes.push(invalidationNode); |
| 823 }); | 825 invalidationNodeIdMap[invalidation.nodeId] = true; |
| 826 } |
| 827 } |
| 824 | 828 |
| 825 if (invalidationNodes.length === 1) { | 829 if (invalidationNodes.length === 1) { |
| 826 parentElement.appendChild(invalidationNodes[0]); | 830 parentElement.appendChild(invalidationNodes[0]); |
| 827 } else if (invalidationNodes.length === 2) { | 831 } else if (invalidationNodes.length === 2) { |
| 828 parentElement.appendChild(invalidationNodes[0]); | 832 parentElement.appendChild(invalidationNodes[0]); |
| 829 parentElement.createTextChild(WebInspector.UIString(" and ")); | 833 parentElement.createTextChild(WebInspector.UIString(" and ")); |
| 830 parentElement.appendChild(invalidationNodes[1]); | 834 parentElement.appendChild(invalidationNodes[1]); |
| 831 } else if (invalidationNodes.length >= 3) { | 835 } else if (invalidationNodes.length >= 3) { |
| 832 parentElement.appendChild(invalidationNodes[0]); | 836 parentElement.appendChild(invalidationNodes[0]); |
| 833 parentElement.createTextChild(WebInspector.UIString(", ")); | 837 parentElement.createTextChild(WebInspector.UIString(", ")); |
| 834 parentElement.appendChild(invalidationNodes[1]); | 838 parentElement.appendChild(invalidationNodes[1]); |
| 835 parentElement.createTextChild(WebInspector.UIString(", and %s others
", invalidationNodes.length - 2)); | 839 parentElement.createTextChild(WebInspector.UIString(", and %s others
", invalidationNodes.length - 2)); |
| 836 } | 840 } |
| 837 } | 841 } |
| 838 | 842 |
| 839 /** | 843 /** |
| 840 * @param {!Element} parentElement | |
| 841 * @param {!Array.<!WebInspector.InvalidationTrackingEvent>} invalidations | |
| 842 */ | |
| 843 function appendNodeList(parentElement, invalidations) | |
| 844 { | |
| 845 var firstNode = true; | |
| 846 invalidations.forEach(function(invalidation) { | |
| 847 var invalidationNode = createInvalidationNode(invalidation, true); | |
| 848 if (invalidationNode) { | |
| 849 if (!firstNode) | |
| 850 parentElement.createTextChild(WebInspector.UIString(", ")); | |
| 851 parentElement.appendChild(invalidationNode); | |
| 852 firstNode = false; | |
| 853 } | |
| 854 }); | |
| 855 } | |
| 856 | |
| 857 /** | |
| 858 * @param {!Element} header | 844 * @param {!Element} header |
| 859 * @param {!Array.<!WebInspector.InvalidationTrackingEvent>} invalidations | 845 * @param {!Array.<!WebInspector.InvalidationTrackingEvent>} invalidations |
| 860 */ | 846 */ |
| 861 function toggleDetails(header, invalidations) | 847 function toggleDetails(header, invalidations) |
| 862 { | 848 { |
| 863 var wasExpanded = header.classList.contains("expanded"); | 849 var wasExpanded = header.classList.contains("expanded"); |
| 864 header.classList.toggle("expanded", !wasExpanded); | 850 header.classList.toggle("expanded", !wasExpanded); |
| 865 header.parentElement.classList.toggle("expanded", !wasExpanded); | 851 header.parentElement.classList.toggle("expanded", !wasExpanded); |
| 866 | 852 |
| 867 if (wasExpanded) { | 853 if (wasExpanded) { |
| 868 var content = header.nextElementSibling; | 854 var content = header.nextElementSibling; |
| 869 if (content) | 855 if (content) |
| 870 content.remove(); | 856 content.remove(); |
| 871 } else { | 857 } else { |
| 872 createInvalidationGroupDetails(header.parentElement, invalidations); | 858 createInvalidationGroupDetails(header.parentElement, invalidations); |
| 873 } | 859 } |
| 874 } | 860 } |
| 875 | 861 |
| 876 /** | 862 /** |
| 877 * @param {!Element} parentElement | 863 * @param {!Element} parentElement |
| 878 * @param {!Array.<!WebInspector.InvalidationTrackingEvent>} invalidations | 864 * @param {!Array.<!WebInspector.InvalidationTrackingEvent>} invalidations |
| 879 */ | 865 */ |
| 880 function createInvalidationGroupDetails(parentElement, invalidations) | 866 function createInvalidationGroupDetails(parentElement, invalidations) |
| 881 { | 867 { |
| 882 var content = parentElement.createChild("div", "content"); | 868 var content = parentElement.createChild("div", "content"); |
| 883 | 869 |
| 884 var first = invalidations[0]; | 870 var first = invalidations[0]; |
| 885 if (first.cause && first.cause.stackTrace) { | 871 if (first.cause.stackTrace) { |
| 886 var stack = content.createChild("div"); | 872 var stack = content.createChild("div"); |
| 887 stack.createTextChild(WebInspector.UIString("Stack trace:")); | 873 stack.createTextChild(WebInspector.UIString("Stack trace:")); |
| 888 contentHelper.createChildStackTraceElement(stack, first.cause.stackT
race); | 874 contentHelper.createChildStackTraceElement(stack, first.cause.stackT
race); |
| 889 } | 875 } |
| 890 | 876 |
| 891 content.createTextChild(invalidations.length > 1 ? WebInspector.UIString
("Nodes:") : WebInspector.UIString("Node:")); | 877 content.createTextChild(invalidations.length > 1 ? WebInspector.UIString
("Nodes:") : WebInspector.UIString("Node:")); |
| 892 var nodeList = content.createChild("div", "node-list timeline-details-vi
ew-row-stack-trace"); | 878 var nodeList = content.createChild("div", "node-list timeline-details-vi
ew-row-stack-trace"); |
| 893 appendNodeList(nodeList, invalidations); | 879 appendDetailedNodeList(nodeList, invalidations); |
| 880 } |
| 881 |
| 882 /** |
| 883 * @param {!Element} parentElement |
| 884 * @param {!Array.<!WebInspector.InvalidationTrackingEvent>} invalidations |
| 885 */ |
| 886 function appendDetailedNodeList(parentElement, invalidations) |
| 887 { |
| 888 var firstNode = true; |
| 889 for (var i = 0; i < invalidations.length; i++) { |
| 890 var invalidation = invalidations[i]; |
| 891 var invalidationNode = createInvalidationNode(invalidation, true); |
| 892 if (invalidationNode) { |
| 893 if (!firstNode) |
| 894 parentElement.createTextChild(WebInspector.UIString(", ")); |
| 895 firstNode = false; |
| 896 |
| 897 parentElement.appendChild(invalidationNode); |
| 898 |
| 899 var extraData = invalidation.extraData ? ", " + invalidation.ext
raData : ""; |
| 900 if (invalidation.changedId) { |
| 901 parentElement.createTextChild(WebInspector.UIString("(change
d id to \"%s\"%s)", invalidation.changedId, extraData)); |
| 902 } else if (invalidation.changedClass) { |
| 903 parentElement.createTextChild(WebInspector.UIString("(change
d class to \"%s\"%s)", invalidation.changedClass, extraData)); |
| 904 } else if (invalidation.changedAttribute) { |
| 905 parentElement.createTextChild(WebInspector.UIString("(change
d attribute to \"%s\"%s)", invalidation.changedAttribute, extraData)); |
| 906 } else if (invalidation.changedPseudo) { |
| 907 parentElement.createTextChild(WebInspector.UIString("(change
d pesudo to \"%s\"%s)", invalidation.changedPseudo, extraData)); |
| 908 } else if (invalidation.selectorPart) { |
| 909 parentElement.createTextChild(WebInspector.UIString("(change
d \"%s\"%s)", invalidation.selectorPart, extraData)); |
| 910 } |
| 911 } |
| 912 } |
| 894 } | 913 } |
| 895 } | 914 } |
| 896 | 915 |
| 897 /** | 916 /** |
| 898 * @param {!WebInspector.TracingModel.Event} event | 917 * @param {!WebInspector.TracingModel.Event} event |
| 899 * @param {!WebInspector.Target} target | 918 * @param {!WebInspector.Target} target |
| 900 * @param {function(?Array.<number>, ?Array.<number>)} callback | 919 * @param {function(?Array.<number>, ?Array.<number>)} callback |
| 901 */ | 920 */ |
| 902 WebInspector.TimelineUIUtils._pushInvalidationNodeIdsToFrontend = function(event
, target, callback) | 921 WebInspector.TimelineUIUtils._pushInvalidationNodeIdsToFrontend = function(event
, target, callback) |
| 903 { | 922 { |
| (...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1489 * @param {!ConsoleAgent.CallFrame} stackFrame | 1508 * @param {!ConsoleAgent.CallFrame} stackFrame |
| 1490 */ | 1509 */ |
| 1491 appendStackFrame: function(parentElement, stackFrame) | 1510 appendStackFrame: function(parentElement, stackFrame) |
| 1492 { | 1511 { |
| 1493 parentElement.createTextChild(WebInspector.beautifyFunctionName(stackFra
me.functionName)); | 1512 parentElement.createTextChild(WebInspector.beautifyFunctionName(stackFra
me.functionName)); |
| 1494 parentElement.createTextChild(" @ "); | 1513 parentElement.createTextChild(" @ "); |
| 1495 var urlElement = this._linkifier.linkifyScriptLocation(this._target, sta
ckFrame.scriptId, stackFrame.url, stackFrame.lineNumber - 1, stackFrame.columnNu
mber - 1); | 1514 var urlElement = this._linkifier.linkifyScriptLocation(this._target, sta
ckFrame.scriptId, stackFrame.url, stackFrame.lineNumber - 1, stackFrame.columnNu
mber - 1); |
| 1496 parentElement.appendChild(urlElement); | 1515 parentElement.appendChild(urlElement); |
| 1497 } | 1516 } |
| 1498 } | 1517 } |
| OLD | NEW |