summaryrefslogtreecommitdiffstats
path: root/chrome/browser/automation/automation_provider.cc
diff options
context:
space:
mode:
authorrolandsteiner@chromium.org <rolandsteiner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-09 04:33:11 +0000
committerrolandsteiner@chromium.org <rolandsteiner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-09 04:33:11 +0000
commit7e6ecaaf0315c518b6223607d1684255c3d8c7a8 (patch)
tree33ecb333c979e74d7160abcb446781c1f0c7782d /chrome/browser/automation/automation_provider.cc
parent72019a142cb65deac06491e779383e3f28118a8e (diff)
downloadchromium_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.cc31
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) {