function appendInvalidationGroup(parentElement, invalidations)
    {
        var row = parentElement.createChild("div", "invalidations-group section");
        var header = row.createChild("div", "header");
        header.addEventListener("click", function() {
            toggleDetails(header, invalidations);
        });

        var first = invalidations[0];
        var reason = first.cause && first.cause.reason;
        var topFrame = first.cause && first.cause.stackTrace && first.cause.stackTrace[0];

        if (reason)
            header.createTextChild(WebInspector.UIString("%s for ", reason));
        else
            header.createTextChild(WebInspector.UIString("Unknown cause for "));

        appendTruncatedNodeList(header, invalidations);

        if (topFrame) {
            header.createTextChild(WebInspector.UIString(". "));
            var stack = header.createChild("span", "monospace");
            contentHelper.appendStackFrame(stack, topFrame);
        }
    }
@param {!Element} parentElement
@param {!Array.<!WebInspector.InvalidationTrackingEvent>} invalidations