Commit 387fe823 authored by Erik Luo's avatar Erik Luo Committed by Commit Bot

DevTools: do not group JS-source error messages

Errors from JS such as Promise.reject() or TypeError/SyntaxError from
should not be grouped.

Bug: 774694
Change-Id: I791617939a6fd01f963d907e87f87f22031438c4
Reviewed-on: https://chromium-review.googlesource.com/742202Reviewed-by: default avatarPavel Feldman <pfeldman@chromium.org>
Commit-Queue: Erik Luo <luoe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#512697}
parent 78247732
Tests that console correctly groups similar messages.
5[Violation] Verbose-level violation
5[Violation] Error-level violation
ConsoleAPI log
'evaluated command'
"evaluated command"
console-group-similar.js:19 Uncaught (in promise) undefined
(anonymous) @ console-group-similar.js:19
ConsoleAPI log
'evaluated command'
"evaluated command"
console-group-similar.js:19 Uncaught (in promise) undefined
(anonymous) @ console-group-similar.js:19
ConsoleAPI log
'evaluated command'
"evaluated command"
console-group-similar.js:19 Uncaught (in promise) undefined
(anonymous) @ console-group-similar.js:19
ConsoleAPI log
'evaluated command'
"evaluated command"
console-group-similar.js:19 Uncaught (in promise) undefined
(anonymous) @ console-group-similar.js:19
ConsoleAPI log
'evaluated command'
"evaluated command"
Stop grouping messages:
[Violation] Verbose-level violation
[Violation] Error-level violation
ConsoleAPI log
'evaluated command'
"evaluated command"
console-group-similar.js:19 Uncaught (in promise) undefined
(anonymous) @ console-group-similar.js:19
[Violation] Verbose-level violation
[Violation] Error-level violation
ConsoleAPI log
'evaluated command'
"evaluated command"
console-group-similar.js:19 Uncaught (in promise) undefined
(anonymous) @ console-group-similar.js:19
[Violation] Verbose-level violation
[Violation] Error-level violation
ConsoleAPI log
'evaluated command'
"evaluated command"
console-group-similar.js:19 Uncaught (in promise) undefined
(anonymous) @ console-group-similar.js:19
[Violation] Verbose-level violation
[Violation] Error-level violation
ConsoleAPI log
'evaluated command'
"evaluated command"
console-group-similar.js:19 Uncaught (in promise) undefined
(anonymous) @ console-group-similar.js:19
[Violation] Verbose-level violation
[Violation] Error-level violation
ConsoleAPI log
'evaluated command'
"evaluated command"
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(async function() {
TestRunner.addResult(`Tests that console correctly groups similar messages.\n`);
await TestRunner.loadModule('console_test_runner');
await TestRunner.showPanel('console');
// Show all messages, including verbose.
Console.ConsoleView.instance()._filter._currentFilter.levelsMask = Console.ConsoleFilter.allLevelsFilterValue();
for (var i = 0; i < 5; i++) {
addViolationMessage('Verbose-level violation', `script${i}.js`, ConsoleModel.ConsoleMessage.MessageLevel.Verbose);
addViolationMessage('Error-level violation', `script${i}.js`, ConsoleModel.ConsoleMessage.MessageLevel.Error);
addConsoleAPIMessage('ConsoleAPI log', `script${i}.js`);
await ConsoleTestRunner.evaluateInConsolePromise(`'evaluated command'`);
await TestRunner.evaluateInPagePromise(`Promise.reject()`);
}
ConsoleTestRunner.dumpConsoleMessages();
TestRunner.addResult('\n\nStop grouping messages:\n');
Console.ConsoleView.instance()._groupSimilarSetting.set(false);
ConsoleTestRunner.dumpConsoleMessages();
TestRunner.completeTest();
/**
* @param {string} text
* @param {string} url
* @param {string} level
*/
function addViolationMessage(text, url, level) {
var message = new ConsoleModel.ConsoleMessage(
null, ConsoleModel.ConsoleMessage.MessageSource.Violation, level,
text, ConsoleModel.ConsoleMessage.MessageType.Log, url);
ConsoleModel.consoleModel.addMessage(message);
}
/**
* @param {string} text
* @param {string} url
*/
function addConsoleAPIMessage(text, url) {
var message = new ConsoleModel.ConsoleMessage(
null, ConsoleModel.ConsoleMessage.MessageSource.ConsoleAPI, ConsoleModel.ConsoleMessage.MessageLevel.Info,
text, ConsoleModel.ConsoleMessage.MessageType.Log, url);
ConsoleModel.consoleModel.addMessage(message);
}
})();
...@@ -561,11 +561,13 @@ ConsoleModel.ConsoleMessage = class { ...@@ -561,11 +561,13 @@ ConsoleModel.ConsoleMessage = class {
* @return {boolean} * @return {boolean}
*/ */
isGroupable() { isGroupable() {
var isJSError = this.source === ConsoleModel.ConsoleMessage.MessageSource.JS &&
this.level === ConsoleModel.ConsoleMessage.MessageLevel.Error;
return ( return (
this.source !== ConsoleModel.ConsoleMessage.MessageSource.ConsoleAPI && this.source !== ConsoleModel.ConsoleMessage.MessageSource.ConsoleAPI &&
this.type !== ConsoleModel.ConsoleMessage.MessageType.Command && this.type !== ConsoleModel.ConsoleMessage.MessageType.Command &&
this.type !== ConsoleModel.ConsoleMessage.MessageType.Result && this.type !== ConsoleModel.ConsoleMessage.MessageType.Result &&
this.type !== ConsoleModel.ConsoleMessage.MessageType.System); this.type !== ConsoleModel.ConsoleMessage.MessageType.System && !isJSError);
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment