Index: chrome/browser/ui/webui/downloads_dom_handler.cc |
diff --git a/chrome/browser/ui/webui/downloads_dom_handler.cc b/chrome/browser/ui/webui/downloads_dom_handler.cc |
index 737cfdda3f782d6dedd595cece0f5ebd3599a23b..47ac8ccf6a672d1a3d5f46f2b9f4f9cd12865bfb 100644 |
--- a/chrome/browser/ui/webui/downloads_dom_handler.cc |
+++ b/chrome/browser/ui/webui/downloads_dom_handler.cc |
@@ -262,8 +262,7 @@ bool IsDownloadDisplayable(const content::DownloadItem& item) { |
} // namespace |
DownloadsDOMHandler::DownloadsDOMHandler(content::DownloadManager* dlm) |
- : search_text_(), |
- main_notifier_(dlm, this), |
+ : main_notifier_(dlm, this), |
update_scheduled_(false), |
weak_ptr_factory_(this) { |
// Create our fileicon data source. |
@@ -338,16 +337,14 @@ void DownloadsDOMHandler::OnDownloadUpdated( |
content::DownloadManager* manager, |
content::DownloadItem* download_item) { |
if (IsDownloadDisplayable(*download_item)) { |
- if (!search_text_.empty()) { |
+ if (search_terms_ && !search_terms_->empty()) { |
// Don't CallDownloadUpdated() if download_item doesn't match |
- // search_text_. |
+ // search_terms_. |
// TODO(benjhayden): Consider splitting MatchesQuery() out to a function. |
content::DownloadManager::DownloadVector all_items, filtered_items; |
all_items.push_back(download_item); |
DownloadQuery query; |
- scoped_ptr<base::Value> query_text(base::Value::CreateStringValue( |
- search_text_)); |
- query.AddFilter(DownloadQuery::FILTER_QUERY, *query_text.get()); |
+ query.AddFilter(DownloadQuery::FILTER_QUERY, *search_terms_.get()); |
query.Search(all_items.begin(), all_items.end(), &filtered_items); |
if (filtered_items.empty()) |
return; |
@@ -379,7 +376,7 @@ void DownloadsDOMHandler::OnDownloadRemoved( |
void DownloadsDOMHandler::HandleGetDownloads(const base::ListValue* args) { |
CountDownloadsDOMEvents(DOWNLOADS_DOM_EVENT_GET_DOWNLOADS); |
- search_text_ = ExtractStringValue(args); |
+ search_terms_.reset((args && !args->empty()) ? args->DeepCopy() : NULL); |
SendCurrentDownloads(); |
} |
@@ -523,10 +520,8 @@ void DownloadsDOMHandler::SendCurrentDownloads() { |
original_notifier_->GetManager()->CheckForHistoryFilesRemoval(); |
} |
DownloadQuery query; |
- if (!search_text_.empty()) { |
- scoped_ptr<base::Value> query_text(base::Value::CreateStringValue( |
- search_text_)); |
- query.AddFilter(DownloadQuery::FILTER_QUERY, *query_text.get()); |
+ if (search_terms_ && !search_terms_->empty()) { |
+ query.AddFilter(DownloadQuery::FILTER_QUERY, *search_terms_.get()); |
} |
query.AddFilter(base::Bind(&IsDownloadDisplayable)); |
query.AddSorter(DownloadQuery::SORT_START_TIME, DownloadQuery::DESCENDING); |