summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authormarkusheintz@chromium.org <markusheintz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-04 09:19:31 +0000
committermarkusheintz@chromium.org <markusheintz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-04 09:19:31 +0000
commit7be99eb3e112054d4722e4a7f483c1784534e189 (patch)
tree62dbc704f0fccb78333db45f35b014dda2d1d3d8 /chrome
parent17eb63f3488ff0815fc5e0cc5586dde88c544219 (diff)
downloadchromium_src-7be99eb3e112054d4722e4a7f483c1784534e189.zip
chromium_src-7be99eb3e112054d4722e4a7f483c1784534e189.tar.gz
chromium_src-7be99eb3e112054d4722e4a7f483c1784534e189.tar.bz2
Display an info banner on the clear browsing data dialog if the browsing data was cleared within the last 24h. The displayed info banner suggest to use the incognito mode instead.
BUG=164600 Review URL: https://chromiumcodereview.appspot.com/12092089 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180372 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/app/generated_resources.grd5
-rw-r--r--chrome/browser/resources/options/clear_browser_data_overlay.css10
-rw-r--r--chrome/browser/resources/options/clear_browser_data_overlay.html3
-rw-r--r--chrome/browser/resources/options/clear_browser_data_overlay.js5
-rw-r--r--chrome/browser/ui/browser_ui_prefs.cc3
-rw-r--r--chrome/browser/ui/webui/options/clear_browser_data_handler.cc33
-rw-r--r--chrome/browser/ui/webui/options/clear_browser_data_handler.h3
-rw-r--r--chrome/common/pref_names.cc2
-rw-r--r--chrome/common/pref_names.h1
9 files changed, 64 insertions, 1 deletions
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index fef4214..36cde3e 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -413,7 +413,7 @@ are declared in build/common.gypi.
<message name="IDS_HISTORY_DELETE_PRIOR_VISITS_WARNING" desc="Warning shown before deleting">
Are you sure you want to delete these pages from your history?
-Psst! Incognito mode <ph name="SHORTCUT_KEY">$1<ex>(Ctrl+Shift+N)</ex></ph> may come in useful next time.
+Psst! Incognito mode <ph name="SHORTCUT_KEY">$1<ex>(Ctrl+Shift+N)</ex></ph> may come in handy next time.
</message>
<!-- History HTML UI -->
@@ -8117,6 +8117,9 @@ The following plug-in is unresponsive: <ph name="PLUGIN_NAME">$1
<message name="IDS_CLEAR_BROWSING_DATA_TITLE" desc="Dialog title">
Clear browsing data
</message>
+ <message name="IDS_CLEAR_BROWSING_DATA_INFO_BAR_TEXT" desc="The text of the infobar that is displayed in the clear browsing data dialog. This infobar remindes users that they can use the incognito mode instead of clearing their browsing data.">
+ Psst! Incognito mode (<ph name="INCOGNITO_MODE_SHORTCUT">$1<ex>Shift+Ctrl+N</ex></ph>) may come in handy next time.
+ </message>
<message name="IDS_CLEAR_BROWSING_DATA_LABEL" desc="Label at the top of the client area of the dialog, preceding the period combo box">
Obliterate the following items from:
</message>
diff --git a/chrome/browser/resources/options/clear_browser_data_overlay.css b/chrome/browser/resources/options/clear_browser_data_overlay.css
index 0c70109..734f9f7 100644
--- a/chrome/browser/resources/options/clear_browser_data_overlay.css
+++ b/chrome/browser/resources/options/clear_browser_data_overlay.css
@@ -20,3 +20,13 @@
#flash-storage-settings {
padding-top: 5px;
}
+
+#info-banner {
+ background-color: rgb(249, 237, 184);
+ border: solid 1px rgb(237, 201, 103);
+ border-radius: 2px;
+ font-weight: bold;
+ margin: 0 20px 11px 17px;
+ padding: 6px 8px;
+}
+
diff --git a/chrome/browser/resources/options/clear_browser_data_overlay.html b/chrome/browser/resources/options/clear_browser_data_overlay.html
index 7dcc67d..f021383 100644
--- a/chrome/browser/resources/options/clear_browser_data_overlay.html
+++ b/chrome/browser/resources/options/clear_browser_data_overlay.html
@@ -1,6 +1,9 @@
<div id="clear-browser-data-overlay" class="page" hidden>
<div class="close-button"></div>
<h1 i18n-content="clearBrowserDataOverlay"></h1>
+ <div id="info-banner" hidden>
+ <span i18n-content="clearBrowserDataInfoBar"></span>
+ </div>
<div id="cbd-content-area" class="content-area">
<span i18n-content="clearBrowserDataLabel"></span>
<select id="clear-browser-data-time-period"
diff --git a/chrome/browser/resources/options/clear_browser_data_overlay.js b/chrome/browser/resources/options/clear_browser_data_overlay.js
index fa7aadd..5c5f15d 100644
--- a/chrome/browser/resources/options/clear_browser_data_overlay.js
+++ b/chrome/browser/resources/options/clear_browser_data_overlay.js
@@ -95,6 +95,11 @@ cr.define('options', function() {
ClearBrowserDataOverlay.getInstance().updateCommitButtonState_();
};
+ ClearBrowserDataOverlay.setBannerVisibility = function(args) {
+ var visible = args[0];
+ $('info-banner').hidden = !visible;
+ };
+
ClearBrowserDataOverlay.doneClearing = function() {
// The delay gives the user some feedback that the clearing
// actually worked. Otherwise the dialog just vanishes instantly in most
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
index 6e945e4..4091e6e 100644
--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
@@ -68,6 +68,9 @@ void RegisterBrowserUserPrefs(PrefServiceSyncable* prefs) {
prefs->RegisterIntegerPref(prefs::kDeleteTimePeriod,
0,
PrefServiceSyncable::SYNCABLE_PREF);
+ prefs->RegisterInt64Pref(prefs::kLastClearBrowsingDataTime,
+ 0,
+ PrefServiceSyncable::UNSYNCABLE_PREF);
prefs->RegisterBooleanPref(prefs::kCheckDefaultBrowser,
true,
PrefServiceSyncable::UNSYNCABLE_PREF);
diff --git a/chrome/browser/ui/webui/options/clear_browser_data_handler.cc b/chrome/browser/ui/webui/options/clear_browser_data_handler.cc
index 86f658b..eb793c7 100644
--- a/chrome/browser/ui/webui/options/clear_browser_data_handler.cc
+++ b/chrome/browser/ui/webui/options/clear_browser_data_handler.cc
@@ -21,6 +21,7 @@
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
#include "grit/locale_settings.h"
+#include "ui/base/accelerators/accelerator.h"
#include "ui/base/l10n/l10n_util.h"
namespace {
@@ -46,6 +47,25 @@ void ClearBrowserDataHandler::InitializeHandler() {
Profile::FromWebUI(web_ui())->GetPrefs());
}
+void ClearBrowserDataHandler::InitializePage() {
+ UpdateInfoBannerVisibility();
+}
+
+void ClearBrowserDataHandler::UpdateInfoBannerVisibility() {
+ Profile* profile = Profile::FromWebUI(web_ui());
+ base::Time lastClearBrowsingDataTime = base::Time::FromInternalValue(
+ profile->GetPrefs()->GetInt64(prefs::kLastClearBrowsingDataTime));
+
+ const int64 kHoursPerDay = 24;
+ bool visible = (base::Time::Now() - lastClearBrowsingDataTime) <=
+ base::TimeDelta::FromHours(kHoursPerDay);
+
+ ListValue args;
+ args.Append(Value::CreateBooleanValue(visible));
+ web_ui()->CallJavascriptFunction(
+ "ClearBrowserDataOverlay.setBannerVisibility", args);
+}
+
void ClearBrowserDataHandler::GetLocalizedValues(
DictionaryValue* localized_strings) {
DCHECK(localized_strings);
@@ -74,6 +94,13 @@ void ClearBrowserDataHandler::GetLocalizedValues(
google_util::StringAppendGoogleLocaleParam(
kClearBrowsingDataLearnMoreUrl));
+ ui::Accelerator acc(ui::VKEY_N, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN);
+ localized_strings->SetString(
+ "clearBrowserDataInfoBar",
+ l10n_util::GetStringFUTF16(
+ IDS_CLEAR_BROWSING_DATA_INFO_BAR_TEXT,
+ acc.GetShortcutText()));
+
ListValue* time_list = new ListValue;
for (int i = 0; i < 5; i++) {
string16 label_string;
@@ -152,6 +179,12 @@ void ClearBrowserDataHandler::HandleClearBrowserData(const ListValue* value) {
static_cast<BrowsingDataRemover::TimePeriod>(period_selected));
remover_->AddObserver(this);
remover_->Remove(remove_mask, origin_mask);
+
+ // Store the clear browsing data time. Next time the clear browsing data
+ // dialog is open, this time is used to decide whether to display an info
+ // banner or not.
+ prefs->SetInt64(prefs::kLastClearBrowsingDataTime,
+ base::Time::Now().ToInternalValue());
}
void ClearBrowserDataHandler::OnBrowsingDataRemoverDone() {
diff --git a/chrome/browser/ui/webui/options/clear_browser_data_handler.h b/chrome/browser/ui/webui/options/clear_browser_data_handler.h
index d8da075..aa2185f 100644
--- a/chrome/browser/ui/webui/options/clear_browser_data_handler.h
+++ b/chrome/browser/ui/webui/options/clear_browser_data_handler.h
@@ -21,10 +21,13 @@ class ClearBrowserDataHandler : public OptionsPageUIHandler,
// OptionsPageUIHandler implementation.
virtual void GetLocalizedValues(DictionaryValue* localized_strings) OVERRIDE;
virtual void InitializeHandler() OVERRIDE;
+ virtual void InitializePage() OVERRIDE;
// WebUIMessageHandler implementation.
virtual void RegisterMessages() OVERRIDE;
+ void UpdateInfoBannerVisibility();
+
private:
// Javascript callback to start clearing data.
void HandleClearBrowserData(const ListValue* value);
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
index d1b73ae..02540da 100644
--- a/chrome/common/pref_names.cc
+++ b/chrome/common/pref_names.cc
@@ -849,6 +849,8 @@ const char kDeleteHostedAppsData[] = "browser.clear_data.hosted_apps_data";
const char kDeauthorizeContentLicenses[] =
"browser.clear_data.content_licenses";
const char kDeleteTimePeriod[] = "browser.clear_data.time_period";
+const char kLastClearBrowsingDataTime[] =
+ "browser.last_clear_browsing_data_time";
// Boolean pref to define the default values for using spellchecker.
const char kEnableContinuousSpellcheck[] = "browser.enable_spellchecking";
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
index 4199e23..6aaf621 100644
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -312,6 +312,7 @@ extern const char kEnableAutoSpellCorrect[];
extern const char kSavingBrowserHistoryDisabled[];
extern const char kForceSafeSearch[];
extern const char kDeleteTimePeriod[];
+extern const char kLastClearBrowsingDataTime[];
#if defined(TOOLKIT_GTK)
extern const char kUsesSystemTheme[];
#endif