summaryrefslogtreecommitdiffstats
path: root/chrome/browser/dom_ui
diff options
context:
space:
mode:
authorcsilv@chromium.org <csilv@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-23 01:48:19 +0000
committercsilv@chromium.org <csilv@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-23 01:48:19 +0000
commitdb108ddfbd5a856ed095cbef788c8c4f4628e607 (patch)
tree914f44a3de398cdb071ce81b343ef2f463de1b50 /chrome/browser/dom_ui
parentb8c1eb454dc4f246c64a6b1b5b472af102e88103 (diff)
downloadchromium_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.cc101
-rw-r--r--chrome/browser/dom_ui/clear_browser_data_handler.h18
-rw-r--r--chrome/browser/dom_ui/core_options_handler.cc21
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;