diff options
author | rolandsteiner@chromium.org <rolandsteiner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-09 04:33:11 +0000 |
---|---|---|
committer | rolandsteiner@chromium.org <rolandsteiner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-09 04:33:11 +0000 |
commit | 7e6ecaaf0315c518b6223607d1684255c3d8c7a8 (patch) | |
tree | 33ecb333c979e74d7160abcb446781c1f0c7782d /chrome/browser/automation/automation_provider.cc | |
parent | 72019a142cb65deac06491e779383e3f28118a8e (diff) | |
download | chromium_src-7e6ecaaf0315c518b6223607d1684255c3d8c7a8.zip chromium_src-7e6ecaaf0315c518b6223607d1684255c3d8c7a8.tar.gz chromium_src-7e6ecaaf0315c518b6223607d1684255c3d8c7a8.tar.bz2 |
Commit Issue 255057: Unit Test for Toggling of Encoding Auto-Detect
BUG=23617
TEST=BrowserEncodingTest.TestToggleAutoDetect
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31419 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/automation/automation_provider.cc')
-rw-r--r-- | chrome/browser/automation/automation_provider.cc | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc index 8df4ae4..e7984bc 100644 --- a/chrome/browser/automation/automation_provider.cc +++ b/chrome/browser/automation/automation_provider.cc @@ -417,6 +417,8 @@ void AutomationProvider::OnMessageReceived(const IPC::Message& message) { SetBooleanPreference) IPC_MESSAGE_HANDLER(AutomationMsg_GetPageCurrentEncoding, GetPageCurrentEncoding) + IPC_MESSAGE_HANDLER(AutomationMsg_ToggleEncodingAutoDetect, + ToggleEncodingAutoDetect) IPC_MESSAGE_HANDLER(AutomationMsg_OverrideEncoding, OverrideEncoding) IPC_MESSAGE_HANDLER(AutomationMsg_SavePackageShouldPromptUser, SavePackageShouldPromptUser) @@ -1890,8 +1892,8 @@ void AutomationProvider::SetStringPreference(int handle, void AutomationProvider::GetBooleanPreference(int handle, const std::wstring& name, - bool* success, - bool* value) { + bool* value, + bool* success) { *success = false; *value = false; if (browser_tracker_->ContainsHandle(handle)) { @@ -1926,7 +1928,30 @@ void AutomationProvider::GetPageCurrentEncoding( } } -// Gets the current used encoding name of the page in the specified tab. +// Toggles the encoding auto-detect setting. +// While the setting is global, the tab needs to be specified as it may need +// to be reloaded. +void AutomationProvider::ToggleEncodingAutoDetect(int tab_handle, + bool* success) { + *success = false; +#if defined(OS_WIN) + if (tab_tracker_->ContainsHandle(tab_handle)) { + NavigationController* nav = tab_tracker_->GetResource(tab_handle); + Browser* browser = FindAndActivateTab(nav); + DCHECK(browser); + + if (browser->command_updater()->IsCommandEnabled(IDC_ENCODING_MENU)) { + browser->ToggleEncodingAutoDetect(); + *success = true; + } + } +#else + // TODO(port): Enable when encoding-related parts of Browser are ported. + NOTIMPLEMENTED(); +#endif +} + +// Sets the override encoding for the page in the specified tab. void AutomationProvider::OverrideEncoding(int tab_handle, const std::string& encoding_name, bool* success) { |