| 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..c3029323c7d2b0761ee8d73775dbfedefbcb70da 100644
|
| --- a/chrome/browser/automation/testing_automation_provider.cc
|
| +++ b/chrome/browser/automation/testing_automation_provider.cc
|
| @@ -206,6 +206,20 @@ 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,
|
| + IPC::Message* reply_message,
|
| + const FilePath::StringType& path,
|
| + const std::string& error_msg,
|
| + bool can_enable) {
|
| + if (!can_enable) {
|
| + 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 +3399,10 @@ 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(SendSuccessReply, AsWeakPtr(), reply_message),
|
| + base::Bind(&CanEnablePluginCallback, AsWeakPtr(), reply_message,
|
| + path, "Could not enable plugin for path %s."));
|
| }
|
|
|
| // Sample json input:
|
| @@ -3407,14 +3417,10 @@ 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(SendSuccessReply, AsWeakPtr(), reply_message),
|
| + base::Bind(&CanEnablePluginCallback, AsWeakPtr(), reply_message,
|
| + path, "Could not disable plugin for path %s."));
|
| }
|
|
|
| // Sample json input:
|
|
|