Chromium Code Reviews| Index: chrome/browser/resources/history/history.js |
| diff --git a/chrome/browser/resources/history/history.js b/chrome/browser/resources/history/history.js |
| index edfcd913ff7c094b404dd7e640bfa75fd73ce7c2..aad326761da4497150d05cfad9e838d3c26339e6 100644 |
| --- a/chrome/browser/resources/history/history.js |
| +++ b/chrome/browser/resources/history/history.js |
| @@ -1311,7 +1311,11 @@ HistoryView.prototype.clear_ = function() { |
| if (alertOverlay && alertOverlay.classList.contains('showing')) |
| hideConfirmationOverlay(); |
| - this.resultDiv_.textContent = ''; |
| + // Remove everything but <h3 id="results-header"> (the first child). |
| + while (this.resultDiv_.children.length > 1) { |
| + this.resultDiv_.removeChild(this.resultDiv_.lastElementChild); |
| + } |
| + $('results-header').textContent = ''; |
| this.currentVisits_.forEach(function(visit) { |
| visit.isRendered = false; |
| @@ -1573,13 +1577,19 @@ HistoryView.prototype.displayResults_ = function(doneLoading) { |
| var groupByDomain = this.model_.getGroupByDomain(); |
| if (searchText) { |
| - // Add a header for the search results, if there isn't already one. |
| - if (!this.resultDiv_.querySelector('h3')) { |
| - var header = document.createElement('h3'); |
|
Dan Beam
2014/11/20 03:32:22
one of the reasons why VoiceOver doesn't read this
|
| - header.textContent = loadTimeData.getStringF('searchResultsFor', |
| - searchText); |
| - this.resultDiv_.appendChild(header); |
| + var headerText; |
| + if (!doneLoading) { |
| + headerText = loadTimeData.getStringF('searchResultsFor', searchText); |
| + } else if (results.length == 0) { |
| + headerText = loadTimeData.getString('noSearchResults'); |
| + } else { |
| + var resultId = results.length == 1 ? 'searchResult' : 'searchResults'; |
| + headerText = loadTimeData.getStringF('foundSearchResults', |
| + results.length, |
| + loadTimeData.getString(resultId), |
| + searchText); |
| } |
| + $('results-header').textContent = headerText; |
| this.addTimeframeInterval_(this.resultDiv_); |
| @@ -1589,11 +1599,7 @@ HistoryView.prototype.displayResults_ = function(doneLoading) { |
| if (!this.model_.editingEntriesAllowed) |
| searchResults.classList.add('no-checkboxes'); |
| - if (results.length == 0 && doneLoading) { |
| - var noSearchResults = searchResults.appendChild( |
| - createElementWithClassName('div', 'no-results-message')); |
| - noSearchResults.textContent = loadTimeData.getString('noSearchResults'); |
| - } else { |
| + if (doneLoading) { |
| for (var i = 0, visit; visit = results[i]; i++) { |
| if (!visit.isRendered) { |
| searchResults.appendChild(visit.getResultDOM({ |
| @@ -1610,13 +1616,12 @@ HistoryView.prototype.displayResults_ = function(doneLoading) { |
| this.addTimeframeInterval_(resultsFragment); |
| - if (results.length == 0 && doneLoading) { |
| - var noResults = resultsFragment.appendChild( |
| - createElementWithClassName('div', 'no-results-message')); |
| - noResults.textContent = loadTimeData.getString('noResults'); |
| - this.resultDiv_.appendChild(resultsFragment); |
| + var noResults = results.length == 0 && doneLoading; |
| + $('results-header').textContent = noResults ? |
| + loadTimeData.getString('noResults') : ''; |
| + |
| + if (noResults) |
| return; |
| - } |
| if (this.getRangeInDays() == HistoryModel.Range.MONTH && |
| groupByDomain) { |