diff options
author | rsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-20 16:32:36 +0000 |
---|---|---|
committer | rsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-20 16:32:36 +0000 |
commit | 1661a3c0b786300978f644c0b733f491710e32d9 (patch) | |
tree | 7c3e2367bf902fcf9939460250bf397920729649 /chrome/browser | |
parent | 4a8b67dbf6779eb58f3d4fbd65bcd68b4744f655 (diff) | |
download | chromium_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')
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); |