| Index: webkit/default_plugin/plugin_impl_win.cc | 
| =================================================================== | 
| --- webkit/default_plugin/plugin_impl_win.cc	(revision 25626) | 
| +++ webkit/default_plugin/plugin_impl_win.cc	(working copy) | 
| @@ -12,9 +12,6 @@ | 
| #include "googleurl/src/gurl.h" | 
| #include "grit/webkit_strings.h" | 
| #include "unicode/locid.h" | 
| -#include "webkit/default_plugin/activex_installer.h" | 
| -#include "webkit/activex_shim/activex_shared.h" | 
| -#include "webkit/activex_shim/npn_scripting.h" | 
| #include "webkit/default_plugin/default_plugin_shared.h" | 
| #include "webkit/default_plugin/plugin_main.h" | 
| #include "webkit/glue/webkit_glue.h" | 
| @@ -23,7 +20,6 @@ | 
|  | 
| PluginInstallerImpl::PluginInstallerImpl(int16 mode) | 
| : instance_(NULL), | 
| -      is_activex_(false), | 
| mode_(mode), | 
| plugin_install_stream_(NULL), | 
| plugin_installer_state_(PluginInstallerStateUndefined), | 
| @@ -34,7 +30,6 @@ | 
| regular_font_(NULL), | 
| underline_font_(NULL), | 
| tooltip_(NULL), | 
| -      activex_installer_(NULL), | 
| installation_job_monitor_thread_( | 
| new PluginInstallationJobMonitorThread()), | 
| plugin_database_handler_(*this), | 
| @@ -50,11 +45,6 @@ | 
| if (underline_font_) | 
| DeleteObject(underline_font_); | 
|  | 
| -  if (activex_installer_) { | 
| -    activex_installer_->Cleanup(); | 
| -    activex_installer_->Release(); | 
| -  } | 
| - | 
| if (tooltip_) | 
| DestroyWindow(tooltip_); | 
| } | 
| @@ -66,19 +56,18 @@ | 
| DCHECK(instance != NULL); | 
| DCHECK(module_handle != NULL); | 
|  | 
| +  if (mime_type == NULL || strlen(mime_type) == 0) { | 
| +    DLOG(WARNING) << __FUNCTION__ << " Invalid parameters passed in"; | 
| +    NOTREACHED(); | 
| +    return false; | 
| +  } | 
| + | 
| instance_ = instance; | 
| mime_type_ = mime_type; | 
|  | 
| -  // The clsid without the {} parentheses. | 
| -  std::string raw_activex_clsid; | 
| -  if (!ParseInstantiationArguments(mime_type, instance, argc, argn, argv, | 
| -                                   &raw_activex_clsid, &is_activex_, | 
| -                                   &activex_clsid_, | 
| -                                   &activex_codebase_, | 
| -                                   &plugin_download_url_, | 
| -                                   &plugin_finder_url_)) { | 
| -    DLOG(ERROR) << "Incorrect arguments passed to plugin"; | 
| +  if (!webkit_glue::GetPluginFinderURL(&plugin_finder_url_)) { | 
| NOTREACHED(); | 
| +    DLOG(WARNING) << __FUNCTION__ << " Failed to get the plugin finder URL"; | 
| return false; | 
| } | 
|  | 
| @@ -90,28 +79,9 @@ | 
|  | 
| InitializeResources(module_handle); | 
|  | 
| -  if (is_activex_) { | 
| -    // If the codebase is not from a whitelisted website, we do not allow | 
| -    // download. | 
| -    if (!activex_shim::IsCodebaseAllowed(raw_activex_clsid, | 
| -                                         activex_codebase_)) { | 
| -      activex_codebase_.clear(); | 
| -      plugin_download_url_.clear(); | 
| -    } | 
| +  DisplayStatus(IDS_DEFAULT_PLUGIN_GET_PLUGIN_MSG_NO_PLUGIN_NAME); | 
| +  plugin_database_handler_.DownloadPluginsFileIfNeeded(plugin_finder_url_); | 
|  | 
| -    if (!plugin_download_url_.empty()) { | 
| -      set_plugin_installer_state(PluginListDownloaded); | 
| -      DisplayAvailablePluginStatus(); | 
| -      NotifyPluginStatus(default_plugin::MISSING_PLUGIN_AVAILABLE); | 
| -    } else { | 
| -      set_plugin_installer_state(PluginListDownloadFailed); | 
| -      DisplayStatus(IDS_DEFAULT_PLUGIN_NO_PLUGIN_AVAILABLE_MSG); | 
| -    } | 
| -  } else { | 
| -    DisplayStatus(IDS_DEFAULT_PLUGIN_GET_PLUGIN_MSG_NO_PLUGIN_NAME); | 
| -    plugin_database_handler_.DownloadPluginsFileIfNeeded(plugin_finder_url_); | 
| -  } | 
| - | 
| return true; | 
| } | 
|  | 
| @@ -288,8 +258,6 @@ | 
| } | 
|  | 
| int16 PluginInstallerImpl::NPP_HandleEvent(void* event) { | 
| -  // This is a hack. The renderer will send a direct custom message to ask for | 
| -  // installation. | 
| NPEvent* npp_event = static_cast<NPEvent*>(event); | 
| if (npp_event->event == kInstallMissingPluginMessage) { | 
| // We could get this message because InfoBar may not be in sync with our | 
| @@ -362,25 +330,16 @@ | 
|  | 
| DisplayStatus(IDS_DEFAULT_PLUGIN_DOWNLOADING_PLUGIN_MSG); | 
|  | 
| -  if (is_activex_) { | 
| -    if (activex_installer_ == NULL) { | 
| -      CComObject<ActiveXInstaller>::CreateInstance(&activex_installer_); | 
| -      activex_installer_->AddRef(); | 
| -    } | 
| -    activex_installer_->StartDownload(activex_clsid_, activex_codebase_, | 
| -                                      hwnd(), kActivexInstallResult); | 
| +  if (!plugin_download_url_for_display_) { | 
| +    webkit_glue::DownloadUrl(plugin_download_url_, hwnd()); | 
| } else { | 
| -    if (!plugin_download_url_for_display_) { | 
| -      webkit_glue::DownloadUrl(plugin_download_url_, hwnd()); | 
| -    } else { | 
| -      default_plugin::g_browser->geturl(instance(), | 
| -                                        plugin_download_url_.c_str(), | 
| -                                        "_blank"); | 
| -      set_plugin_installer_state(PluginInstallerLaunchSuccess); | 
| -      DisplayStatus(IDS_DEFAULT_PLUGIN_REFRESH_PLUGIN_MSG); | 
| -      enable_click_ = true; | 
| -      RefreshDisplay(); | 
| -    } | 
| +    default_plugin::g_browser->geturl(instance(), | 
| +                                      plugin_download_url_.c_str(), | 
| +                                      "_blank"); | 
| +    set_plugin_installer_state(PluginInstallerLaunchSuccess); | 
| +    DisplayStatus(IDS_DEFAULT_PLUGIN_REFRESH_PLUGIN_MSG); | 
| +    enable_click_ = true; | 
| +    RefreshDisplay(); | 
| } | 
| } | 
|  | 
| @@ -653,43 +612,6 @@ | 
| return 0; | 
| } | 
|  | 
| -LRESULT PluginInstallerImpl::OnActiveXInstallResult(UINT message, | 
| -                                                    WPARAM wparam, | 
| -                                                    LPARAM lparam, | 
| -                                                    BOOL& handled) { | 
| -  handled = TRUE; | 
| - | 
| -  if (SUCCEEDED(wparam)) { | 
| -    set_plugin_installer_state(PluginInstallerLaunchSuccess); | 
| -    DisplayStatus(IDS_DEFAULT_PLUGIN_REFRESH_PLUGIN_MSG); | 
| -    PostMessage(hwnd(), kRefreshPluginsMessage, 0, 0); | 
| -  } else if ((wparam == INET_E_UNKNOWN_PROTOCOL) || | 
| -             (wparam == HRESULT_FROM_WIN32(ERROR_MOD_NOT_FOUND))) { | 
| -    set_plugin_installer_state(PluginDownloadFailed); | 
| -    DisplayPluginDownloadFailedStatus(); | 
| -  } else { | 
| -    set_plugin_installer_state(PluginInstallerLaunchFailure); | 
| -    DisplayStatus(IDS_DEFAULT_PLUGIN_INSTALLATION_FAILED_MSG); | 
| -  } | 
| -  return 0; | 
| -} | 
| - | 
| -std::string PluginInstallerImpl::ResolveURL(NPP instance, | 
| -                                            const std::string& relative_url) { | 
| -  // The NPAPI functions may not be available if this function is called | 
| -  // as a result of a unit test. | 
| -  if (default_plugin::g_browser) { | 
| -    NPObject* object = NULL; | 
| -    default_plugin::g_browser->getvalue(instance, NPNVWindowNPObject, &object); | 
| -    activex_shim::NPNScriptableObject window(instance, object); | 
| -    std::wstring url = | 
| -        window.GetObjectProperty("document").GetStringProperty("URL"); | 
| -    GURL base(url); | 
| -    return base.Resolve(relative_url).spec(); | 
| -  } | 
| -  return relative_url; | 
| -} | 
| - | 
| bool PluginInstallerImpl::InitializeResources(HINSTANCE module_handle) { | 
| DCHECK(icon_ == NULL); | 
| DCHECK(regular_font_ == NULL); | 
| @@ -715,68 +637,6 @@ | 
| return true; | 
| } | 
|  | 
| -bool PluginInstallerImpl::ParseInstantiationArguments( | 
| -    NPMIMEType mime_type, | 
| -    NPP instance, | 
| -    int16 argc, | 
| -    char* argn[], | 
| -    char* argv[], | 
| -    std::string* raw_activex_clsid, | 
| -    bool* is_activex, | 
| -    std::string* activex_clsid, | 
| -    std::string* activex_codebase, | 
| -    std::string* plugin_download_url, | 
| -    std::string* plugin_finder_url) { | 
| - | 
| -  if (!raw_activex_clsid || !is_activex || !activex_clsid || | 
| -      !plugin_download_url || !plugin_finder_url || !activex_codebase) { | 
| -    NOTREACHED(); | 
| -    return false; | 
| -  } | 
| - | 
| -  *is_activex = false; | 
| - | 
| -  bool valid_mime_type = (mime_type != NULL ? strlen(mime_type) > 0 : false); | 
| - | 
| -  for (int i = 0; i < argc; ++i) { | 
| -    // We should only look for activex installation if the mime type passed in | 
| -    // is not valid. In any case this code will be taken out when we remove | 
| -    // the activex shim. | 
| -    if (!valid_mime_type && LowerCaseEqualsASCII(argn[i], "classid") && | 
| -        activex_shim::GetClsidFromClassidAttribute(argv[i], | 
| -                                                   raw_activex_clsid)) { | 
| -      *is_activex = true; | 
| -      *activex_clsid = std::string("{") + *raw_activex_clsid + "}"; | 
| -    } | 
| -    if (LowerCaseEqualsASCII(argn[i], "codebase")) { | 
| -      *activex_codebase = ResolveURL(instance, argv[i]); | 
| -      size_t pos = activex_codebase->find('#'); | 
| -      if (pos != std::string::npos) | 
| -        *plugin_download_url = activex_codebase->substr(0, pos); | 
| -      else | 
| -        *plugin_download_url = *activex_codebase; | 
| -    } | 
| -  } | 
| - | 
| -  if (!*is_activex) { | 
| -    if (!valid_mime_type || !instance) { | 
| -      DLOG(WARNING) << __FUNCTION__ << " Invalid parameters passed in"; | 
| -      NOTREACHED(); | 
| -      return false; | 
| -    } | 
| - | 
| -    if (!webkit_glue::GetPluginFinderURL(plugin_finder_url)) { | 
| -      NOTREACHED(); | 
| -      DLOG(WARNING) << __FUNCTION__ << " Failed to get the plugin finder URL"; | 
| -      return false; | 
| -    } | 
| - | 
| -    DLOG(INFO) << "Plugin finder URL is " << plugin_finder_url->c_str(); | 
| -  } | 
| - | 
| -  return true; | 
| -} | 
| - | 
| void PluginInstallerImpl::NotifyPluginStatus(int status) { | 
| default_plugin::g_browser->getvalue( | 
| instance_, | 
|  |