diff options
author | csilv@chromium.org <csilv@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-23 01:48:19 +0000 |
---|---|---|
committer | csilv@chromium.org <csilv@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-23 01:48:19 +0000 |
commit | db108ddfbd5a856ed095cbef788c8c4f4628e607 (patch) | |
tree | 914f44a3de398cdb071ce81b343ef2f463de1b50 /chrome/browser/dom_ui | |
parent | b8c1eb454dc4f246c64a6b1b5b472af102e88103 (diff) | |
download | chromium_src-db108ddfbd5a856ed095cbef788c8c4f4628e607.zip chromium_src-db108ddfbd5a856ed095cbef788c8c4f4628e607.tar.gz chromium_src-db108ddfbd5a856ed095cbef788c8c4f4628e607.tar.bz2 |
Implement the 'Clear Browser Data' dom-ui overlay.
BUG=49037
TEST=Exercise the Clear Browser Data dialog with --enable-tabbed-options.
Review URL: http://codereview.chromium.org/2856053
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53429 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/dom_ui')
-rw-r--r-- | chrome/browser/dom_ui/clear_browser_data_handler.cc | 101 | ||||
-rw-r--r-- | chrome/browser/dom_ui/clear_browser_data_handler.h | 18 | ||||
-rw-r--r-- | chrome/browser/dom_ui/core_options_handler.cc | 21 |
3 files changed, 134 insertions, 6 deletions
diff --git a/chrome/browser/dom_ui/clear_browser_data_handler.cc b/chrome/browser/dom_ui/clear_browser_data_handler.cc index b8eeb55..861a78c 100644 --- a/chrome/browser/dom_ui/clear_browser_data_handler.cc +++ b/chrome/browser/dom_ui/clear_browser_data_handler.cc @@ -7,8 +7,12 @@ #include "app/l10n_util.h" #include "base/basictypes.h" #include "base/values.h" +#include "chrome/browser/pref_service.h" +#include "chrome/browser/profile.h" +#include "chrome/common/pref_names.h" #include "grit/chromium_strings.h" #include "grit/generated_resources.h" +#include "grit/locale_settings.h" ClearBrowserDataHandler::ClearBrowserDataHandler() { } @@ -21,5 +25,102 @@ void ClearBrowserDataHandler::GetLocalizedValues( DCHECK(localized_strings); localized_strings->SetString(L"clearBrowsingDataTitle", l10n_util::GetString(IDS_CLEAR_BROWSING_DATA_TITLE)); + localized_strings->SetString(L"clearBrowsingDataLabel", + l10n_util::GetString(IDS_CLEAR_BROWSING_DATA_LABEL)); + localized_strings->SetString(L"clearBrowsingDataTimeLabel", + l10n_util::GetString(IDS_CLEAR_BROWSING_DATA_TIME_LABEL)); + localized_strings->SetString(L"deleteBrowsingHistoryCheckbox", + l10n_util::GetString(IDS_DEL_BROWSING_HISTORY_CHKBOX)); + localized_strings->SetString(L"deleteDownloadHistoryCheckbox", + l10n_util::GetString(IDS_DEL_DOWNLOAD_HISTORY_CHKBOX)); + localized_strings->SetString(L"deleteCacheCheckbox", + l10n_util::GetString(IDS_DEL_CACHE_CHKBOX)); + localized_strings->SetString(L"deleteCookiesCheckbox", + l10n_util::GetString(IDS_DEL_COOKIES_CHKBOX)); + localized_strings->SetString(L"deletePasswordsCheckbox", + l10n_util::GetString(IDS_DEL_PASSWORDS_CHKBOX)); + localized_strings->SetString(L"deleteFormDataCheckbox", + l10n_util::GetString(IDS_DEL_FORM_DATA_CHKBOX)); + localized_strings->SetString(L"clearBrowsingDataCommit", + l10n_util::GetString(IDS_CLEAR_BROWSING_DATA_COMMIT)); + localized_strings->SetString(L"flashStorageSettings", + l10n_util::GetString(IDS_FLASH_STORAGE_SETTINGS)); + localized_strings->SetString(L"flash_storage_url", + l10n_util::GetString(IDS_FLASH_STORAGE_URL)); + localized_strings->SetString(L"clearDataDeleting", + l10n_util::GetString(IDS_CLEAR_DATA_DELETING)); + + ListValue* time_list = new ListValue; + for (int i = 0; i < 5; i++) { + std::wstring label_string; + switch (i) { + case 0: + label_string = l10n_util::GetString(IDS_CLEAR_DATA_HOUR); + break; + case 1: + label_string = l10n_util::GetString(IDS_CLEAR_DATA_DAY); + break; + case 2: + label_string = l10n_util::GetString(IDS_CLEAR_DATA_WEEK); + break; + case 3: + label_string = l10n_util::GetString(IDS_CLEAR_DATA_4WEEKS); + break; + case 4: + label_string = l10n_util::GetString(IDS_CLEAR_DATA_EVERYTHING); + break; + } + ListValue* option = new ListValue(); + option->Append(Value::CreateIntegerValue(i)); + option->Append(Value::CreateStringValue(label_string)); + time_list->Append(option); + } + localized_strings->Set(L"clearBrowsingDataTimeList", time_list); +} + +void ClearBrowserDataHandler::RegisterMessages() { + // Setup handlers specific to this panel. + DCHECK(dom_ui_); + dom_ui_->RegisterMessageCallback("performClearBrowserData", + NewCallback(this, &ClearBrowserDataHandler::HandleClearBrowserData)); +} + +void ClearBrowserDataHandler::HandleClearBrowserData(const Value* value) { + Profile *profile = dom_ui_->GetProfile(); + PrefService *prefs = profile->GetPrefs(); + + int remove_mask = 0; + if (prefs->GetBoolean(prefs::kDeleteBrowsingHistory)) + remove_mask |= BrowsingDataRemover::REMOVE_HISTORY; + if (prefs->GetBoolean(prefs::kDeleteDownloadHistory)) + remove_mask |= BrowsingDataRemover::REMOVE_DOWNLOADS; + if (prefs->GetBoolean(prefs::kDeleteCache)) + remove_mask |= BrowsingDataRemover::REMOVE_CACHE; + if (prefs->GetBoolean(prefs::kDeleteCookies)) + remove_mask |= BrowsingDataRemover::REMOVE_COOKIES; + if (prefs->GetBoolean(prefs::kDeletePasswords)) + remove_mask |= BrowsingDataRemover::REMOVE_PASSWORDS; + if (prefs->GetBoolean(prefs::kDeleteFormData)) + remove_mask |= BrowsingDataRemover::REMOVE_FORM_DATA; + + int period_selected = prefs->GetInteger(prefs::kDeleteTimePeriod); + + FundamentalValue state(true); + dom_ui_->CallJavascriptFunction(L"clearBrowserDataSetClearingState", state); + + // BrowsingDataRemover deletes itself when done. + remover_ = new BrowsingDataRemover(profile, + static_cast<BrowsingDataRemover::TimePeriod>(period_selected), + base::Time()); + remover_->AddObserver(this); + remover_->Remove(remove_mask); +} + +void ClearBrowserDataHandler::OnBrowsingDataRemoverDone() { + // No need to remove ourselves as an observer as BrowsingDataRemover deletes + // itself after we return. + remover_ = NULL; + DCHECK(dom_ui_); + dom_ui_->CallJavascriptFunction(L"clearBrowserDataDismiss"); } diff --git a/chrome/browser/dom_ui/clear_browser_data_handler.h b/chrome/browser/dom_ui/clear_browser_data_handler.h index 138c5ec..c36135d 100644 --- a/chrome/browser/dom_ui/clear_browser_data_handler.h +++ b/chrome/browser/dom_ui/clear_browser_data_handler.h @@ -6,9 +6,11 @@ #define CHROME_BROWSER_DOM_UI_CLEAR_BROWSER_DATA_HANDLER_H_ #include "chrome/browser/dom_ui/options_ui.h" +#include "chrome/browser/browsing_data_remover.h" -// Chrome personal options page UI handler. -class ClearBrowserDataHandler : public OptionsPageUIHandler { +// Clear browser data handler page UI handler. +class ClearBrowserDataHandler : public OptionsPageUIHandler, + public BrowsingDataRemover::Observer { public: ClearBrowserDataHandler(); virtual ~ClearBrowserDataHandler(); @@ -16,7 +18,19 @@ class ClearBrowserDataHandler : public OptionsPageUIHandler { // OptionsUIHandler implementation. virtual void GetLocalizedValues(DictionaryValue* localized_strings); + // DOMMessageHandler implementation. + virtual void RegisterMessages(); + private: + void HandleClearBrowserData(const Value* value); + + // Callback from BrowsingDataRemover. Closes the dialog. + virtual void OnBrowsingDataRemoverDone(); + + // If non-null it means removal is in progress. BrowsingDataRemover takes care + // of deleting itself when done. + BrowsingDataRemover* remover_; + DISALLOW_COPY_AND_ASSIGN(ClearBrowserDataHandler); }; diff --git a/chrome/browser/dom_ui/core_options_handler.cc b/chrome/browser/dom_ui/core_options_handler.cc index f37ddc9..d4f2620 100644 --- a/chrome/browser/dom_ui/core_options_handler.cc +++ b/chrome/browser/dom_ui/core_options_handler.cc @@ -60,6 +60,23 @@ void CoreOptionsHandler::GetLocalizedValues( l10n_util::GetString( IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_TITLE)); #endif + + localized_strings->SetString(L"ok", + l10n_util::GetString(IDS_OK)); + localized_strings->SetString(L"cancel", + l10n_util::GetString(IDS_CANCEL)); + localized_strings->SetString(L"delete", + l10n_util::GetString(IDS_DELETE)); + localized_strings->SetString(L"edit", + l10n_util::GetString(IDS_EDIT)); + localized_strings->SetString(L"learnMore", + l10n_util::GetString(IDS_LEARN_MORE)); + localized_strings->SetString(L"abort", + l10n_util::GetString(IDS_ABORT)); + localized_strings->SetString(L"close", + l10n_util::GetString(IDS_CLOSE)); + localized_strings->SetString(L"done", + l10n_util::GetString(IDS_DONE)); } void CoreOptionsHandler::Observe(NotificationType type, @@ -142,8 +159,6 @@ void CoreOptionsHandler::HandleFetchPrefs(const Value* value) { if (param_values->GetSize() < kMinFetchPrefsParamCount) return; - size_t idx = param_values->GetSize(); - LOG(INFO) << "param_values->GetSize() = " << idx; // Get callback JS function name. Value* callback; if (!param_values->Get(0, &callback) || !callback->IsType(Value::TYPE_STRING)) @@ -232,8 +247,6 @@ void CoreOptionsHandler::HandleSetPref(const Value* value, if (!value || !value->IsType(Value::TYPE_LIST)) return; const ListValue* param_values = static_cast<const ListValue*>(value); - size_t size = param_values->GetSize(); - LOG(INFO) << "Array size = " << size; if (param_values->GetSize() != 2) return; |