summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/autofill/autofill_dialog_gtk.cc7
-rw-r--r--chrome/browser/autofill/autofill_infobar_delegate.cc5
-rw-r--r--chrome/browser/autofill/autofill_manager.cc4
-rw-r--r--chrome/browser/autofill/autofill_manager.h3
-rw-r--r--chrome/browser/views/autofill_profiles_view_win.cc31
-rw-r--r--chrome/browser/views/autofill_profiles_view_win.h6
6 files changed, 49 insertions, 7 deletions
diff --git a/chrome/browser/autofill/autofill_dialog_gtk.cc b/chrome/browser/autofill/autofill_dialog_gtk.cc
index 9b7d4b8..7c0f5b6 100644
--- a/chrome/browser/autofill/autofill_dialog_gtk.cc
+++ b/chrome/browser/autofill/autofill_dialog_gtk.cc
@@ -12,6 +12,7 @@
#include "base/logging.h"
#include "base/message_loop.h"
#include "base/utf_string_conversions.h"
+#include "chrome/browser/autofill/autofill_manager.h"
#include "chrome/browser/autofill/autofill_profile.h"
#include "chrome/browser/autofill/credit_card.h"
#include "chrome/browser/autofill/form_group.h"
@@ -760,11 +761,9 @@ void AutoFillDialog::OnLabelChanged(GtkEntry* label, GtkWidget* expander) {
}
void AutoFillDialog::OnLinkActivated() {
- // TODO(jhawkins): Maybe this should be in a grd file?
- GURL url =
- GURL("http://www.google.com/support/chrome/bin/answer.py?answer=142893");
Browser* browser = BrowserList::GetLastActive();
- browser->OpenURL(url, GURL(), NEW_FOREGROUND_TAB, PageTransition::TYPED);
+ browser->OpenURL(GURL(kAutoFillLearnMoreUrl), GURL(), NEW_FOREGROUND_TAB,
+ PageTransition::TYPED);
}
GtkWidget* AutoFillDialog::InitGroup(int name_id,
diff --git a/chrome/browser/autofill/autofill_infobar_delegate.cc b/chrome/browser/autofill/autofill_infobar_delegate.cc
index 4f1fc35..c092249 100644
--- a/chrome/browser/autofill/autofill_infobar_delegate.cc
+++ b/chrome/browser/autofill/autofill_infobar_delegate.cc
@@ -98,8 +98,7 @@ std::wstring AutoFillInfoBarDelegate::GetLinkText() {
}
bool AutoFillInfoBarDelegate::LinkClicked(WindowOpenDisposition disposition) {
- GURL url =
- GURL("http://www.google.com/support/chrome/bin/answer.py?answer=142893");
- browser_->OpenURL(url, GURL(), NEW_FOREGROUND_TAB, PageTransition::TYPED);
+ browser_->OpenURL(GURL(kAutoFillLearnMoreUrl), GURL(), NEW_FOREGROUND_TAB,
+ PageTransition::TYPED);
return true;
}
diff --git a/chrome/browser/autofill/autofill_manager.cc b/chrome/browser/autofill/autofill_manager.cc
index 8a6d3a7..5ae1cd5 100644
--- a/chrome/browser/autofill/autofill_manager.cc
+++ b/chrome/browser/autofill/autofill_manager.cc
@@ -30,6 +30,10 @@ const double kAutoFillPositiveUploadRateDefaultValue = 0.01;
const double kAutoFillNegativeUploadRateDefaultValue = 0.01;
} // namespace
+// TODO(jhawkins): Maybe this should be in a grd file?
+const char* kAutoFillLearnMoreUrl =
+ "http://www.google.com/support/chrome/bin/answer.py?answer=142893";
+
AutoFillManager::AutoFillManager(TabContents* tab_contents)
: tab_contents_(tab_contents),
diff --git a/chrome/browser/autofill/autofill_manager.h b/chrome/browser/autofill/autofill_manager.h
index b9eafbf..4f455b9 100644
--- a/chrome/browser/autofill/autofill_manager.h
+++ b/chrome/browser/autofill/autofill_manager.h
@@ -27,6 +27,9 @@ class FormStructure;
class PrefService;
class TabContents;
+// TODO(jhawkins): Maybe this should be in a grd file?
+extern const char* kAutoFillLearnMoreUrl;
+
// Manages saving and restoring the user's personal information entered into web
// forms.
class AutoFillManager : public RenderViewHostDelegate::AutoFill,
diff --git a/chrome/browser/views/autofill_profiles_view_win.cc b/chrome/browser/views/autofill_profiles_view_win.cc
index 5951b49..db30b6f 100644
--- a/chrome/browser/views/autofill_profiles_view_win.cc
+++ b/chrome/browser/views/autofill_profiles_view_win.cc
@@ -9,6 +9,7 @@
#include "app/l10n_util.h"
#include "app/resource_bundle.h"
#include "base/message_loop.h"
+#include "chrome/browser/autofill/autofill_manager.h"
#include "chrome/browser/browser.h"
#include "chrome/browser/browser_list.h"
#include "chrome/browser/browser_window.h"
@@ -236,6 +237,27 @@ std::wstring AutoFillProfilesView::GetDialogButtonLabel(
return std::wstring();
}
+views::View* AutoFillProfilesView::GetExtraView() {
+ // The dialog sizes the extra view to fill the entire available space.
+ // We use a container to lay it out properly.
+ views::View* link_container = new views::View();
+ views::GridLayout* layout = new views::GridLayout(link_container);
+ link_container->SetLayoutManager(layout);
+
+ views::ColumnSet* column_set = layout->AddColumnSet(0);
+ column_set->AddPaddingColumn(0, kDialogPadding);
+ column_set->AddColumn(views::GridLayout::LEADING,
+ views::GridLayout::LEADING, 0,
+ views::GridLayout::USE_PREF, 0, 0);
+ layout->StartRow(0, 0);
+ views::Link* link = new views::Link(
+ l10n_util::GetString(IDS_AUTOFILL_LEARN_MORE));
+ link->SetController(this);
+ layout->AddView(link);
+
+ return link_container;
+}
+
bool AutoFillProfilesView::IsDialogButtonEnabled(
MessageBoxFlags::DialogButton button) const {
switch (button) {
@@ -306,6 +328,15 @@ void AutoFillProfilesView::ButtonPressed(views::Button* sender,
}
/////////////////////////////////////////////////////////////////////////////
+// AutoFillProfilesView, views::LinkController implementations:
+void AutoFillProfilesView::LinkActivated(views::Link* source, int event_flags) {
+ Browser* browser = BrowserList::GetLastActive();
+ browser->OpenURL(GURL(kAutoFillLearnMoreUrl), GURL(), NEW_FOREGROUND_TAB,
+ PageTransition::TYPED);
+}
+
+
+/////////////////////////////////////////////////////////////////////////////
// AutoFillProfilesView, views::FocusChangeListener implementations:
void AutoFillProfilesView::FocusWillChange(views::View* focused_before,
views::View* focused_now) {
diff --git a/chrome/browser/views/autofill_profiles_view_win.h b/chrome/browser/views/autofill_profiles_view_win.h
index 1e1a911..524b90e 100644
--- a/chrome/browser/views/autofill_profiles_view_win.h
+++ b/chrome/browser/views/autofill_profiles_view_win.h
@@ -13,6 +13,7 @@
#include "chrome/browser/autofill/autofill_profile.h"
#include "chrome/browser/autofill/personal_data_manager.h"
#include "views/controls/combobox/combobox.h"
+#include "views/controls/link.h"
#include "views/controls/textfield/textfield.h"
#include "views/focus/focus_manager.h"
#include "views/view.h"
@@ -51,6 +52,7 @@ class PrefService;
class AutoFillProfilesView : public views::View,
public views::DialogDelegate,
public views::ButtonListener,
+ public views::LinkController,
public views::FocusChangeListener,
public PersonalDataManager::Observer {
public:
@@ -98,6 +100,7 @@ class AutoFillProfilesView : public views::View,
virtual int GetDialogButtons() const;
virtual std::wstring GetDialogButtonLabel(
MessageBoxFlags::DialogButton button) const;
+ virtual View* GetExtraView();
virtual bool IsDialogButtonEnabled(
MessageBoxFlags::DialogButton button) const;
virtual bool CanResize() const { return true; }
@@ -113,6 +116,9 @@ class AutoFillProfilesView : public views::View,
virtual void ButtonPressed(views::Button* sender,
const views::Event& event);
+ // views::LinkController methods:
+ virtual void LinkActivated(views::Link* source, int event_flags);
+
// views::FocusChangeListener methods:
virtual void FocusWillChange(views::View* focused_before,
views::View* focused_now);