diff options
author | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-15 20:13:46 +0000 |
---|---|---|
committer | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-15 20:13:46 +0000 |
commit | aac60370525207a907d97239b78dee3ae8f95f69 (patch) | |
tree | 54523d3c1d5e323b11155eb4d748b128ead31404 | |
parent | 31cc1c02c0a93df076ebbecef923e3a63ac34341 (diff) | |
download | chromium_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.mm | 3 | ||||
-rw-r--r-- | chrome/browser/gtk/clear_browsing_data_dialog_gtk.cc | 83 | ||||
-rw-r--r-- | chrome/browser/gtk/options/content_page_gtk.cc | 21 | ||||
-rw-r--r-- | chrome/browser/gtk/options/content_page_gtk.h | 2 | ||||
-rw-r--r-- | chrome/browser/views/clear_browsing_data_view.cc | 11 | ||||
-rw-r--r-- | chrome/browser/views/clear_browsing_data_view.h | 6 | ||||
-rw-r--r-- | chrome/browser/views/clear_server_data.cc | 16 | ||||
-rw-r--r-- | chrome/browser/views/options/content_page_view.cc | 12 | ||||
-rw-r--r-- | chrome/browser/views/options/content_page_view.h | 1 | ||||
-rw-r--r-- | chrome/common/chrome_switches.cc | 4 | ||||
-rw-r--r-- | chrome/common/chrome_switches.h | 1 |
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[]; |