OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "webkit/default_plugin/plugin_impl.h" | 5 #include "webkit/default_plugin/plugin_impl.h" |
6 | 6 |
7 #include <shellapi.h> | 7 #include <shellapi.h> |
8 | 8 |
9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
(...skipping 600 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
611 DLOG(WARNING) << "Failed to download plugin"; | 611 DLOG(WARNING) << "Failed to download plugin"; |
612 set_plugin_installer_state(PluginDownloadFailed); | 612 set_plugin_installer_state(PluginDownloadFailed); |
613 DisplayPluginDownloadFailedStatus(); | 613 DisplayPluginDownloadFailedStatus(); |
614 } else { | 614 } else { |
615 DLOG(INFO) << "Successfully downloaded plugin installer"; | 615 DLOG(INFO) << "Successfully downloaded plugin installer"; |
616 set_plugin_installer_state(PluginDownloadCompleted); | 616 set_plugin_installer_state(PluginDownloadCompleted); |
617 | 617 |
618 std::wstring file_path = | 618 std::wstring file_path = |
619 reinterpret_cast<const wchar_t*>(download_file_info->lpData); | 619 reinterpret_cast<const wchar_t*>(download_file_info->lpData); |
620 | 620 |
| 621 std::wstring current_directory = |
| 622 file_util::GetDirectoryFromPath(file_path); |
| 623 |
621 SHELLEXECUTEINFO shell_execute_info = {0}; | 624 SHELLEXECUTEINFO shell_execute_info = {0}; |
622 shell_execute_info.cbSize = sizeof(shell_execute_info); | 625 shell_execute_info.cbSize = sizeof(shell_execute_info); |
623 shell_execute_info.fMask = SEE_MASK_NOCLOSEPROCESS; | 626 shell_execute_info.fMask = SEE_MASK_NOCLOSEPROCESS; |
624 shell_execute_info.lpFile = file_path.c_str(); | 627 shell_execute_info.lpFile = file_path.c_str(); |
| 628 shell_execute_info.lpDirectory = current_directory.c_str(); |
| 629 shell_execute_info.nShow = SW_SHOW; |
625 | 630 |
626 if (!ShellExecuteEx(&shell_execute_info)) { | 631 if (!ShellExecuteEx(&shell_execute_info)) { |
627 DLOG(WARNING) << "Failed to launch plugin installer " | 632 DLOG(WARNING) << "Failed to launch plugin installer " |
628 << file_path.c_str() << " Error " | 633 << file_path.c_str() << " Error " |
629 << ::GetLastError(); | 634 << ::GetLastError(); |
630 set_plugin_installer_state(PluginInstallerLaunchFailure); | 635 set_plugin_installer_state(PluginInstallerLaunchFailure); |
631 DisplayStatus(IDS_DEFAULT_PLUGIN_INSTALLATION_FAILED_MSG); | 636 DisplayStatus(IDS_DEFAULT_PLUGIN_INSTALLATION_FAILED_MSG); |
632 NOTREACHED(); | 637 NOTREACHED(); |
633 } else { | 638 } else { |
634 DLOG(INFO) << "Successfully launched plugin installer"; | 639 DLOG(INFO) << "Successfully launched plugin installer"; |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
743 } | 748 } |
744 | 749 |
745 void PluginInstallerImpl::NotifyPluginStatus(int status) { | 750 void PluginInstallerImpl::NotifyPluginStatus(int status) { |
746 default_plugin::g_browser->getvalue( | 751 default_plugin::g_browser->getvalue( |
747 instance_, | 752 instance_, |
748 static_cast<NPNVariable>( | 753 static_cast<NPNVariable>( |
749 default_plugin::kMissingPluginStatusStart + status), | 754 default_plugin::kMissingPluginStatusStart + status), |
750 NULL); | 755 NULL); |
751 } | 756 } |
752 | 757 |
OLD | NEW |