Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(79)

Side by Side Diff: chrome/browser/download/download_query.cc

Issue 16924017: A few minor changes to the chrome.downloads extension API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: @r208716 Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/download/download_query.h" 5 #include "chrome/browser/download/download_query.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 return in.GetAsString(out); 51 return in.GetAsString(out);
52 } 52 }
53 53
54 // The next several functions are helpers for making Callbacks that access 54 // The next several functions are helpers for making Callbacks that access
55 // DownloadItem fields. 55 // DownloadItem fields.
56 56
57 static bool MatchesQuery(const string16& query, const DownloadItem& item) { 57 static bool MatchesQuery(const string16& query, const DownloadItem& item) {
58 if (query.empty()) 58 if (query.empty())
59 return true; 59 return true;
60 60
61 DCHECK_EQ(query, base::i18n::ToLower(query));
62
63 string16 url_raw(UTF8ToUTF16(item.GetOriginalUrl().spec())); 61 string16 url_raw(UTF8ToUTF16(item.GetOriginalUrl().spec()));
64 if (base::i18n::StringSearchIgnoringCaseAndAccents( 62 if (base::i18n::StringSearchIgnoringCaseAndAccents(
65 query, url_raw, NULL, NULL)) { 63 query, url_raw, NULL, NULL)) {
66 return true; 64 return true;
67 } 65 }
68 66
69 string16 url_formatted = url_raw; 67 string16 url_formatted = url_raw;
70 if (item.GetBrowserContext()) { 68 if (item.GetBrowserContext()) {
71 Profile* profile = Profile::FromBrowserContext(item.GetBrowserContext()); 69 Profile* profile = Profile::FromBrowserContext(item.GetBrowserContext());
72 url_formatted = net::FormatUrl( 70 url_formatted = net::FormatUrl(
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 return AddFilter(BuildFilter<string16>(value, EQ, &GetFilename)); 261 return AddFilter(BuildFilter<string16>(value, EQ, &GetFilename));
264 case FILTER_FILENAME_REGEX: 262 case FILTER_FILENAME_REGEX:
265 return AddFilter(BuildRegexFilter(value, &GetFilenameUTF8)); 263 return AddFilter(BuildRegexFilter(value, &GetFilenameUTF8));
266 case FILTER_MIME: 264 case FILTER_MIME:
267 return AddFilter(BuildFilter<std::string>(value, EQ, &GetMimeType)); 265 return AddFilter(BuildFilter<std::string>(value, EQ, &GetMimeType));
268 case FILTER_PAUSED: 266 case FILTER_PAUSED:
269 return AddFilter(BuildFilter<bool>(value, EQ, &IsPaused)); 267 return AddFilter(BuildFilter<bool>(value, EQ, &IsPaused));
270 case FILTER_QUERY: { 268 case FILTER_QUERY: {
271 string16 query; 269 string16 query;
272 return GetAs(value, &query) && 270 return GetAs(value, &query) &&
273 AddFilter(base::Bind(&MatchesQuery, query)); 271 AddFilter(base::Bind(&MatchesQuery, base::i18n::ToLower(query)));
274 } 272 }
275 case FILTER_ENDED_AFTER: 273 case FILTER_ENDED_AFTER:
276 return AddFilter(BuildFilter<std::string>(value, GT, &GetEndTime)); 274 return AddFilter(BuildFilter<std::string>(value, GT, &GetEndTime));
277 case FILTER_ENDED_BEFORE: 275 case FILTER_ENDED_BEFORE:
278 return AddFilter(BuildFilter<std::string>(value, LT, &GetEndTime)); 276 return AddFilter(BuildFilter<std::string>(value, LT, &GetEndTime));
279 case FILTER_END_TIME: 277 case FILTER_END_TIME:
280 return AddFilter(BuildFilter<std::string>(value, EQ, &GetEndTime)); 278 return AddFilter(BuildFilter<std::string>(value, EQ, &GetEndTime));
281 case FILTER_STARTED_AFTER: 279 case FILTER_STARTED_AFTER:
282 return AddFilter(BuildFilter<std::string>(value, GT, &GetStartTime)); 280 return AddFilter(BuildFilter<std::string>(value, GT, &GetStartTime));
283 case FILTER_STARTED_BEFORE: 281 case FILTER_STARTED_BEFORE:
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 414
417 void DownloadQuery::FinishSearch(DownloadQuery::DownloadVector* results) const { 415 void DownloadQuery::FinishSearch(DownloadQuery::DownloadVector* results) const {
418 if (!sorters_.empty()) 416 if (!sorters_.empty())
419 std::partial_sort(results->begin(), 417 std::partial_sort(results->begin(),
420 results->begin() + std::min(limit_, results->size()), 418 results->begin() + std::min(limit_, results->size()),
421 results->end(), 419 results->end(),
422 DownloadComparator(sorters_)); 420 DownloadComparator(sorters_));
423 if (results->size() > limit_) 421 if (results->size() > limit_)
424 results->resize(limit_); 422 results->resize(limit_);
425 } 423 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698