OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/ui/webui/history2_ui.h" | 5 #include "chrome/browser/ui/webui/history2_ui.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 13 matching lines...) Expand all Loading... |
24 #include "chrome/browser/ui/browser.h" | 24 #include "chrome/browser/ui/browser.h" |
25 #include "chrome/browser/ui/browser_list.h" | 25 #include "chrome/browser/ui/browser_list.h" |
26 #include "chrome/browser/ui/webui/favicon_source.h" | 26 #include "chrome/browser/ui/webui/favicon_source.h" |
27 #include "chrome/common/jstemplate_builder.h" | 27 #include "chrome/common/jstemplate_builder.h" |
28 #include "chrome/common/time_format.h" | 28 #include "chrome/common/time_format.h" |
29 #include "chrome/common/url_constants.h" | 29 #include "chrome/common/url_constants.h" |
30 #include "content/browser/browser_thread.h" | 30 #include "content/browser/browser_thread.h" |
31 #include "content/browser/tab_contents/tab_contents.h" | 31 #include "content/browser/tab_contents/tab_contents.h" |
32 #include "content/browser/tab_contents/tab_contents_delegate.h" | 32 #include "content/browser/tab_contents/tab_contents_delegate.h" |
33 #include "content/browser/user_metrics.h" | 33 #include "content/browser/user_metrics.h" |
| 34 #include "content/common/notification_source.h" |
34 #include "grit/browser_resources.h" | 35 #include "grit/browser_resources.h" |
35 #include "grit/chromium_strings.h" | 36 #include "grit/chromium_strings.h" |
36 #include "grit/generated_resources.h" | 37 #include "grit/generated_resources.h" |
37 #include "grit/locale_settings.h" | 38 #include "grit/locale_settings.h" |
38 #include "grit/theme_resources.h" | 39 #include "grit/theme_resources.h" |
39 #include "net/base/escape.h" | 40 #include "net/base/escape.h" |
40 #include "ui/base/l10n/l10n_util.h" | 41 #include "ui/base/l10n/l10n_util.h" |
41 #include "ui/base/resource/resource_bundle.h" | 42 #include "ui/base/resource/resource_bundle.h" |
42 | 43 |
43 // Maximum number of search results to return in a given search. We should | 44 // Maximum number of search results to return in a given search. We should |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 cancelable_search_consumer_.CancelAllRequests(); | 126 cancelable_search_consumer_.CancelAllRequests(); |
126 cancelable_delete_consumer_.CancelAllRequests(); | 127 cancelable_delete_consumer_.CancelAllRequests(); |
127 } | 128 } |
128 | 129 |
129 WebUIMessageHandler* BrowsingHistoryHandler2::Attach(WebUI* web_ui) { | 130 WebUIMessageHandler* BrowsingHistoryHandler2::Attach(WebUI* web_ui) { |
130 // Create our favicon data source. | 131 // Create our favicon data source. |
131 Profile* profile = web_ui->GetProfile(); | 132 Profile* profile = web_ui->GetProfile(); |
132 profile->GetChromeURLDataManager()->AddDataSource( | 133 profile->GetChromeURLDataManager()->AddDataSource( |
133 new FaviconSource(profile, FaviconSource::FAVICON)); | 134 new FaviconSource(profile, FaviconSource::FAVICON)); |
134 | 135 |
| 136 // Get notifications when history is cleared. |
| 137 registrar_.Add(this, NotificationType::HISTORY_URLS_DELETED, |
| 138 Source<Profile>(web_ui->GetProfile()->GetOriginalProfile())); |
135 return WebUIMessageHandler::Attach(web_ui); | 139 return WebUIMessageHandler::Attach(web_ui); |
136 } | 140 } |
137 | 141 |
138 void BrowsingHistoryHandler2::RegisterMessages() { | 142 void BrowsingHistoryHandler2::RegisterMessages() { |
139 web_ui_->RegisterMessageCallback("getHistory", | 143 web_ui_->RegisterMessageCallback("getHistory", |
140 NewCallback(this, &BrowsingHistoryHandler2::HandleGetHistory)); | 144 NewCallback(this, &BrowsingHistoryHandler2::HandleGetHistory)); |
141 web_ui_->RegisterMessageCallback("searchHistory", | 145 web_ui_->RegisterMessageCallback("searchHistory", |
142 NewCallback(this, &BrowsingHistoryHandler2::HandleSearchHistory)); | 146 NewCallback(this, &BrowsingHistoryHandler2::HandleSearchHistory)); |
143 web_ui_->RegisterMessageCallback("removeURLsOnOneDay", | 147 web_ui_->RegisterMessageCallback("removeURLsOnOneDay", |
144 NewCallback(this, &BrowsingHistoryHandler2::HandleRemoveURLsOnOneDay)); | 148 NewCallback(this, &BrowsingHistoryHandler2::HandleRemoveURLsOnOneDay)); |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
362 } else { | 366 } else { |
363 exploded.month = 12; | 367 exploded.month = 12; |
364 exploded.year--; | 368 exploded.year--; |
365 } | 369 } |
366 options.begin_time = base::Time::FromLocalExploded(exploded); | 370 options.begin_time = base::Time::FromLocalExploded(exploded); |
367 } | 371 } |
368 | 372 |
369 return options; | 373 return options; |
370 } | 374 } |
371 | 375 |
| 376 void BrowsingHistoryHandler2::Observe(NotificationType type, |
| 377 const NotificationSource& source, |
| 378 const NotificationDetails& details) { |
| 379 if (type != NotificationType::HISTORY_URLS_DELETED) { |
| 380 NOTREACHED(); |
| 381 return; |
| 382 } |
| 383 |
| 384 // Some URLs were deleted from history. Reload the list. |
| 385 web_ui_->CallJavascriptFunction("historyDeleted"); |
| 386 } |
| 387 |
372 //////////////////////////////////////////////////////////////////////////////// | 388 //////////////////////////////////////////////////////////////////////////////// |
373 // | 389 // |
374 // HistoryUIContents | 390 // HistoryUIContents |
375 // | 391 // |
376 //////////////////////////////////////////////////////////////////////////////// | 392 //////////////////////////////////////////////////////////////////////////////// |
377 | 393 |
378 HistoryUI2::HistoryUI2(TabContents* contents) : ChromeWebUI(contents) { | 394 HistoryUI2::HistoryUI2(TabContents* contents) : ChromeWebUI(contents) { |
379 AddMessageHandler((new BrowsingHistoryHandler2())->Attach(this)); | 395 AddMessageHandler((new BrowsingHistoryHandler2())->Attach(this)); |
380 | 396 |
381 HistoryUIHTMLSource2* html_source = new HistoryUIHTMLSource2(); | 397 HistoryUIHTMLSource2* html_source = new HistoryUIHTMLSource2(); |
382 | 398 |
383 // Set up the chrome://history2/ source. | 399 // Set up the chrome://history2/ source. |
384 contents->profile()->GetChromeURLDataManager()->AddDataSource(html_source); | 400 contents->profile()->GetChromeURLDataManager()->AddDataSource(html_source); |
385 } | 401 } |
386 | 402 |
387 // static | 403 // static |
388 const GURL HistoryUI2::GetHistoryURLWithSearchText(const string16& text) { | 404 const GURL HistoryUI2::GetHistoryURLWithSearchText(const string16& text) { |
389 return GURL(std::string(chrome::kChromeUIHistory2URL) + "#q=" + | 405 return GURL(std::string(chrome::kChromeUIHistory2URL) + "#q=" + |
390 EscapeQueryParamValue(UTF16ToUTF8(text), true)); | 406 EscapeQueryParamValue(UTF16ToUTF8(text), true)); |
391 } | 407 } |
392 | 408 |
393 // static | 409 // static |
394 RefCountedMemory* HistoryUI2::GetFaviconResourceBytes() { | 410 RefCountedMemory* HistoryUI2::GetFaviconResourceBytes() { |
395 return ResourceBundle::GetSharedInstance(). | 411 return ResourceBundle::GetSharedInstance(). |
396 LoadDataResourceBytes(IDR_HISTORY_FAVICON); | 412 LoadDataResourceBytes(IDR_HISTORY_FAVICON); |
397 } | 413 } |
OLD | NEW |