Commit 127fe20d authored by Erik Luo's avatar Erik Luo Committed by Commit Bot

DevTools: console regex filter should apply to anchors separately

Anchors can precede a console message's content, which makes filters
with start/end of line ('$', '^') fail. This CL evaluates any filter
regexes on the message content separately from the anchor.

Bug: 819799
Change-Id: I0957fd8fb3dea26f690e859cfabbc432cdda069c
Reviewed-on: https://chromium-review.googlesource.com/1081561Reviewed-by: default avatarAndrey Lushnikov <lushnikov@chromium.org>
Commit-Queue: Andrey Lushnikov <lushnikov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577405}
parent afd06238
......@@ -215,6 +215,31 @@ Running: checkContextTextFilter
console-filter-test.js:43 Hello 1
console-filter-test.js:44 Hello 2
Running: checkStartEndLineRegex
>console-filter-test.js:24 outerGroup
>console-filter-test.js:31 innerGroup
console-filter-test.js:43 Hello 1
console-filter-test.js:44 Hello 2
Running: checkStartEndLineRegexForAnchor
log-source.js:3 1topGroup
log-source.js:3 3topGroup
log-source.js:3 5topGroup
log-source.js:3 7topGroup
log-source.js:3 9topGroup
>console-filter-test.js:24 outerGroup
log-source.js:3 11outerGroup
log-source.js:3 13outerGroup
log-source.js:3 15outerGroup
log-source.js:3 17outerGroup
log-source.js:3 19outerGroup
>console-filter-test.js:31 innerGroup
log-source.js:3 21innerGroup
log-source.js:3 23innerGroup
log-source.js:3 25innerGroup
log-source.js:3 27innerGroup
log-source.js:3 29innerGroup
Running: checkResetFilter
console-filter-test.js:14 0topGroup
log-source.js:3 1topGroup
......
......@@ -144,6 +144,20 @@
dumpVisibleMessages();
next();
},
function checkStartEndLineRegex(next)
{
Console.ConsoleView.instance()._filter._textFilterUI.setValue("/^Hello\\s\\d$/");
Console.ConsoleView.instance()._filter._onFilterChanged();
dumpVisibleMessages();
next();
},
function checkStartEndLineRegexForAnchor(next)
{
Console.ConsoleView.instance()._filter._textFilterUI.setValue("/^log-source\\.js:\\d+$/");
Console.ConsoleView.instance()._filter._onFilterChanged();
dumpVisibleMessages();
next();
},
function checkResetFilter(next) {
Console.ConsoleView.instance()._filter.reset();
dumpVisibleMessages();
......
......@@ -125,9 +125,9 @@ Console.ConsoleViewMessage = class {
*/
_buildTableMessage() {
const formattedMessage = createElementWithClass('span', 'source-code');
const anchorElement = this._buildMessageAnchor();
if (anchorElement)
formattedMessage.appendChild(anchorElement);
this._anchorElement = this._buildMessageAnchor();
if (this._anchorElement)
formattedMessage.appendChild(this._anchorElement);
const badgeElement = this._buildMessageBadge();
if (badgeElement)
formattedMessage.appendChild(badgeElement);
......@@ -279,9 +279,9 @@ Console.ConsoleViewMessage = class {
messageElement.classList.add('console-message-text');
const formattedMessage = createElementWithClass('span', 'source-code');
const anchorElement = this._buildMessageAnchor();
if (anchorElement)
formattedMessage.appendChild(anchorElement);
this._anchorElement = this._buildMessageAnchor();
if (this._anchorElement)
formattedMessage.appendChild(this._anchorElement);
const badgeElement = this._buildMessageBadge();
if (badgeElement)
formattedMessage.appendChild(badgeElement);
......@@ -921,8 +921,10 @@ Console.ConsoleViewMessage = class {
*/
matchesFilterRegex(regexObject) {
regexObject.lastIndex = 0;
const text = this.contentElement().deepTextContent();
return regexObject.test(text);
const contentElement = this.contentElement();
const anchorText = this._anchorElement ? this._anchorElement.deepTextContent() : '';
return (anchorText && regexObject.test(anchorText.trim())) ||
regexObject.test(contentElement.deepTextContent().slice(anchorText.length));
}
/**
......
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