Chromium Code Reviews| Index: chrome/browser/automation/testing_automation_provider.cc |
| diff --git a/chrome/browser/automation/testing_automation_provider.cc b/chrome/browser/automation/testing_automation_provider.cc |
| index ffb1274d2025b6f313e645eaa55af04b8fa906c5..6426a57d93d513b675a3c9aa0eeccb6e8baa7eba 100644 |
| --- a/chrome/browser/automation/testing_automation_provider.cc |
| +++ b/chrome/browser/automation/testing_automation_provider.cc |
| @@ -206,6 +206,22 @@ void SendSuccessReply(base::WeakPtr<AutomationProvider> automation, |
| AutomationJSONReply(automation.get(), reply_message).SendSuccess(NULL); |
| } |
| +// Helper to process the result of CanEnablePlugin. |
| +void CanEnablePluginCallback(base::WeakPtr<AutomationProvider> automation, |
|
Bernhard Bauer
2012/08/29 16:53:21
We should name this method differently now. DidEna
ibraaaa
2012/08/29 17:37:53
Done.
|
| + IPC::Message* reply_message, |
| + const FilePath::StringType& path, |
| + const std::string& error_msg, |
| + bool can_enable) { |
| + if (can_enable) { |
| + SendSuccessReply(automation, reply_message); |
| + } else { |
| + if (automation) { |
| + AutomationJSONReply(automation.get(), reply_message).SendError( |
| + StringPrintf(error_msg.c_str(), path.c_str())); |
| + } |
| + } |
| +} |
| + |
| // Helper to resolve the overloading of PostTask. |
| void PostTask(BrowserThread::ID id, const base::Closure& callback) { |
| BrowserThread::PostTask(id, FROM_HERE, callback); |
| @@ -3385,14 +3401,9 @@ void TestingAutomationProvider::EnablePlugin(Browser* browser, |
| return; |
| } |
| PluginPrefs* plugin_prefs = PluginPrefs::GetForProfile(browser->profile()); |
| - if (!plugin_prefs->CanEnablePlugin(true, FilePath(path))) { |
| - AutomationJSONReply(this, reply_message).SendError( |
| - StringPrintf("Could not enable plugin for path %s.", path.c_str())); |
| - return; |
| - } |
| - plugin_prefs->EnablePlugin( |
| - true, FilePath(path), |
| - base::Bind(SendSuccessReply, AsWeakPtr(), reply_message)); |
| + plugin_prefs->EnablePlugin(true, FilePath(path), |
| + base::Bind(&CanEnablePluginCallback, AsWeakPtr(), reply_message, |
| + path, "Could not enable plugin for path %s.")); |
| } |
| // Sample json input: |
| @@ -3407,14 +3418,9 @@ void TestingAutomationProvider::DisablePlugin(Browser* browser, |
| return; |
| } |
| PluginPrefs* plugin_prefs = PluginPrefs::GetForProfile(browser->profile()); |
| - if (!plugin_prefs->CanEnablePlugin(false, FilePath(path))) { |
| - AutomationJSONReply(this, reply_message).SendError( |
| - StringPrintf("Could not disable plugin for path %s.", path.c_str())); |
| - return; |
| - } |
| - plugin_prefs->EnablePlugin( |
| - false, FilePath(path), |
| - base::Bind(SendSuccessReply, AsWeakPtr(), reply_message)); |
| + plugin_prefs->EnablePlugin(false, FilePath(path), |
| + base::Bind(&CanEnablePluginCallback, AsWeakPtr(), reply_message, |
| + path, "Could not disable plugin for path %s.")); |
| } |
| // Sample json input: |