From 7e6ecaaf0315c518b6223607d1684255c3d8c7a8 Mon Sep 17 00:00:00 2001 From: "rolandsteiner@chromium.org" Date: Mon, 9 Nov 2009 04:33:11 +0000 Subject: 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 --- chrome/browser/automation/automation_provider.cc | 31 +++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) (limited to 'chrome/browser/automation/automation_provider.cc') 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) { -- cgit v1.1