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

Side by Side Diff: chrome/browser/dom_ui/history_ui.cc

Issue 43054: Stop history search going on beyond the start of history.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 9 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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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/dom_ui/history_ui.h" 5 #include "chrome/browser/dom_ui/history_ui.h"
6 6
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/string_piece.h" 8 #include "base/string_piece.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/thread.h" 10 #include "base/thread.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 l10n_util::GetString(IDS_HISTORY_SEARCH_BUTTON)); 69 l10n_util::GetString(IDS_HISTORY_SEARCH_BUTTON));
70 localized_strings.SetString(L"noresults", 70 localized_strings.SetString(L"noresults",
71 l10n_util::GetString(IDS_HISTORY_NO_RESULTS)); 71 l10n_util::GetString(IDS_HISTORY_NO_RESULTS));
72 localized_strings.SetString(L"noitems", 72 localized_strings.SetString(L"noitems",
73 l10n_util::GetString(IDS_HISTORY_NO_ITEMS)); 73 l10n_util::GetString(IDS_HISTORY_NO_ITEMS));
74 localized_strings.SetString(L"deleteday", 74 localized_strings.SetString(L"deleteday",
75 l10n_util::GetString(IDS_HISTORY_DELETE_PRIOR_VISITS_LINK)); 75 l10n_util::GetString(IDS_HISTORY_DELETE_PRIOR_VISITS_LINK));
76 localized_strings.SetString(L"deletedaywarning", 76 localized_strings.SetString(L"deletedaywarning",
77 l10n_util::GetString(IDS_HISTORY_DELETE_PRIOR_VISITS_WARNING)); 77 l10n_util::GetString(IDS_HISTORY_DELETE_PRIOR_VISITS_WARNING));
78 78
79 localized_strings.SetString(L"textdirection",
80 (l10n_util::GetTextDirection() == l10n_util::RIGHT_TO_LEFT) ?
81 L"rtl" : L"ltr");
82
79 static const StringPiece history_html( 83 static const StringPiece history_html(
80 ResourceBundle::GetSharedInstance().GetRawDataResource( 84 ResourceBundle::GetSharedInstance().GetRawDataResource(
81 IDR_HISTORY_HTML)); 85 IDR_HISTORY_HTML));
82 const std::string full_html = jstemplate_builder::GetTemplateHtml( 86 const std::string full_html = jstemplate_builder::GetTemplateHtml(
83 history_html, &localized_strings, "t"); 87 history_html, &localized_strings, "t");
84 88
85 scoped_refptr<RefCountedBytes> html_bytes(new RefCountedBytes); 89 scoped_refptr<RefCountedBytes> html_bytes(new RefCountedBytes);
86 html_bytes->data.resize(full_html.size()); 90 html_bytes->data.resize(full_html.size());
87 std::copy(full_html.begin(), full_html.end(), html_bytes->data.begin()); 91 std::copy(full_html.begin(), full_html.end(), html_bytes->data.begin());
88 92
89 SendResponse(request_id, html_bytes); 93 SendResponse(request_id, html_bytes);
90 } 94 }
91 95
92 //////////////////////////////////////////////////////////////////////////////// 96 ////////////////////////////////////////////////////////////////////////////////
93 // 97 //
94 // HistoryHandler 98 // HistoryHandler
95 // 99 //
96 //////////////////////////////////////////////////////////////////////////////// 100 ////////////////////////////////////////////////////////////////////////////////
97 BrowsingHistoryHandler::BrowsingHistoryHandler(DOMUI* dom_ui) 101 BrowsingHistoryHandler::BrowsingHistoryHandler(DOMUI* dom_ui)
98 : DOMMessageHandler(dom_ui), 102 : DOMMessageHandler(dom_ui),
99 search_text_(), 103 search_text_(),
100 remover_(NULL) { 104 remover_(NULL) {
101 dom_ui_->RegisterMessageCallback("getHistory", 105 dom_ui_->RegisterMessageCallback("getHistory",
102 NewCallback(this, &BrowsingHistoryHandler::HandleGetHistory)); 106 NewCallback(this, &BrowsingHistoryHandler::HandleGetHistory));
103 dom_ui_->RegisterMessageCallback("searchHistory", 107 dom_ui_->RegisterMessageCallback("searchHistory",
104 NewCallback(this, &BrowsingHistoryHandler::HandleSearchHistory)); 108 NewCallback(this, &BrowsingHistoryHandler::HandleSearchHistory));
105 dom_ui_->RegisterMessageCallback("deleteDay", 109 dom_ui_->RegisterMessageCallback("deleteDay",
106 NewCallback(this, &BrowsingHistoryHandler::HandleDeleteDay)); 110 NewCallback(this, &BrowsingHistoryHandler::HandleDeleteDay));
107 111
108 // Create our favicon data source. 112 // Create our favicon data source.
109 g_browser_process->io_thread()->message_loop()->PostTask(FROM_HERE, 113 g_browser_process->io_thread()->message_loop()->PostTask(FROM_HERE,
110 NewRunnableMethod(&chrome_url_data_manager, 114 NewRunnableMethod(&chrome_url_data_manager,
111 &ChromeURLDataManager::AddDataSource, 115 &ChromeURLDataManager::AddDataSource,
112 new FavIconSource(dom_ui_->get_profile()))); 116 new FavIconSource(dom_ui_->get_profile())));
113 117
114 // Get notifications when history is cleared. 118 // Get notifications when history is cleared.
115 NotificationService* service = NotificationService::current(); 119 NotificationService* service = NotificationService::current();
116 service->AddObserver(this, NotificationType::HISTORY_URLS_DELETED, 120 service->AddObserver(this, NotificationType::HISTORY_URLS_DELETED,
(...skipping 19 matching lines...) Expand all
136 int day = 0; 140 int day = 0;
137 ExtractIntegerValue(value, &day); 141 ExtractIntegerValue(value, &day);
138 142
139 // Set our query options. 143 // Set our query options.
140 history::QueryOptions options; 144 history::QueryOptions options;
141 options.begin_time = Time::Now().LocalMidnight(); 145 options.begin_time = Time::Now().LocalMidnight();
142 options.begin_time -= TimeDelta::FromDays(day); 146 options.begin_time -= TimeDelta::FromDays(day);
143 options.end_time = Time::Now().LocalMidnight(); 147 options.end_time = Time::Now().LocalMidnight();
144 options.end_time -= TimeDelta::FromDays(day - 1); 148 options.end_time -= TimeDelta::FromDays(day - 1);
145 149
150 // As we're querying per-day, we can turn entry repeats off.
151 options.most_recent_visit_only = true;
152
146 // Need to remember the query string for our results. 153 // Need to remember the query string for our results.
147 search_text_ = std::wstring(); 154 search_text_ = std::wstring();
148 155
149 HistoryService* hs = 156 HistoryService* hs =
150 dom_ui_->get_profile()->GetHistoryService(Profile::EXPLICIT_ACCESS); 157 dom_ui_->get_profile()->GetHistoryService(Profile::EXPLICIT_ACCESS);
151 hs->QueryHistory(search_text_, 158 hs->QueryHistory(search_text_,
152 options, 159 options,
153 &cancelable_consumer_, 160 &cancelable_consumer_,
154 NewCallback(this, &BrowsingHistoryHandler::QueryComplete)); 161 NewCallback(this, &BrowsingHistoryHandler::QueryComplete));
155 } 162 }
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 } else { 259 } else {
253 page_value->SetString(L"dateShort", 260 page_value->SetString(L"dateShort",
254 base::TimeFormatShortDate(page.visit_time())); 261 base::TimeFormatShortDate(page.visit_time()));
255 page_value->SetString(L"snippet", page.snippet().text()); 262 page_value->SetString(L"snippet", page.snippet().text());
256 } 263 }
257 page_value->SetBoolean(L"starred", 264 page_value->SetBoolean(L"starred",
258 dom_ui_->get_profile()->GetBookmarkModel()->IsBookmarked(page.url())); 265 dom_ui_->get_profile()->GetBookmarkModel()->IsBookmarked(page.url()));
259 results_value.Append(page_value); 266 results_value.Append(page_value);
260 } 267 }
261 268
262 StringValue temp(search_text_); 269 DictionaryValue info_value;
263 dom_ui_->CallJavascriptFunction(L"historyResult", temp, results_value); 270 info_value.SetString(L"term", search_text_);
271 info_value.SetBoolean(L"finished", results->reached_beginning());
272
273 dom_ui_->CallJavascriptFunction(L"historyResult", info_value, results_value);
264 } 274 }
265 275
266 void BrowsingHistoryHandler::ExtractSearchHistoryArguments(const Value* value, 276 void BrowsingHistoryHandler::ExtractSearchHistoryArguments(const Value* value,
267 int* month, std::wstring* query) { 277 int* month, std::wstring* query) {
268 *month = 0; 278 *month = 0;
269 279
270 if (value && value->GetType() == Value::TYPE_LIST) { 280 if (value && value->GetType() == Value::TYPE_LIST) {
271 const ListValue* list_value = static_cast<const ListValue*>(value); 281 const ListValue* list_value = static_cast<const ListValue*>(value);
272 Value* list_member; 282 Value* list_member;
273 283
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 } 345 }
336 346
337 void BrowsingHistoryHandler::Observe(NotificationType type, 347 void BrowsingHistoryHandler::Observe(NotificationType type,
338 const NotificationSource& source, 348 const NotificationSource& source,
339 const NotificationDetails& details) { 349 const NotificationDetails& details) {
340 if (type != NotificationType::HISTORY_URLS_DELETED) { 350 if (type != NotificationType::HISTORY_URLS_DELETED) {
341 NOTREACHED(); 351 NOTREACHED();
342 return; 352 return;
343 } 353 }
344 354
345 // Some URLs were deleted from history. Reload the most visited list. 355 // Some URLs were deleted from history. Reload the list.
346 HandleGetHistory(NULL); 356 dom_ui_->CallJavascriptFunction(L"historyDeleted");
347 } 357 }
348 358
349 //////////////////////////////////////////////////////////////////////////////// 359 ////////////////////////////////////////////////////////////////////////////////
350 // 360 //
351 // HistoryUIContents 361 // HistoryUIContents
352 // 362 //
353 //////////////////////////////////////////////////////////////////////////////// 363 ////////////////////////////////////////////////////////////////////////////////
354 364
355 HistoryUI::HistoryUI(DOMUIContents* contents) : DOMUI(contents) { 365 HistoryUI::HistoryUI(DOMUIContents* contents) : DOMUI(contents) {
356 } 366 }
(...skipping 13 matching lines...) Expand all
370 // static 380 // static
371 GURL HistoryUI::GetBaseURL() { 381 GURL HistoryUI::GetBaseURL() {
372 std::string url = DOMUIContents::GetScheme(); 382 std::string url = DOMUIContents::GetScheme();
373 url += "://"; 383 url += "://";
374 url += kHistoryHost; 384 url += kHistoryHost;
375 return GURL(url); 385 return GURL(url);
376 } 386 }
377 387
378 // static 388 // static
379 const GURL HistoryUI::GetHistoryURLWithSearchText( 389 const GURL HistoryUI::GetHistoryURLWithSearchText(
380 const std::wstring& text) { 390 const std::wstring& text) {
381 return GURL(GetBaseURL().spec() + "#q=" + 391 return GURL(GetBaseURL().spec() + "#q=" +
382 EscapeQueryParamValue(WideToUTF8(text))); 392 EscapeQueryParamValue(WideToUTF8(text)));
383 } 393 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698