Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(816)

Unified Diff: third_party/WebKit/Source/devtools/front_end/console/ConsoleViewMessage.js

Issue 2373113003: DevTools: ConsoleViewMessage isolate _formatMessageAsTable() and single dataGrid (Closed)
Patch Set: rebase with set 10 Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/devtools/front_end/console/ConsoleViewMessage.js
diff --git a/third_party/WebKit/Source/devtools/front_end/console/ConsoleViewMessage.js b/third_party/WebKit/Source/devtools/front_end/console/ConsoleViewMessage.js
index 34e7e2bb526118a3de02843835b68649c638a101..8566edf715c762cd83b919ff072a9f109daca89f 100644
--- a/third_party/WebKit/Source/devtools/front_end/console/ConsoleViewMessage.js
+++ b/third_party/WebKit/Source/devtools/front_end/console/ConsoleViewMessage.js
@@ -43,8 +43,8 @@ WebInspector.ConsoleViewMessage = function(consoleMessage, linkifier, nestingLev
this._closeGroupDecorationCount = 0;
this._nestingLevel = nestingLevel;
- /** @type {!Array.<!WebInspector.DataGrid>} */
- this._dataGrids = [];
+ /** @type {?WebInspector.DataGrid} */
+ this._dataGrid = null;
/** @type {!Object.<string, function(!WebInspector.RemoteObject, !Element, boolean=)>} */
this._customFormatters = {
@@ -89,8 +89,8 @@ WebInspector.ConsoleViewMessage.prototype = {
*/
wasShown: function()
{
- for (var i = 0; this._dataGrids && i < this._dataGrids.length; ++i)
- this._dataGrids[i].updateWidths();
+ if (this._dataGrid)
+ this._dataGrid.updateWidths();
this._isVisible = true;
},
@@ -98,8 +98,8 @@ WebInspector.ConsoleViewMessage.prototype = {
{
if (!this._isVisible)
return;
- for (var i = 0; this._dataGrids && i < this._dataGrids.length; ++i)
- this._dataGrids[i].onResize();
+ if (this._dataGrid)
+ this._dataGrid.onResize();
},
/**
@@ -141,6 +141,79 @@ WebInspector.ConsoleViewMessage.prototype = {
* @param {!WebInspector.ConsoleMessage} consoleMessage
* @return {!Element}
*/
+ _buildTableMessage: function(consoleMessage)
+ {
+ var formattedMessage = createElement("span");
+ WebInspector.appendStyle(formattedMessage, "components/objectValue.css");
+ formattedMessage.className = "console-message-text source-code";
+ var anchorElement = this._buildMessageAnchor(consoleMessage);
+ if (anchorElement)
+ formattedMessage.appendChild(anchorElement);
+
+ var table = consoleMessage.parameters && consoleMessage.parameters.length ? consoleMessage.parameters[0] : null;
+ if (table)
+ table = this._parameterToRemoteObject(table, this._target());
+ if (!table || !table.preview)
+ return formattedMessage;
+
+ var columnNames = [];
+ var preview = table.preview;
+ var rows = [];
+ for (var i = 0; i < preview.properties.length; ++i) {
+ var rowProperty = preview.properties[i];
+ var rowPreview = rowProperty.valuePreview;
+ if (!rowPreview)
+ continue;
+
+ var rowValue = {};
+ const maxColumnsToRender = 20;
+ for (var j = 0; j < rowPreview.properties.length; ++j) {
+ var cellProperty = rowPreview.properties[j];
+ var columnRendered = columnNames.indexOf(cellProperty.name) !== -1;
+ if (!columnRendered) {
+ if (columnNames.length === maxColumnsToRender)
+ continue;
+ columnRendered = true;
+ columnNames.push(cellProperty.name);
+ }
+
+ if (columnRendered) {
+ var cellElement = this._renderPropertyPreviewOrAccessor(table, [rowProperty, cellProperty]);
+ cellElement.classList.add("console-message-nowrap-below");
+ rowValue[cellProperty.name] = cellElement;
+ }
+ }
+ rows.push([rowProperty.name, rowValue]);
+ }
+
+ var flatValues = [];
+ for (var i = 0; i < rows.length; ++i) {
+ var rowName = rows[i][0];
+ var rowValue = rows[i][1];
+ flatValues.push(rowName);
+ for (var j = 0; j < columnNames.length; ++j)
+ flatValues.push(rowValue[columnNames[j]]);
+ }
+ columnNames.unshift(WebInspector.UIString("(index)"));
+
+ if (flatValues.length) {
+ this._dataGrid = WebInspector.SortableDataGrid.create(columnNames, flatValues);
+
+ var formattedResult = createElement("span");
+ var tableElement = formattedResult.createChild("div", "console-message-formatted-table");
+ var dataGridContainer = tableElement.createChild("span");
+ tableElement.appendChild(this._formatParameter(table, true, false));
+ dataGridContainer.appendChild(this._dataGrid.element);
+ formattedMessage.appendChild(formattedResult);
+ this._dataGrid.renderInline();
+ }
+ return formattedMessage;
+ },
+
+ /**
+ * @param {!WebInspector.ConsoleMessage} consoleMessage
+ * @return {!Element}
+ */
_buildMessage: function(consoleMessage)
{
var messageElement;
@@ -379,11 +452,6 @@ WebInspector.ConsoleViewMessage.prototype = {
formattedResult.createTextChild(" ");
}
- if (this._message.type === WebInspector.ConsoleMessage.MessageType.Table) {
- formattedResult.appendChild(this._formatParameterAsTable(parameters));
- return formattedResult;
- }
-
// Single parameter, or unused substitutions from above.
for (var i = 0; i < parameters.length; ++i) {
// Inline strings when formatting.
@@ -567,69 +635,6 @@ WebInspector.ConsoleViewMessage.prototype = {
},
/**
- * @param {!Array.<!WebInspector.RemoteObject>} parameters
- * @return {!Element}
- */
- _formatParameterAsTable: function(parameters)
- {
- var element = createElementWithClass("div", "console-message-formatted-table");
- var table = parameters[0];
- if (!table || !table.preview)
- return element;
-
- var columnNames = [];
- var preview = table.preview;
- var rows = [];
- for (var i = 0; i < preview.properties.length; ++i) {
- var rowProperty = preview.properties[i];
- var rowPreview = rowProperty.valuePreview;
- if (!rowPreview)
- continue;
-
- var rowValue = {};
- const maxColumnsToRender = 20;
- for (var j = 0; j < rowPreview.properties.length; ++j) {
- var cellProperty = rowPreview.properties[j];
- var columnRendered = columnNames.indexOf(cellProperty.name) !== -1;
- if (!columnRendered) {
- if (columnNames.length === maxColumnsToRender)
- continue;
- columnRendered = true;
- columnNames.push(cellProperty.name);
- }
-
- if (columnRendered) {
- var cellElement = this._renderPropertyPreviewOrAccessor(table, [rowProperty, cellProperty]);
- cellElement.classList.add("console-message-nowrap-below");
- rowValue[cellProperty.name] = cellElement;
- }
- }
- rows.push([rowProperty.name, rowValue]);
- }
-
- var flatValues = [];
- for (var i = 0; i < rows.length; ++i) {
- var rowName = rows[i][0];
- var rowValue = rows[i][1];
- flatValues.push(rowName);
- for (var j = 0; j < columnNames.length; ++j)
- flatValues.push(rowValue[columnNames[j]]);
- }
-
- var dataGridContainer = element.createChild("span");
- element.appendChild(this._formatParameter(table, true, false));
- if (!flatValues.length)
- return element;
-
- columnNames.unshift(WebInspector.UIString("(index)"));
- var dataGrid = WebInspector.SortableDataGrid.create(columnNames, flatValues);
- dataGrid.renderInline();
- dataGridContainer.appendChild(dataGrid.element);
- this._dataGrids.push(dataGrid);
- return element;
- },
-
- /**
* @param {!WebInspector.RemoteObject} output
* @param {!Element} elem
*/
@@ -970,6 +975,8 @@ WebInspector.ConsoleViewMessage.prototype = {
var shouldIncludeTrace = !!consoleMessage.stackTrace && (consoleMessage.source === WebInspector.ConsoleMessage.MessageSource.Network || consoleMessage.level === WebInspector.ConsoleMessage.MessageLevel.Error || consoleMessage.level === WebInspector.ConsoleMessage.MessageLevel.RevokedError || consoleMessage.type === WebInspector.ConsoleMessage.MessageType.Trace || consoleMessage.level === WebInspector.ConsoleMessage.MessageLevel.Warning);
if (target && shouldIncludeTrace)
formattedMessage = this._buildMessageWithStackTrace(consoleMessage, target, this._linkifier);
+ else if (this._message.type === WebInspector.ConsoleMessage.MessageType.Table)
+ formattedMessage = this._buildTableMessage(this._message);
else
formattedMessage = this._buildMessage(consoleMessage);
contentElement.appendChild(formattedMessage);
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698