summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-15 20:13:46 +0000
committeravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-15 20:13:46 +0000
commitaac60370525207a907d97239b78dee3ae8f95f69 (patch)
tree54523d3c1d5e323b11155eb4d748b128ead31404
parent31cc1c02c0a93df076ebbecef923e3a63ac34341 (diff)
downloadchromium_src-aac60370525207a907d97239b78dee3ae8f95f69.zip
chromium_src-aac60370525207a907d97239b78dee3ae8f95f69.tar.gz
chromium_src-aac60370525207a907d97239b78dee3ae8f95f69.tar.bz2
Revert 62635 - removed dashboard link from options ui, clear no longer behind switch
BUG=59095 TEST=See ui in options tab and clear other data tab Review URL: http://codereview.chromium.org/3758004 TBR=raz@chromium.org Review URL: http://codereview.chromium.org/3811008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62779 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/cocoa/clear_browsing_data_controller.mm3
-rw-r--r--chrome/browser/gtk/clear_browsing_data_dialog_gtk.cc83
-rw-r--r--chrome/browser/gtk/options/content_page_gtk.cc21
-rw-r--r--chrome/browser/gtk/options/content_page_gtk.h2
-rw-r--r--chrome/browser/views/clear_browsing_data_view.cc11
-rw-r--r--chrome/browser/views/clear_browsing_data_view.h6
-rw-r--r--chrome/browser/views/clear_server_data.cc16
-rw-r--r--chrome/browser/views/options/content_page_view.cc12
-rw-r--r--chrome/browser/views/options/content_page_view.h1
-rw-r--r--chrome/common/chrome_switches.cc4
-rw-r--r--chrome/common/chrome_switches.h1
11 files changed, 113 insertions, 47 deletions
diff --git a/chrome/browser/cocoa/clear_browsing_data_controller.mm b/chrome/browser/cocoa/clear_browsing_data_controller.mm
index 277806e..392d52e 100644
--- a/chrome/browser/cocoa/clear_browsing_data_controller.mm
+++ b/chrome/browser/cocoa/clear_browsing_data_controller.mm
@@ -398,7 +398,8 @@ class ClearBrowsingObserver : public BrowsingDataRemover::Observer,
}
- (BOOL)isSyncVisible {
- return YES;
+ return CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableClearServerData);
}
- (BOOL)isSyncEnabled {
diff --git a/chrome/browser/gtk/clear_browsing_data_dialog_gtk.cc b/chrome/browser/gtk/clear_browsing_data_dialog_gtk.cc
index 77ee669..3ae5d8d 100644
--- a/chrome/browser/gtk/clear_browsing_data_dialog_gtk.cc
+++ b/chrome/browser/gtk/clear_browsing_data_dialog_gtk.cc
@@ -230,39 +230,46 @@ GtkWidget* ClearBrowsingDataDialogGtk::BuildOtherDataPage() {
l10n_util::GetStringUTF8(IDS_CLEAR_DATA_ADOBE_FLASH_TITLE),
adobe_flash_vbox, false);
- GtkWidget* clear_sync_vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing);
- GtkWidget* description = gtk_label_new(l10n_util::GetStringUTF8(
- IDS_CLEAR_DATA_CLEAR_SERVER_DATA_DESCRIPTION).c_str());
- gtk_misc_set_alignment(GTK_MISC(description), 0, 0);
- gtk_label_set_line_wrap(GTK_LABEL(description), TRUE);
- gtk_box_pack_start(GTK_BOX(clear_sync_vbox), description, FALSE, FALSE, 0);
-
- GtkWidget* button_hbox = gtk_hbox_new(FALSE, gtk_util::kControlSpacing);
-
- clear_server_data_button_ = gtk_button_new_with_label(
- l10n_util::GetStringUTF8(IDS_CLEAR_DATA_CLEAR_BUTTON).c_str());
- g_signal_connect(clear_server_data_button_, "clicked",
- G_CALLBACK(OnClearSyncDataClickThunk), this);
- gtk_box_pack_start(GTK_BOX(button_hbox), clear_server_data_button_,
- FALSE, FALSE, 0);
-
- clear_server_status_label_ = gtk_label_new(NULL);
- gtk_box_pack_start(GTK_BOX(button_hbox), clear_server_status_label_,
- FALSE, FALSE, 0);
-
- gtk_box_pack_start(GTK_BOX(clear_sync_vbox), button_hbox,
- FALSE, FALSE, 0);
-
- GtkWidget* dashboard_link = AddDescriptionAndLink(
- clear_sync_vbox,
- IDS_CLEAR_DASHBOARD_DESCRIPTION,
- IDS_SYNC_PRIVACY_DASHBOARD_LINK_LABEL);
- g_signal_connect(G_OBJECT(dashboard_link), "clicked",
- G_CALLBACK(OnPrivacyLinkClickedThunk), this);
-
- options_builder->AddOptionGroup(
- l10n_util::GetStringUTF8(IDS_CLEAR_DATA_CHROME_SYNC_TITLE),
- clear_sync_vbox, false);
+ bool allow_clear_server_data_ui =
+ CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableClearServerData);
+
+ // Only build this portion if behind a flag.
+ if (allow_clear_server_data_ui) {
+ GtkWidget* clear_sync_vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing);
+ GtkWidget* description = gtk_label_new(l10n_util::GetStringUTF8(
+ IDS_CLEAR_DATA_CLEAR_SERVER_DATA_DESCRIPTION).c_str());
+ gtk_misc_set_alignment(GTK_MISC(description), 0, 0);
+ gtk_label_set_line_wrap(GTK_LABEL(description), TRUE);
+ gtk_box_pack_start(GTK_BOX(clear_sync_vbox), description, FALSE, FALSE, 0);
+
+ GtkWidget* button_hbox = gtk_hbox_new(FALSE, gtk_util::kControlSpacing);
+
+ clear_server_data_button_ = gtk_button_new_with_label(
+ l10n_util::GetStringUTF8(IDS_CLEAR_DATA_CLEAR_BUTTON).c_str());
+ g_signal_connect(clear_server_data_button_, "clicked",
+ G_CALLBACK(OnClearSyncDataClickThunk), this);
+ gtk_box_pack_start(GTK_BOX(button_hbox), clear_server_data_button_,
+ FALSE, FALSE, 0);
+
+ clear_server_status_label_ = gtk_label_new(NULL);
+ gtk_box_pack_start(GTK_BOX(button_hbox), clear_server_status_label_,
+ FALSE, FALSE, 0);
+
+ gtk_box_pack_start(GTK_BOX(clear_sync_vbox), button_hbox,
+ FALSE, FALSE, 0);
+
+ GtkWidget* dashboard_link = AddDescriptionAndLink(
+ clear_sync_vbox,
+ IDS_CLEAR_DASHBOARD_DESCRIPTION,
+ IDS_SYNC_PRIVACY_DASHBOARD_LINK_LABEL);
+ g_signal_connect(G_OBJECT(dashboard_link), "clicked",
+ G_CALLBACK(OnPrivacyLinkClickedThunk), this);
+
+ options_builder->AddOptionGroup(
+ l10n_util::GetStringUTF8(IDS_CLEAR_DATA_CHROME_SYNC_TITLE),
+ clear_sync_vbox, false);
+ }
UpdateClearButtonState(false);
@@ -447,8 +454,10 @@ int ClearBrowsingDataDialogGtk::GetCheckedItems() {
void ClearBrowsingDataDialogGtk::UpdateClearButtonState(
bool delete_in_progress) {
- gtk_widget_set_sensitive(clear_server_data_button_,
- sync_service_ != NULL &&
- sync_service_->HasSyncSetupCompleted() &&
- !delete_in_progress);
+ if (clear_server_data_button_) {
+ gtk_widget_set_sensitive(clear_server_data_button_,
+ sync_service_ != NULL &&
+ sync_service_->HasSyncSetupCompleted() &&
+ !delete_in_progress);
+ }
}
diff --git a/chrome/browser/gtk/options/content_page_gtk.cc b/chrome/browser/gtk/options/content_page_gtk.cc
index 3e33805..8aff196 100644
--- a/chrome/browser/gtk/options/content_page_gtk.cc
+++ b/chrome/browser/gtk/options/content_page_gtk.cc
@@ -78,6 +78,7 @@ ContentPageGtk::ContentPageGtk(Profile* profile)
#endif
sync_start_stop_button_(NULL),
sync_customize_button_(NULL),
+ privacy_dashboard_link_(NULL),
initializing_(true),
sync_service_(NULL),
managed_prefs_banner_(profile->GetPrefs(), OPTIONS_PAGE_CONTENT) {
@@ -372,6 +373,23 @@ GtkWidget* ContentPageGtk::InitSyncGroup() {
gtk_box_pack_start(GTK_BOX(button_hbox), sync_customize_button_, FALSE,
FALSE, 0);
+ // Add the privacy dashboard link.
+ GtkWidget* dashboard_link_hbox =
+ gtk_hbox_new(FALSE, gtk_util::kLabelSpacing);
+ GtkWidget* dashboard_link_background = gtk_event_box_new();
+ std::string dashboard_link_label =
+ l10n_util::GetStringUTF8(IDS_SYNC_PRIVACY_DASHBOARD_LINK_LABEL);
+ privacy_dashboard_link_ =
+ gtk_chrome_link_button_new(dashboard_link_label.c_str());
+ g_signal_connect(privacy_dashboard_link_, "clicked",
+ G_CALLBACK(OnPrivacyDashboardLinkClickedThunk), this);
+ gtk_box_pack_start(GTK_BOX(vbox), dashboard_link_hbox, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(dashboard_link_hbox),
+ dashboard_link_background, FALSE, FALSE, 0);
+ gtk_container_add(GTK_CONTAINER(dashboard_link_background),
+ privacy_dashboard_link_);
+
+
return vbox;
}
@@ -598,3 +616,6 @@ void ContentPageGtk::OnStopSyncDialogResponse(GtkWidget* widget, int response) {
gtk_widget_destroy(widget);
}
+void ContentPageGtk::OnPrivacyDashboardLinkClicked(GtkWidget* widget) {
+ BrowserList::GetLastActive()->OpenPrivacyDashboardTabAndActivate();
+}
diff --git a/chrome/browser/gtk/options/content_page_gtk.h b/chrome/browser/gtk/options/content_page_gtk.h
index 43878c6..286e28c 100644
--- a/chrome/browser/gtk/options/content_page_gtk.h
+++ b/chrome/browser/gtk/options/content_page_gtk.h
@@ -63,6 +63,7 @@ class ContentPageGtk : public OptionsPageBase,
CHROMEGTK_CALLBACK_0(ContentPageGtk, void, OnSyncCustomizeButtonClicked);
CHROMEGTK_CALLBACK_0(ContentPageGtk, void, OnSyncActionLinkClicked);
CHROMEGTK_CALLBACK_1(ContentPageGtk, void, OnStopSyncDialogResponse, int);
+ CHROMEGTK_CALLBACK_0(ContentPageGtk, void, OnPrivacyDashboardLinkClicked);
// Widgets for the Password saving group.
GtkWidget* passwords_asktosave_radio_;
@@ -87,6 +88,7 @@ class ContentPageGtk : public OptionsPageBase,
GtkWidget* sync_action_link_;
GtkWidget* sync_start_stop_button_;
GtkWidget* sync_customize_button_;
+ GtkWidget* privacy_dashboard_link_;
// The parent GtkTable widget
GtkWidget* page_;
diff --git a/chrome/browser/views/clear_browsing_data_view.cc b/chrome/browser/views/clear_browsing_data_view.cc
index d5f16e2..d6f7ab5 100644
--- a/chrome/browser/views/clear_browsing_data_view.cc
+++ b/chrome/browser/views/clear_browsing_data_view.cc
@@ -220,7 +220,6 @@ void ClearBrowsingDataView2::InitControlLayout() {
views::GridLayout::CENTER);
layout->AddPaddingRow(0, kUnrelatedControlLargeVerticalSpacing);
- layout->AddPaddingRow(0, kUnrelatedControlLargeVerticalSpacing);
// Left-align the throbber
layout->StartRow(0, two_column_set_id);
@@ -229,7 +228,7 @@ void ClearBrowsingDataView2::InitControlLayout() {
// Right-align the clear button
layout->AddView(clear_browsing_data_button_, 1, 1,
- GridLayout::TRAILING, GridLayout::TRAILING);
+ GridLayout::TRAILING, GridLayout::CENTER);
}
////////////////////////////////////////////////////////////////////////////////
@@ -287,6 +286,14 @@ void ClearBrowsingDataView2::ButtonPressed(
UpdateControlEnabledState();
}
+void ClearBrowsingDataView2::LinkActivated(views::Link* source,
+ int event_flags) {
+ Browser* browser = Browser::Create(profile_);
+ browser->OpenURL(GURL(l10n_util::GetStringUTF8(IDS_FLASH_STORAGE_URL)),
+ GURL(), NEW_FOREGROUND_TAB, PageTransition::LINK);
+ browser->window()->Show();
+}
+
////////////////////////////////////////////////////////////////////////////////
// ClearBrowsingDataView2, private:
diff --git a/chrome/browser/views/clear_browsing_data_view.h b/chrome/browser/views/clear_browsing_data_view.h
index 806be23..92133b3 100644
--- a/chrome/browser/views/clear_browsing_data_view.h
+++ b/chrome/browser/views/clear_browsing_data_view.h
@@ -40,7 +40,8 @@ class ClearBrowsingDataView2 : public views::View,
public views::ButtonListener,
public ComboboxModel,
public views::Combobox::Listener,
- public BrowsingDataRemover::Observer {
+ public BrowsingDataRemover::Observer,
+ public views::LinkController {
public:
ClearBrowsingDataView2(Profile* profile, ClearDataView* clear_data_view);
@@ -60,6 +61,9 @@ class ClearBrowsingDataView2 : public views::View,
// Overridden from views::ButtonListener:
virtual void ButtonPressed(views::Button* sender, const views::Event& event);
+ // Overriden from views::LinkController:
+ virtual void LinkActivated(views::Link* source, int event_flags);
+
// Enable/disable clearing from this tab
void SetAllowClear(bool allow);
diff --git a/chrome/browser/views/clear_server_data.cc b/chrome/browser/views/clear_server_data.cc
index dc4626c..8252455 100644
--- a/chrome/browser/views/clear_server_data.cc
+++ b/chrome/browser/views/clear_server_data.cc
@@ -10,7 +10,6 @@
#include "base/string16.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/browser.h"
-#include "chrome/browser/browser_list.h"
#include "chrome/browser/browser_window.h"
#include "chrome/browser/prefs/pref_service.h"
#include "chrome/browser/profile.h"
@@ -168,15 +167,20 @@ void ClearServerDataView::InitControlLayout() {
}
void ClearServerDataView::InitControlVisibility() {
+ bool allow_clear_server_data_ui =
+ CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableClearServerData);
+
// Hide progress indicators
throbber_->SetVisible(false);
status_label_->SetVisible(false);
- chrome_sync_title_label_->SetVisible(true);
- chrome_sync_description_label_->SetVisible(true);
- clear_server_data_button_->SetVisible(true);
- dashboard_label_->SetVisible(true);
- dashboard_link_->SetVisible(true);
+ // Only show the sync portion if behind the flag
+ chrome_sync_title_label_->SetVisible(allow_clear_server_data_ui);
+ chrome_sync_description_label_->SetVisible(allow_clear_server_data_ui);
+ clear_server_data_button_->SetVisible(allow_clear_server_data_ui);
+ dashboard_label_->SetVisible(allow_clear_server_data_ui);
+ dashboard_link_->SetVisible(allow_clear_server_data_ui);
// Enable our clear button, set false for delete_in_progress
UpdateClearButtonEnabledState(false);
diff --git a/chrome/browser/views/options/content_page_view.cc b/chrome/browser/views/options/content_page_view.cc
index 774b0fe..541a362 100644
--- a/chrome/browser/views/options/content_page_view.cc
+++ b/chrome/browser/views/options/content_page_view.cc
@@ -71,6 +71,7 @@ ContentPageView::ContentPageView(Profile* profile)
sync_status_label_(NULL),
sync_start_stop_button_(NULL),
sync_customize_button_(NULL),
+ privacy_dashboard_link_(NULL),
sync_service_(NULL),
OptionsPageView(profile) {
if (profile->GetProfileSyncService()) {
@@ -160,6 +161,10 @@ void ContentPageView::LinkActivated(views::Link* source, int event_flags) {
sync_service_->ShowLoginDialog(GetWindow()->GetNativeWindow());
return;
}
+ if (source == privacy_dashboard_link_) {
+ BrowserList::GetLastActive()->OpenPrivacyDashboardTabAndActivate();
+ return;
+ }
NOTREACHED() << "Invalid link source.";
}
@@ -409,6 +414,12 @@ void ContentPageView::InitSyncGroup() {
sync_action_link_->set_collapse_when_hidden(true);
sync_action_link_->SetController(this);
+ privacy_dashboard_link_ = new views::Link();
+ privacy_dashboard_link_->set_collapse_when_hidden(true);
+ privacy_dashboard_link_->SetController(this);
+ privacy_dashboard_link_->SetText(
+ l10n_util::GetString(IDS_SYNC_PRIVACY_DASHBOARD_LINK_LABEL));
+
sync_start_stop_button_ = new views::NativeButton(this, std::wstring());
sync_customize_button_ = new views::NativeButton(this, std::wstring());
@@ -438,6 +449,7 @@ void ContentPageView::InitSyncGroup() {
layout->AddView(sync_customize_button_);
layout->AddPaddingRow(0, kRelatedControlVerticalSpacing);
layout->StartRow(0, single_column_view_set_id);
+ layout->AddView(privacy_dashboard_link_, 3, 1);
sync_group_ = new OptionsGroupView(contents,
l10n_util::GetString(IDS_SYNC_OPTIONS_GROUP_NAME), std::wstring(), true);
diff --git a/chrome/browser/views/options/content_page_view.h b/chrome/browser/views/options/content_page_view.h
index 7f19bdd..181f8a1 100644
--- a/chrome/browser/views/options/content_page_view.h
+++ b/chrome/browser/views/options/content_page_view.h
@@ -101,6 +101,7 @@ class ContentPageView : public OptionsPageView,
views::Link* sync_action_link_;
views::NativeButton* sync_start_stop_button_;
views::NativeButton* sync_customize_button_;
+ views::Link* privacy_dashboard_link_;
BooleanPrefMember ask_to_save_passwords_;
BooleanPrefMember form_autofill_enabled_;
diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
index 62b2690..dc970bd 100644
--- a/chrome/common/chrome_switches.cc
+++ b/chrome/common/chrome_switches.cc
@@ -387,6 +387,10 @@ const char kEnableBackgroundMode[] = "enable-background-mode";
// Enables the benchmarking extensions.
const char kEnableBenchmarking[] = "enable-benchmarking";
+// This flag enables UI for clearing server data. Temporarily in place
+// until there's a server endpoint deployed.
+const char kEnableClearServerData[] = "enable-clear-server-data";
+
// This applies only when the process type is "service". Enables the
// Cloud Print Proxy component within the service process.
const char kEnableCloudPrintProxy[] = "enable-cloud-print-proxy";
diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h
index 9cb8043..19d91cc 100644
--- a/chrome/common/chrome_switches.h
+++ b/chrome/common/chrome_switches.h
@@ -121,6 +121,7 @@ extern const char kEnableAeroPeekTabs[];
extern const char kEnableAuthNegotiatePort[];
extern const char kEnableBackgroundMode[];
extern const char kEnableBenchmarking[];
+extern const char kEnableClearServerData[];
extern const char kEnableCloudPrintProxy[];
extern const char kEnableCloudPrint[];
extern const char kEnableConnectBackupJobs[];