diff options
Diffstat (limited to 'chrome/browser/dom_ui/history_ui.cc')
-rw-r--r-- | chrome/browser/dom_ui/history_ui.cc | 172 |
1 files changed, 81 insertions, 91 deletions
diff --git a/chrome/browser/dom_ui/history_ui.cc b/chrome/browser/dom_ui/history_ui.cc index cb3b4cc..60ff39f 100644 --- a/chrome/browser/dom_ui/history_ui.cc +++ b/chrome/browser/dom_ui/history_ui.cc @@ -10,13 +10,16 @@ #include "base/i18n/time_formatting.h" #include "base/message_loop.h" #include "base/singleton.h" +#include "base/string16.h" +#include "base/string_number_conversions.h" #include "base/string_piece.h" -#include "base/string_util.h" #include "base/thread.h" #include "base/time.h" +#include "base/utf_string_conversions.h" #include "base/values.h" #include "chrome/browser/bookmarks/bookmark_model.h" #include "chrome/browser/browser.h" +#include "chrome/browser/browser_list.h" #include "chrome/browser/chrome_thread.h" #include "chrome/browser/dom_ui/dom_ui_favicon_source.h" #include "chrome/browser/metrics/user_metrics.h" @@ -54,40 +57,40 @@ void HistoryUIHTMLSource::StartDataRequest(const std::string& path, bool is_off_the_record, int request_id) { DictionaryValue localized_strings; - localized_strings.SetString(L"loading", - l10n_util::GetString(IDS_HISTORY_LOADING)); - localized_strings.SetString(L"title", - l10n_util::GetString(IDS_HISTORY_TITLE)); - localized_strings.SetString(L"loading", - l10n_util::GetString(IDS_HISTORY_LOADING)); - localized_strings.SetString(L"newest", - l10n_util::GetString(IDS_HISTORY_NEWEST)); - localized_strings.SetString(L"newer", - l10n_util::GetString(IDS_HISTORY_NEWER)); - localized_strings.SetString(L"older", - l10n_util::GetString(IDS_HISTORY_OLDER)); - localized_strings.SetString(L"searchresultsfor", - l10n_util::GetString(IDS_HISTORY_SEARCHRESULTSFOR)); - localized_strings.SetString(L"history", - l10n_util::GetString(IDS_HISTORY_BROWSERESULTS)); - localized_strings.SetString(L"cont", - l10n_util::GetString(IDS_HISTORY_CONTINUED)); - localized_strings.SetString(L"searchbutton", - l10n_util::GetString(IDS_HISTORY_SEARCH_BUTTON)); - localized_strings.SetString(L"noresults", - l10n_util::GetString(IDS_HISTORY_NO_RESULTS)); - localized_strings.SetString(L"noitems", - l10n_util::GetString(IDS_HISTORY_NO_ITEMS)); - localized_strings.SetString(L"edithistory", - l10n_util::GetString(IDS_HISTORY_START_EDITING_HISTORY)); - localized_strings.SetString(L"doneediting", - l10n_util::GetString(IDS_HISTORY_STOP_EDITING_HISTORY)); - localized_strings.SetString(L"removeselected", - l10n_util::GetString(IDS_HISTORY_REMOVE_SELECTED_ITEMS)); - localized_strings.SetString(L"clearallhistory", - l10n_util::GetString(IDS_HISTORY_OPEN_CLEAR_BROWSING_DATA_DIALOG)); - localized_strings.SetString(L"deletewarning", - l10n_util::GetString(IDS_HISTORY_DELETE_PRIOR_VISITS_WARNING)); + localized_strings.SetString("loading", + l10n_util::GetStringUTF16(IDS_HISTORY_LOADING)); + localized_strings.SetString("title", + l10n_util::GetStringUTF16(IDS_HISTORY_TITLE)); + localized_strings.SetString("loading", + l10n_util::GetStringUTF16(IDS_HISTORY_LOADING)); + localized_strings.SetString("newest", + l10n_util::GetStringUTF16(IDS_HISTORY_NEWEST)); + localized_strings.SetString("newer", + l10n_util::GetStringUTF16(IDS_HISTORY_NEWER)); + localized_strings.SetString("older", + l10n_util::GetStringUTF16(IDS_HISTORY_OLDER)); + localized_strings.SetString("searchresultsfor", + l10n_util::GetStringUTF16(IDS_HISTORY_SEARCHRESULTSFOR)); + localized_strings.SetString("history", + l10n_util::GetStringUTF16(IDS_HISTORY_BROWSERESULTS)); + localized_strings.SetString("cont", + l10n_util::GetStringUTF16(IDS_HISTORY_CONTINUED)); + localized_strings.SetString("searchbutton", + l10n_util::GetStringUTF16(IDS_HISTORY_SEARCH_BUTTON)); + localized_strings.SetString("noresults", + l10n_util::GetStringUTF16(IDS_HISTORY_NO_RESULTS)); + localized_strings.SetString("noitems", + l10n_util::GetStringUTF16(IDS_HISTORY_NO_ITEMS)); + localized_strings.SetString("edithistory", + l10n_util::GetStringUTF16(IDS_HISTORY_START_EDITING_HISTORY)); + localized_strings.SetString("doneediting", + l10n_util::GetStringUTF16(IDS_HISTORY_STOP_EDITING_HISTORY)); + localized_strings.SetString("removeselected", + l10n_util::GetStringUTF16(IDS_HISTORY_REMOVE_SELECTED_ITEMS)); + localized_strings.SetString("clearallhistory", + l10n_util::GetStringUTF16(IDS_HISTORY_OPEN_CLEAR_BROWSING_DATA_DIALOG)); + localized_strings.SetString("deletewarning", + l10n_util::GetStringUTF16(IDS_HISTORY_DELETE_PRIOR_VISITS_WARNING)); SetFontAndTextDirection(&localized_strings); @@ -144,13 +147,13 @@ void BrowsingHistoryHandler::RegisterMessages() { NewCallback(this, &BrowsingHistoryHandler::HandleClearBrowsingData)); } -void BrowsingHistoryHandler::HandleGetHistory(const Value* value) { +void BrowsingHistoryHandler::HandleGetHistory(const ListValue* args) { // Anything in-flight is invalid. cancelable_search_consumer_.CancelAllRequests(); // Get arguments (if any). int day = 0; - ExtractIntegerValue(value, &day); + ExtractIntegerValue(args, &day); // Set our query options. history::QueryOptions options; @@ -170,14 +173,14 @@ void BrowsingHistoryHandler::HandleGetHistory(const Value* value) { NewCallback(this, &BrowsingHistoryHandler::QueryComplete)); } -void BrowsingHistoryHandler::HandleSearchHistory(const Value* value) { +void BrowsingHistoryHandler::HandleSearchHistory(const ListValue* args) { // Anything in-flight is invalid. cancelable_search_consumer_.CancelAllRequests(); // Get arguments (if any). int month = 0; string16 query; - ExtractSearchHistoryArguments(value, &month, &query); + ExtractSearchHistoryArguments(args, &month, &query); // Set the query ranges for the given month. history::QueryOptions options = CreateMonthQueryOptions(month); @@ -195,17 +198,15 @@ void BrowsingHistoryHandler::HandleSearchHistory(const Value* value) { NewCallback(this, &BrowsingHistoryHandler::QueryComplete)); } -void BrowsingHistoryHandler::HandleRemoveURLsOnOneDay(const Value* value) { +void BrowsingHistoryHandler::HandleRemoveURLsOnOneDay(const ListValue* args) { if (cancelable_delete_consumer_.HasPendingRequests()) { dom_ui_->CallJavascriptFunction(L"deleteFailed"); return; } - DCHECK(value && value->GetType() == Value::TYPE_LIST); - // Get day to delete data from. int visit_time = 0; - ExtractIntegerValue(value, &visit_time); + ExtractIntegerValue(args, &visit_time); base::Time::Exploded exploded; base::Time::FromTimeT( static_cast<time_t>(visit_time)).LocalExplode(&exploded); @@ -215,14 +216,13 @@ void BrowsingHistoryHandler::HandleRemoveURLsOnOneDay(const Value* value) { // Get URLs. std::set<GURL> urls; - const ListValue* list_value = static_cast<const ListValue*>(value); - for (ListValue::const_iterator v = list_value->begin() + 1; - v != list_value->end(); ++v) { + for (ListValue::const_iterator v = args->begin() + 1; + v != args->end(); ++v) { if ((*v)->GetType() != Value::TYPE_STRING) continue; const StringValue* string_value = static_cast<const StringValue*>(*v); string16 string16_value; - if (!string_value->GetAsUTF16(&string16_value)) + if (!string_value->GetAsString(&string16_value)) continue; urls.insert(GURL(string16_value)); } @@ -234,9 +234,12 @@ void BrowsingHistoryHandler::HandleRemoveURLsOnOneDay(const Value* value) { NewCallback(this, &BrowsingHistoryHandler::RemoveComplete)); } -void BrowsingHistoryHandler::HandleClearBrowsingData(const Value* value) { - dom_ui_->tab_contents()->delegate()->GetBrowser()-> - OpenClearBrowsingDataDialog(); +void BrowsingHistoryHandler::HandleClearBrowsingData(const ListValue* args) { + // TODO(beng): This is an improper direct dependency on Browser. Route this + // through some sort of delegate. + Browser* browser = BrowserList::FindBrowserWithProfile(dom_ui_->GetProfile()); + if (browser) + browser->OpenClearBrowsingDataDialog(); } void BrowsingHistoryHandler::QueryComplete( @@ -252,7 +255,7 @@ void BrowsingHistoryHandler::QueryComplete( SetURLAndTitle(page_value, page.title(), page.url()); // Need to pass the time in epoch time (fastest JS conversion). - page_value->SetInteger(L"time", + page_value->SetInteger("time", static_cast<int>(page.visit_time().ToTimeT())); // Until we get some JS i18n infrastructure, we also need to @@ -263,31 +266,33 @@ void BrowsingHistoryHandler::QueryComplete( // and snippet, browse results need day and time information). if (search_text_.empty()) { // Figure out the relative date string. - std::wstring date_str = TimeFormat::RelativeDate(page.visit_time(), - &midnight_today); + string16 date_str = TimeFormat::RelativeDate(page.visit_time(), + &midnight_today); if (date_str.empty()) { - date_str = base::TimeFormatFriendlyDate(page.visit_time()); + date_str = + WideToUTF16Hack(base::TimeFormatFriendlyDate(page.visit_time())); } else { - date_str = l10n_util::GetStringF( + date_str = l10n_util::GetStringFUTF16( IDS_HISTORY_DATE_WITH_RELATIVE_TIME, - date_str, base::TimeFormatFriendlyDate(page.visit_time())); + date_str, + WideToUTF16Hack(base::TimeFormatFriendlyDate(page.visit_time()))); } - page_value->SetString(L"dateRelativeDay", date_str); - page_value->SetString(L"dateTimeOfDay", - base::TimeFormatTimeOfDay(page.visit_time())); + page_value->SetString("dateRelativeDay", date_str); + page_value->SetString("dateTimeOfDay", + WideToUTF16Hack(base::TimeFormatTimeOfDay(page.visit_time()))); } else { - page_value->SetString(L"dateShort", - base::TimeFormatShortDate(page.visit_time())); - page_value->SetStringFromUTF16(L"snippet", page.snippet().text()); + page_value->SetString("dateShort", + WideToUTF16Hack(base::TimeFormatShortDate(page.visit_time()))); + page_value->SetString("snippet", page.snippet().text()); } - page_value->SetBoolean(L"starred", + page_value->SetBoolean("starred", dom_ui_->GetProfile()->GetBookmarkModel()->IsBookmarked(page.url())); results_value.Append(page_value); } DictionaryValue info_value; - info_value.SetStringFromUTF16(L"term", search_text_); - info_value.SetBoolean(L"finished", results->reached_beginning()); + info_value.SetString("term", search_text_); + info_value.SetBoolean("finished", results->reached_beginning()); dom_ui_->CallJavascriptFunction(L"historyResult", info_value, results_value); } @@ -297,33 +302,18 @@ void BrowsingHistoryHandler::RemoveComplete() { dom_ui_->CallJavascriptFunction(L"deleteComplete"); } -void BrowsingHistoryHandler::ExtractSearchHistoryArguments(const Value* value, - int* month, - string16* query) { - *month = 0; - - if (value && value->GetType() == Value::TYPE_LIST) { - const ListValue* list_value = static_cast<const ListValue*>(value); - Value* list_member; - - // Get search string. - if (list_value->Get(0, &list_member) && - list_member->GetType() == Value::TYPE_STRING) { - const StringValue* string_value = - static_cast<const StringValue*>(list_member); - string_value->GetAsUTF16(query); - } +void BrowsingHistoryHandler::ExtractSearchHistoryArguments( + const ListValue* args, + int* month, + string16* query) { + CHECK(args->GetSize() == 2); + query->clear(); + CHECK(args->GetString(0, query)); - // Get search month. - if (list_value->Get(1, &list_member) && - list_member->GetType() == Value::TYPE_STRING) { - const StringValue* string_value = - static_cast<const StringValue*>(list_member); - string16 string16_value; - string_value->GetAsUTF16(&string16_value); - *month = StringToInt(string16_value); - } - } + string16 string16_value; + CHECK(args->GetString(1, &string16_value)); + *month = 0; + base::StringToInt(string16_value, month); } history::QueryOptions BrowsingHistoryHandler::CreateMonthQueryOptions( |