summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorrsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-20 16:32:36 +0000
committerrsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-20 16:32:36 +0000
commit1661a3c0b786300978f644c0b733f491710e32d9 (patch)
tree7c3e2367bf902fcf9939460250bf397920729649 /chrome/browser
parent4a8b67dbf6779eb58f3d4fbd65bcd68b4744f655 (diff)
downloadchromium_src-1661a3c0b786300978f644c0b733f491710e32d9.zip
chromium_src-1661a3c0b786300978f644c0b733f491710e32d9.tar.gz
chromium_src-1661a3c0b786300978f644c0b733f491710e32d9.tar.bz2
[Mac] Add a preference for the tab key cycling between just form fields, or links as well.
XIB change: Add a checkbox bound to FilesOwner.tabsToLinks underneath the translate webpages preference. BUG=31177 TEST=Uncheck Chromium-->Preferences-->Under the Hood-->Pressing Tab... Then press Tab on Google.com and the links don't get focus; it alternates between search field and location bar. Review URL: http://codereview.chromium.org/2082011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47807 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/cocoa/preferences_window_controller.h1
-rw-r--r--chrome/browser/cocoa/preferences_window_controller.mm17
-rw-r--r--chrome/browser/options_util.cc1
-rw-r--r--chrome/browser/tab_contents/render_view_host_delegate_helper.cc1
-rw-r--r--chrome/browser/tab_contents/tab_contents.cc3
5 files changed, 23 insertions, 0 deletions
diff --git a/chrome/browser/cocoa/preferences_window_controller.h b/chrome/browser/cocoa/preferences_window_controller.h
index 97d8a14..c117384 100644
--- a/chrome/browser/cocoa/preferences_window_controller.h
+++ b/chrome/browser/cocoa/preferences_window_controller.h
@@ -108,6 +108,7 @@ class ProfileSyncService;
StringPrefMember defaultDownloadLocation_;
BooleanPrefMember askForSaveLocation_;
BooleanPrefMember translateEnabled_;
+ BooleanPrefMember tabsToLinks_;
FontLanguageSettingsController* fontLanguageSettings_;
StringPrefMember currentTheme_;
IBOutlet NSButton* enableLoggingCheckbox_;
diff --git a/chrome/browser/cocoa/preferences_window_controller.mm b/chrome/browser/cocoa/preferences_window_controller.mm
index e61018a..4410db6 100644
--- a/chrome/browser/cocoa/preferences_window_controller.mm
+++ b/chrome/browser/cocoa/preferences_window_controller.mm
@@ -342,6 +342,7 @@ CGFloat AutoSizeUnderTheHoodContent(NSView* view,
- (void)setMetricsRecording:(BOOL)value;
- (void)setAskForSaveLocation:(BOOL)value;
- (void)setTranslateEnabled:(BOOL)value;
+- (void)setTabsToLinks:(BOOL)value;
- (void)displayPreferenceViewForPage:(OptionsPage)page
animate:(BOOL)animate;
@end
@@ -698,6 +699,7 @@ class PrefObserverBridge : public NotificationObserver,
dnsPrefetch_.Init(prefs::kDnsPrefetchingEnabled, prefs_, observer_.get());
safeBrowsing_.Init(prefs::kSafeBrowsingEnabled, prefs_, observer_.get());
translateEnabled_.Init(prefs::kEnableTranslate, prefs_, observer_.get());
+ tabsToLinks_.Init(prefs::kWebkitTabsToLinks, prefs_, observer_.get());
// During unit tests, there is no local state object, so we fall back to
// the prefs object (where we've explicitly registered this pref so we
@@ -1317,6 +1319,8 @@ const int kDisabledIndex = 1;
}
else if (*prefName == prefs::kEnableTranslate) {
[self setTranslateEnabled:translateEnabled_.GetValue() ? YES : NO];
+ } else if (*prefName == prefs::kWebkitTabsToLinks) {
+ [self setTabsToLinks:tabsToLinks_.GetValue() ? YES : NO];
}
}
@@ -1548,6 +1552,19 @@ const int kDisabledIndex = 1;
translateEnabled_.SetValue(value);
}
+- (BOOL)tabsToLinks {
+ return tabsToLinks_.GetValue();
+}
+
+- (void)setTabsToLinks:(BOOL)value {
+ if (value) {
+ [self recordUserAction:UserMetricsAction("Options_TabsToLinks_Enable")];
+ } else {
+ [self recordUserAction:UserMetricsAction("Options_TabsToLinks_Disable")];
+ }
+ tabsToLinks_.SetValue(value);
+}
+
- (void)fontAndLanguageEndSheet:(NSWindow*)sheet
returnCode:(NSInteger)returnCode
contextInfo:(void*)context {
diff --git a/chrome/browser/options_util.cc b/chrome/browser/options_util.cc
index d1c7c964..b4c5c9a 100644
--- a/chrome/browser/options_util.cc
+++ b/chrome/browser/options_util.cc
@@ -66,6 +66,7 @@ void OptionsUtil::ResetToDefaults(Profile* profile) {
prefs::kWebKitPluginsEnabled,
prefs::kWebKitSansSerifFontFamily,
prefs::kWebKitSerifFontFamily,
+ prefs::kWebkitTabsToLinks,
};
profile->GetDownloadManager()->ResetAutoOpenFiles();
profile->GetHostContentSettingsMap()->ResetToDefaults();
diff --git a/chrome/browser/tab_contents/render_view_host_delegate_helper.cc b/chrome/browser/tab_contents/render_view_host_delegate_helper.cc
index a1f7f01..590a500 100644
--- a/chrome/browser/tab_contents/render_view_host_delegate_helper.cc
+++ b/chrome/browser/tab_contents/render_view_host_delegate_helper.cc
@@ -190,6 +190,7 @@ WebPreferences RenderViewHostDelegateHelper::GetWebkitPrefs(
prefs->GetBoolean(prefs::kWebKitShrinksStandaloneImagesToFit);
web_prefs.inspector_settings = WideToUTF8(
prefs->GetString(prefs::kWebKitInspectorSettings));
+ web_prefs.tabs_to_links = prefs->GetBoolean(prefs::kWebkitTabsToLinks);
{ // Command line switches are used for preferences with no user interface.
const CommandLine& command_line = *CommandLine::ForCurrentProcess();
diff --git a/chrome/browser/tab_contents/tab_contents.cc b/chrome/browser/tab_contents/tab_contents.cc
index 9d1a558..189f00a 100644
--- a/chrome/browser/tab_contents/tab_contents.cc
+++ b/chrome/browser/tab_contents/tab_contents.cc
@@ -167,6 +167,7 @@ const wchar_t* kPrefsToObserve[] = {
prefs::kWebKitFixedFontFamily,
prefs::kWebKitDefaultFontSize,
prefs::kWebKitDefaultFixedFontSize,
+ prefs::kWebkitTabsToLinks,
prefs::kDefaultCharset
// kWebKitStandardFontIsSerif needs to be added
// if we let users pick which font to use, serif or sans-serif when
@@ -443,6 +444,8 @@ void TabContents::RegisterUserPrefs(PrefService* prefs) {
pref_defaults.text_areas_are_resizable);
prefs->RegisterBooleanPref(prefs::kWebKitJavaEnabled,
pref_defaults.java_enabled);
+ prefs->RegisterBooleanPref(prefs::kWebkitTabsToLinks,
+ pref_defaults.tabs_to_links);
prefs->RegisterLocalizedStringPref(prefs::kAcceptLanguages,
IDS_ACCEPT_LANGUAGES);