Commit 44e2e5f8 authored by Thanh Le's avatar Thanh Le Committed by Commit Bot

Clear log messages and buffer on chrome://interventions when history is cleared.

Logs messages of navigation are retained in PreviewsLogger bufffer, and
on chrome://interventions-internals until the end of that session even
when user history is cleared.

Since ClearBlacklist event is triggered whenever history is cleared,
removing all log message on the page, and all buffer messages in
PreviewsLogger seems like a reasonable solution.

Bug: 791774
Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
Change-Id: I0f69f5ec89679826557cdd23bbd1f316957711ec
Reviewed-on: https://chromium-review.googlesource.com/807397Reviewed-by: default avatarRyan Sturm <ryansturm@chromium.org>
Reviewed-by: default avatarTarun Bansal <tbansal@chromium.org>
Commit-Queue: Thanh Le <thanhdle@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521747}
parent 601813d2
...@@ -195,18 +195,22 @@ function createUrlElement(url) { ...@@ -195,18 +195,22 @@ function createUrlElement(url) {
return urlTd; return urlTd;
} }
/**
* Helper function to remove all log message from log-messages-table.
*/
function removeAllLogMessagesRows() {
let logsTable = $('message-logs-table');
for (let row = logsTable.rows.length - 1; row > 0; row--) {
logsTable.deleteRow(row);
}
}
/** /**
* Initialize the button to clear out all the log messages. This button only * Initialize the button to clear out all the log messages. This button only
* remove the logs from the UI, and does not effect any decision made. * remove the logs from the UI, and does not effect any decision made.
*/ */
function setupLogClear() { function setupLogClear() {
$('clear-log-button').addEventListener('click', () => { $('clear-log-button').addEventListener('click', removeAllLogMessagesRows);
// Remove hosts from table.
let logsTable = $('message-logs-table');
for (let row = logsTable.rows.length - 1; row > 0; row--) {
logsTable.deleteRow(row);
}
});
} }
/** @constructor */ /** @constructor */
...@@ -283,6 +287,9 @@ InterventionsInternalPageImpl.prototype = { ...@@ -283,6 +287,9 @@ InterventionsInternalPageImpl.prototype = {
for (let row = blacklistedHostsTable.rows.length - 1; row > 0; row--) { for (let row = blacklistedHostsTable.rows.length - 1; row > 0; row--) {
blacklistedHostsTable.deleteRow(row); blacklistedHostsTable.deleteRow(row);
} }
// Remove log message from logs table.
removeAllLogMessagesRows();
}, },
/** /**
......
...@@ -252,7 +252,6 @@ TEST_F('InterventionsInternalsUITest', 'LogNewMessage', function() { ...@@ -252,7 +252,6 @@ TEST_F('InterventionsInternalsUITest', 'LogNewMessage', function() {
expectEquals( expectEquals(
log.url.url, row.querySelector('.log-url-value').textContent); log.url.url, row.querySelector('.log-url-value').textContent);
}); });
}); });
mocha.run(); mocha.run();
...@@ -318,7 +317,6 @@ TEST_F('InterventionsInternalsUITest', 'AddNewBlacklistedHost', function() { ...@@ -318,7 +317,6 @@ TEST_F('InterventionsInternalsUITest', 'AddNewBlacklistedHost', function() {
expectedHost, row.querySelector('.host-blacklisted').textContent); expectedHost, row.querySelector('.host-blacklisted').textContent);
expectEquals( expectEquals(
expectedTime, row.querySelector('.host-blacklisted-time').textContent); expectedTime, row.querySelector('.host-blacklisted-time').textContent);
}); });
mocha.run(); mocha.run();
...@@ -387,6 +385,29 @@ TEST_F('InterventionsInternalsUITest', 'OnBlacklistCleared', function() { ...@@ -387,6 +385,29 @@ TEST_F('InterventionsInternalsUITest', 'OnBlacklistCleared', function() {
mocha.run(); mocha.run();
}); });
TEST_F(
'InterventionsInternalsUITest', 'ClearLogMessageOnBlacklistCleared',
function() {
test('ClearLogsTableOnBlacklistCleared', () => {
let pageImpl = new InterventionsInternalPageImpl(null);
let time = 758675653000; // Jan 15 1994 23:14:13 UTC
let log = {
type: 'Some type',
url: {url: ''},
description: 'Some description',
time: 758675653000, // Jan 15 1994 23:14:13 UTC
pageId: 0,
};
pageImpl.logNewMessage(log);
expectGT($('message-logs-table').rows.length, 1 /* header row */);
pageImpl.onBlacklistCleared(time);
expectEquals(1 /* header row */, $('message-logs-table').rows.length);
});
mocha.run();
});
TEST_F('InterventionsInternalsUITest', 'OnECTChanged', function() { TEST_F('InterventionsInternalsUITest', 'OnECTChanged', function() {
test('UpdateETCOnChange', () => { test('UpdateETCOnChange', () => {
let pageImpl = new InterventionsInternalPageImpl(null); let pageImpl = new InterventionsInternalPageImpl(null);
......
...@@ -223,18 +223,20 @@ void PreviewsLogger::OnNewBlacklistedHost(const std::string& host, ...@@ -223,18 +223,20 @@ void PreviewsLogger::OnNewBlacklistedHost(const std::string& host,
void PreviewsLogger::OnUserBlacklistedStatusChange(bool blacklisted) { void PreviewsLogger::OnUserBlacklistedStatusChange(bool blacklisted) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
user_blacklisted_status_ = blacklisted;
for (auto& observer : observer_list_) { for (auto& observer : observer_list_) {
observer.OnUserBlacklistedStatusChange(blacklisted); observer.OnUserBlacklistedStatusChange(blacklisted);
} }
user_blacklisted_status_ = blacklisted;
} }
void PreviewsLogger::OnBlacklistCleared(base::Time time) { void PreviewsLogger::OnBlacklistCleared(base::Time time) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
blacklisted_hosts_.clear();
navigations_logs_.clear();
decisions_logs_.clear();
for (auto& observer : observer_list_) { for (auto& observer : observer_list_) {
observer.OnBlacklistCleared(time); observer.OnBlacklistCleared(time);
} }
blacklisted_hosts_.clear();
} }
void PreviewsLogger::OnIgnoreBlacklistDecisionStatusChanged(bool ignored) { void PreviewsLogger::OnIgnoreBlacklistDecisionStatusChanged(bool ignored) {
......
...@@ -722,6 +722,20 @@ TEST_F(PreviewsLoggerTest, LastObserverRemovedIsNotified) { ...@@ -722,6 +722,20 @@ TEST_F(PreviewsLoggerTest, LastObserverRemovedIsNotified) {
EXPECT_TRUE(observers[number_of_obs - 1].last_removed_notified()); EXPECT_TRUE(observers[number_of_obs - 1].last_removed_notified());
} }
TEST_F(PreviewsLoggerTest, ClearBufferLogsWhenBlacklistCleared) {
std::string type = "Event_";
std::string description = "Some description";
GURL url("http://www.url_.com/url_");
base::Time now = base::Time::Now();
logger_->LogMessage(type, description, url, now);
logger_->OnBlacklistCleared(base::Time::Now());
TestPreviewsLoggerObserver observer;
logger_->AddAndNotifyObserver(&observer);
EXPECT_EQ(0UL, observer.messages().size());
}
} // namespace } // namespace
} // namespace previews } // namespace previews
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