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

Side by Side Diff: chrome/browser/ui/webui/history_ui.cc

Issue 7086030: Refresh the history page if history entries get deleted, except for when currently editing entries (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 9 years, 6 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
« no previous file with comments | « chrome/browser/ui/webui/history_ui.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/history_ui.h" 5 #include "chrome/browser/ui/webui/history_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 14 matching lines...) Expand all
25 #include "chrome/browser/ui/browser_list.h" 25 #include "chrome/browser/ui/browser_list.h"
26 #include "chrome/browser/ui/webui/chrome_web_ui_data_source.h" 26 #include "chrome/browser/ui/webui/chrome_web_ui_data_source.h"
27 #include "chrome/browser/ui/webui/favicon_source.h" 27 #include "chrome/browser/ui/webui/favicon_source.h"
28 #include "chrome/common/jstemplate_builder.h" 28 #include "chrome/common/jstemplate_builder.h"
29 #include "chrome/common/time_format.h" 29 #include "chrome/common/time_format.h"
30 #include "chrome/common/url_constants.h" 30 #include "chrome/common/url_constants.h"
31 #include "content/browser/browser_thread.h" 31 #include "content/browser/browser_thread.h"
32 #include "content/browser/tab_contents/tab_contents.h" 32 #include "content/browser/tab_contents/tab_contents.h"
33 #include "content/browser/tab_contents/tab_contents_delegate.h" 33 #include "content/browser/tab_contents/tab_contents_delegate.h"
34 #include "content/browser/user_metrics.h" 34 #include "content/browser/user_metrics.h"
35 #include "content/common/notification_source.h"
35 #include "grit/browser_resources.h" 36 #include "grit/browser_resources.h"
36 #include "grit/chromium_strings.h" 37 #include "grit/chromium_strings.h"
37 #include "grit/generated_resources.h" 38 #include "grit/generated_resources.h"
38 #include "grit/locale_settings.h" 39 #include "grit/locale_settings.h"
39 #include "grit/theme_resources.h" 40 #include "grit/theme_resources.h"
40 #include "net/base/escape.h" 41 #include "net/base/escape.h"
41 #include "ui/base/l10n/l10n_util.h" 42 #include "ui/base/l10n/l10n_util.h"
42 #include "ui/base/resource/resource_bundle.h" 43 #include "ui/base/resource/resource_bundle.h"
43 44
44 // Maximum number of search results to return in a given search. We should 45 // Maximum number of search results to return in a given search. We should
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 cancelable_search_consumer_.CancelAllRequests(); 129 cancelable_search_consumer_.CancelAllRequests();
129 cancelable_delete_consumer_.CancelAllRequests(); 130 cancelable_delete_consumer_.CancelAllRequests();
130 } 131 }
131 132
132 WebUIMessageHandler* BrowsingHistoryHandler::Attach(WebUI* web_ui) { 133 WebUIMessageHandler* BrowsingHistoryHandler::Attach(WebUI* web_ui) {
133 // Create our favicon data source. 134 // Create our favicon data source.
134 Profile* profile = web_ui->GetProfile(); 135 Profile* profile = web_ui->GetProfile();
135 profile->GetChromeURLDataManager()->AddDataSource( 136 profile->GetChromeURLDataManager()->AddDataSource(
136 new FaviconSource(profile, FaviconSource::FAVICON)); 137 new FaviconSource(profile, FaviconSource::FAVICON));
137 138
139 // Get notifications when history is cleared.
140 registrar_.Add(this, NotificationType::HISTORY_URLS_DELETED,
141 Source<Profile>(profile->GetOriginalProfile()));
138 return WebUIMessageHandler::Attach(web_ui); 142 return WebUIMessageHandler::Attach(web_ui);
139 } 143 }
140 144
141 void BrowsingHistoryHandler::RegisterMessages() { 145 void BrowsingHistoryHandler::RegisterMessages() {
142 web_ui_->RegisterMessageCallback("getHistory", 146 web_ui_->RegisterMessageCallback("getHistory",
143 NewCallback(this, &BrowsingHistoryHandler::HandleGetHistory)); 147 NewCallback(this, &BrowsingHistoryHandler::HandleGetHistory));
144 web_ui_->RegisterMessageCallback("searchHistory", 148 web_ui_->RegisterMessageCallback("searchHistory",
145 NewCallback(this, &BrowsingHistoryHandler::HandleSearchHistory)); 149 NewCallback(this, &BrowsingHistoryHandler::HandleSearchHistory));
146 web_ui_->RegisterMessageCallback("removeURLsOnOneDay", 150 web_ui_->RegisterMessageCallback("removeURLsOnOneDay",
147 NewCallback(this, &BrowsingHistoryHandler::HandleRemoveURLsOnOneDay)); 151 NewCallback(this, &BrowsingHistoryHandler::HandleRemoveURLsOnOneDay));
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 } else { 357 } else {
354 exploded.month = 12; 358 exploded.month = 12;
355 exploded.year--; 359 exploded.year--;
356 } 360 }
357 options.begin_time = base::Time::FromLocalExploded(exploded); 361 options.begin_time = base::Time::FromLocalExploded(exploded);
358 } 362 }
359 363
360 return options; 364 return options;
361 } 365 }
362 366
367 void BrowsingHistoryHandler::Observe(NotificationType type,
368 const NotificationSource& source,
369 const NotificationDetails& details) {
370 if (type != NotificationType::HISTORY_URLS_DELETED) {
371 NOTREACHED();
372 return;
373 }
374
375 // Some URLs were deleted from history. Reload the list.
376 web_ui_->CallJavascriptFunction("historyDeleted");
377 }
378
363 //////////////////////////////////////////////////////////////////////////////// 379 ////////////////////////////////////////////////////////////////////////////////
364 // 380 //
365 // HistoryUI 381 // HistoryUI
366 // 382 //
367 //////////////////////////////////////////////////////////////////////////////// 383 ////////////////////////////////////////////////////////////////////////////////
368 384
369 HistoryUI::HistoryUI(TabContents* contents) : ChromeWebUI(contents) { 385 HistoryUI::HistoryUI(TabContents* contents) : ChromeWebUI(contents) {
370 AddMessageHandler((new BrowsingHistoryHandler())->Attach(this)); 386 AddMessageHandler((new BrowsingHistoryHandler())->Attach(this));
371 387
372 HistoryUIHTMLSource* html_source = new HistoryUIHTMLSource(); 388 HistoryUIHTMLSource* html_source = new HistoryUIHTMLSource();
373 389
374 // Set up the chrome://history/ source. 390 // Set up the chrome://history/ source.
375 contents->profile()->GetChromeURLDataManager()->AddDataSource(html_source); 391 contents->profile()->GetChromeURLDataManager()->AddDataSource(html_source);
376 } 392 }
377 393
378 // static 394 // static
379 const GURL HistoryUI::GetHistoryURLWithSearchText(const string16& text) { 395 const GURL HistoryUI::GetHistoryURLWithSearchText(const string16& text) {
380 return GURL(std::string(chrome::kChromeUIHistoryURL) + "#q=" + 396 return GURL(std::string(chrome::kChromeUIHistoryURL) + "#q=" +
381 EscapeQueryParamValue(UTF16ToUTF8(text), true)); 397 EscapeQueryParamValue(UTF16ToUTF8(text), true));
382 } 398 }
383 399
384 // static 400 // static
385 RefCountedMemory* HistoryUI::GetFaviconResourceBytes() { 401 RefCountedMemory* HistoryUI::GetFaviconResourceBytes() {
386 return ResourceBundle::GetSharedInstance(). 402 return ResourceBundle::GetSharedInstance().
387 LoadDataResourceBytes(IDR_HISTORY_FAVICON); 403 LoadDataResourceBytes(IDR_HISTORY_FAVICON);
388 } 404 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/history_ui.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698