summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/plugin_installer.cc2
-rw-r--r--chrome/chrome_common.gypi2
-rw-r--r--chrome/chrome_tests.gypi2
-rw-r--r--chrome/common/DEPS2
-rw-r--r--chrome/common/default_plugin.cc2
-rw-r--r--chrome/default_plugin/DEPS4
-rw-r--r--chrome/default_plugin/default_plugin.gyp66
-rw-r--r--chrome/default_plugin/default_plugin_resources.h13
-rw-r--r--chrome/default_plugin/default_plugin_resources.rc31
-rw-r--r--chrome/default_plugin/install_dialog.cc203
-rw-r--r--chrome/default_plugin/install_dialog.h60
-rw-r--r--chrome/default_plugin/plugin_database_handler.cc358
-rw-r--r--chrome/default_plugin/plugin_database_handler.h156
-rw-r--r--chrome/default_plugin/plugin_impl.h11
-rw-r--r--chrome/default_plugin/plugin_impl_gtk.cc139
-rw-r--r--chrome/default_plugin/plugin_impl_gtk.h283
-rw-r--r--chrome/default_plugin/plugin_impl_mac.h285
-rw-r--r--chrome/default_plugin/plugin_impl_mac.mm179
-rw-r--r--chrome/default_plugin/plugin_impl_win.cc646
-rw-r--r--chrome/default_plugin/plugin_impl_win.h317
-rw-r--r--chrome/default_plugin/plugin_install_job_monitor.cc106
-rw-r--r--chrome/default_plugin/plugin_install_job_monitor.h81
-rw-r--r--chrome/default_plugin/plugin_main.cc336
-rw-r--r--chrome/default_plugin/plugin_main.h41
-rw-r--r--chrome/default_plugin/plugins.xml653
-rw-r--r--chrome/default_plugin/plugins2.xml59
-rw-r--r--chrome/renderer/render_view.cc2
27 files changed, 6 insertions, 4033 deletions
diff --git a/chrome/browser/plugin_installer.cc b/chrome/browser/plugin_installer.cc
index b7f38c5..4bbe22c 100644
--- a/chrome/browser/plugin_installer.cc
+++ b/chrome/browser/plugin_installer.cc
@@ -11,7 +11,7 @@
#include "chrome/browser/tab_contents/tab_contents.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
-#include "webkit/glue/plugins/default_plugin_shared.h"
+#include "webkit/default_plugin/default_plugin_shared.h"
PluginInstaller::PluginInstaller(TabContents* tab_contents)
: ConfirmInfoBarDelegate(tab_contents),
diff --git a/chrome/chrome_common.gypi b/chrome/chrome_common.gypi
index 8e3830c..08c643a 100644
--- a/chrome/chrome_common.gypi
+++ b/chrome/chrome_common.gypi
@@ -125,7 +125,6 @@
'chrome_strings',
'common_constants',
'common_net',
- 'default_plugin/default_plugin.gyp:default_plugin',
'theme_resources',
'../app/app.gyp:app_base',
'../app/app.gyp:app_resources',
@@ -142,6 +141,7 @@
'../third_party/sqlite/sqlite.gyp:sqlite',
'../third_party/zlib/zlib.gyp:zlib',
'../third_party/npapi/npapi.gyp:npapi',
+ '../webkit/default_plugin/default_plugin.gyp:default_plugin',
'../webkit/support/webkit_support.gyp:appcache',
'../webkit/support/webkit_support.gyp:glue',
],
diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi
index 62cf34a..16a1037 100644
--- a/chrome/chrome_tests.gypi
+++ b/chrome/chrome_tests.gypi
@@ -295,9 +295,9 @@
'../third_party/icu/icu.gyp:icuuc',
'../third_party/libxml/libxml.gyp:libxml',
# run time dependencies
- 'default_plugin/default_plugin.gyp:default_plugin',
'../third_party/ppapi/ppapi.gyp:ppapi_tests',
'../webkit/support/webkit_support.gyp:npapi_layout_test_plugin',
+ '../webkit/default_plugin/default_plugin.gyp:default_plugin',
],
'include_dirs': [
'..',
diff --git a/chrome/common/DEPS b/chrome/common/DEPS
index 2f3b9b0..75629ca 100644
--- a/chrome/common/DEPS
+++ b/chrome/common/DEPS
@@ -1,12 +1,12 @@
include_rules = [
"+chrome/plugin", # For checking whether we're a plugin process.
- "+chrome/default_plugin",
"+grit", # For generated headers
"+libxml",
"+media/audio",
"+remoting/client/plugin",
"+sandbox/src",
"+skia/include",
+ "+webkit/default_plugin",
"+webkit/glue",
# Other libraries.
diff --git a/chrome/common/default_plugin.cc b/chrome/common/default_plugin.cc
index bba738b..2dc8488 100644
--- a/chrome/common/default_plugin.cc
+++ b/chrome/common/default_plugin.cc
@@ -4,8 +4,8 @@
#include "chrome/common/default_plugin.h"
-#include "chrome/default_plugin/plugin_main.h"
#include "webkit/glue/plugins/plugin_list.h"
+#include "webkit/default_plugin/plugin_main.h"
namespace chrome {
diff --git a/chrome/default_plugin/DEPS b/chrome/default_plugin/DEPS
deleted file mode 100644
index a24c01b..0000000
--- a/chrome/default_plugin/DEPS
+++ /dev/null
@@ -1,4 +0,0 @@
-include_rules = [
- "+app",
- "+third_party/libxml",
-]
diff --git a/chrome/default_plugin/default_plugin.gyp b/chrome/default_plugin/default_plugin.gyp
deleted file mode 100644
index b2852bf..0000000
--- a/chrome/default_plugin/default_plugin.gyp
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright (c) 2009 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-{
- 'variables': {
- 'chromium_code': 1,
- },
- 'targets': [
- {
- 'target_name': 'default_plugin',
- 'type': '<(library)',
- 'dependencies': [
- '<(DEPTH)/net/net.gyp:net_resources',
- '<(DEPTH)/third_party/icu/icu.gyp:icui18n',
- '<(DEPTH)/third_party/icu/icu.gyp:icuuc',
- '<(DEPTH)/third_party/libxml/libxml.gyp:libxml',
- '<(DEPTH)/third_party/npapi/npapi.gyp:npapi',
- '<(DEPTH)/webkit/support/webkit_support.gyp:webkit_resources',
- '<(DEPTH)/webkit/support/webkit_support.gyp:webkit_strings',
- ],
- 'include_dirs': [
- '<(DEPTH)',
- '<(DEPTH)/third_party/wtl/include',
- ],
- 'sources': [
- 'plugin_impl_gtk.cc',
- 'plugin_impl_gtk.h',
- 'plugin_impl_mac.h',
- 'plugin_impl_mac.mm',
- 'plugin_impl_win.cc',
- 'plugin_impl_win.h',
- 'plugin_main.cc',
- 'plugin_main.h',
- ],
- 'conditions': [
- ['OS=="win"', {
- 'msvs_guid': '5916D37D-8C97-424F-A904-74E52594C2D6',
- 'link_settings': {
- 'libraries': ['-lurlmon.lib'],
- },
- 'sources': [
- 'default_plugin_resources.h',
- 'install_dialog.cc',
- 'install_dialog.h',
- 'plugin_database_handler.cc',
- 'plugin_database_handler.h',
- 'plugin_install_job_monitor.cc',
- 'plugin_install_job_monitor.h',
- ],
- }],
- ['OS=="linux"', {
- 'dependencies': [
- '<(DEPTH)/build/linux/system.gyp:gtk',
- ],
- }],
- ],
- },
- ],
-}
-
-# Local Variables:
-# tab-width:2
-# indent-tabs-mode:nil
-# End:
-# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/chrome/default_plugin/default_plugin_resources.h b/chrome/default_plugin/default_plugin_resources.h
deleted file mode 100644
index 6e6942c..0000000
--- a/chrome/default_plugin/default_plugin_resources.h
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#define IDD_DEFAULT_PLUGIN_INSTALL_DIALOG 2208
-#define IDI_DEFAULT_PLUGIN_ICON 2209
-#define IDB_GET_THE_PLUGIN 2210
-#define IDC_PLUGIN_MAIN_LABEL 2211
-#define IDC_PLUGIN_INSTALL_LABEL 2212
-#define IDC_PLUGIN_URL_LABEL 2213
-#define IDC_PLUGIN_INSTALL_CONFIRMATION_LABEL 2214
-#define IDC_PLUGIN_NAME 2215
-#define IDC_PLUGIN_NAME_VALUE 2216
diff --git a/chrome/default_plugin/default_plugin_resources.rc b/chrome/default_plugin/default_plugin_resources.rc
deleted file mode 100644
index 53460af..0000000
--- a/chrome/default_plugin/default_plugin_resources.rc
+++ /dev/null
@@ -1,31 +0,0 @@
-// Resources used by webkit/default_plugin.
-//
-// Paths in this file are relative to SolutionDir.
-
-#ifdef APSTUDIO_INVOKED
- #error // Don't open in the Visual Studio resource editor!
-#endif //APSTUDIO_INVOKED
-
-#include <winuser.h>
-#include "webkit\\default_plugin\\default_plugin_resources.h"
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog template for the plugin installation dialog.
-//
-IDD_DEFAULT_PLUGIN_INSTALL_DIALOG DIALOGEX 0, 0, 240, 130
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Plug-in Needed"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- DEFPUSHBUTTON "",IDB_GET_THE_PLUGIN,32,100,81,14
- PUSHBUTTON "",IDCANCEL,133,100,74,14
- LTEXT "",IDC_PLUGIN_INSTALL_CONFIRMATION_LABEL,17,50,204,27
-END
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon used by the default plugin window.
-//
-IDI_DEFAULT_PLUGIN_ICON ICON "webkit\\default_plugin\\default_plugin.ico"
diff --git a/chrome/default_plugin/install_dialog.cc b/chrome/default_plugin/install_dialog.cc
deleted file mode 100644
index e61001a..0000000
--- a/chrome/default_plugin/install_dialog.cc
+++ /dev/null
@@ -1,203 +0,0 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/default_plugin/install_dialog.h"
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/logging.h"
-#include "base/string_util.h"
-#include "chrome/default_plugin/plugin_impl.h"
-#include "grit/webkit_strings.h"
-#include "webkit/glue/webkit_glue.h"
-
-typedef base::hash_map<const std::wstring, PluginInstallDialog*> DialogMap;
-base::LazyInstance<DialogMap> s_dialogs(base::LINKER_INITIALIZED);
-
-PluginInstallDialog* PluginInstallDialog::AddInstaller(
- PluginInstallerImpl* plugin_impl, const std::wstring& plugin_name) {
- PluginInstallDialog* dialog;
- if (s_dialogs.Get().count(plugin_name)) {
- dialog = s_dialogs.Get()[plugin_name];
- } else {
- dialog = new PluginInstallDialog(plugin_name);
- }
-
- dialog->installers_.push_back(plugin_impl);
- return dialog;
-}
-
-PluginInstallDialog::PluginInstallDialog(const std::wstring& plugin_name)
- : plugin_name_(plugin_name) {
- s_dialogs.Get()[plugin_name] = this;
-}
-
-PluginInstallDialog::~PluginInstallDialog() {
- s_dialogs.Get().erase(plugin_name_);
- if (IsWindow())
- DestroyWindow();
-}
-
-void PluginInstallDialog::RemoveInstaller(PluginInstallerImpl* installer) {
- for (size_t i = 0; i < installers_.size(); ++i) {
- if (installers_[i] == installer) {
- installers_.erase(installers_.begin() + i);
- if (installers_.empty())
- delete this;
- return;
- }
- }
- NOTREACHED();
-}
-
-void PluginInstallDialog::ShowInstallDialog(HWND parent) {
- if (IsWindow())
- return;
-
- Create(parent, NULL);
- ShowWindow(SW_SHOW);
-}
-
-HWND PluginInstallDialog::Create(HWND parent_window, LPARAM init_param) {
- // Most of the code here is based on CDialogImpl<T>::Create.
- DCHECK(m_hWnd == NULL);
-
- // Allocate the thunk structure here, where we can fail
- // gracefully.
- BOOL thunk_inited = m_thunk.Init(NULL, NULL);
- if (thunk_inited == FALSE) {
- SetLastError(ERROR_OUTOFMEMORY);
- return NULL;
- }
-
- _AtlWinModule.AddCreateWndData(&m_thunk.cd, this);
-
-#ifdef _DEBUG
- m_bModal = false;
-#endif // _DEBUG
-
- HINSTANCE instance_handle = _AtlBaseModule.GetResourceInstance();
-
- HRSRC dialog_resource = FindResource(instance_handle,
- MAKEINTRESOURCE(IDD), RT_DIALOG);
- if (!dialog_resource) {
- NOTREACHED();
- return NULL;
- }
-
- HGLOBAL dialog_template = LoadResource(instance_handle,
- dialog_resource);
- if (!dialog_template) {
- NOTREACHED();
- return NULL;
- }
-
- _DialogSplitHelper::DLGTEMPLATEEX* dialog_template_struct =
- reinterpret_cast<_DialogSplitHelper::DLGTEMPLATEEX *>(
- ::LockResource(dialog_template));
- DCHECK(dialog_template_struct != NULL);
-
- unsigned long dialog_template_size =
- SizeofResource(instance_handle, dialog_resource);
-
- HGLOBAL rtl_layout_dialog_template = NULL;
-
- if (PluginInstallerImpl::IsRTLLayout()) {
- rtl_layout_dialog_template = GlobalAlloc(GPTR, dialog_template_size);
- DCHECK(rtl_layout_dialog_template != NULL);
-
- _DialogSplitHelper::DLGTEMPLATEEX* rtl_layout_dialog_template_struct =
- reinterpret_cast<_DialogSplitHelper::DLGTEMPLATEEX*>(
- ::GlobalLock(rtl_layout_dialog_template));
- DCHECK(rtl_layout_dialog_template_struct != NULL);
-
- memcpy(rtl_layout_dialog_template_struct, dialog_template_struct,
- dialog_template_size);
-
- rtl_layout_dialog_template_struct->exStyle |=
- (WS_EX_LAYOUTRTL | WS_EX_RTLREADING);
-
- dialog_template_struct = rtl_layout_dialog_template_struct;
- }
-
- HWND dialog_window =
- CreateDialogIndirectParam(
- instance_handle,
- reinterpret_cast<DLGTEMPLATE*>(dialog_template_struct),
- parent_window, StartDialogProc, init_param);
-
- DCHECK(m_hWnd == dialog_window);
-
- if (rtl_layout_dialog_template) {
- GlobalUnlock(rtl_layout_dialog_template);
- GlobalFree(rtl_layout_dialog_template);
- }
-
- return dialog_window;
-}
-
-
-LRESULT PluginInstallDialog::OnInitDialog(UINT message, WPARAM wparam,
- LPARAM lparam, BOOL& handled) {
- std::wstring dialog_title =
- PluginInstallerImpl::ReplaceStringForPossibleEmptyReplacement(
- IDS_DEFAULT_PLUGIN_CONFIRMATION_DIALOG_TITLE,
- IDS_DEFAULT_PLUGIN_CONFIRMATION_DIALOG_TITLE_NO_PLUGIN_NAME,
- plugin_name_);
- AdjustTextDirectionality(&dialog_title);
- SetWindowText(dialog_title.c_str());
-
- std::wstring get_the_plugin_btn_msg =
- webkit_glue::GetLocalizedString(
- IDS_DEFAULT_PLUGIN_GET_THE_PLUGIN_BTN_MSG);
- AdjustTextDirectionality(&get_the_plugin_btn_msg);
- SetDlgItemText(IDB_GET_THE_PLUGIN, get_the_plugin_btn_msg.c_str());
-
- std::wstring cancel_plugin_download_msg =
- webkit_glue::GetLocalizedString(
- IDS_DEFAULT_PLUGIN_CANCEL_PLUGIN_DOWNLOAD_MSG);
- AdjustTextDirectionality(&cancel_plugin_download_msg);
- SetDlgItemText(IDCANCEL, cancel_plugin_download_msg.c_str());
-
- std::wstring plugin_user_action_msg =
- PluginInstallerImpl::ReplaceStringForPossibleEmptyReplacement(
- IDS_DEFAULT_PLUGIN_USER_OPTION_MSG,
- IDS_DEFAULT_PLUGIN_USER_OPTION_MSG_NO_PLUGIN_NAME,
- plugin_name_);
- AdjustTextDirectionality(&plugin_user_action_msg);
- SetDlgItemText(IDC_PLUGIN_INSTALL_CONFIRMATION_LABEL,
- plugin_user_action_msg.c_str());
- return 0;
-}
-
-
-LRESULT PluginInstallDialog::OnGetPlugin(WORD notify_code, WORD id,
- HWND wnd_ctl, BOOL &handled) {
- DestroyWindow();
- if (!installers_.empty())
- installers_[0]->DownloadPlugin();
-
- return 0;
-}
-
-LRESULT PluginInstallDialog::OnCancel(WORD notify_code, WORD id, HWND wnd_ctl,
- BOOL &handled) {
- DestroyWindow();
- if (!installers_.empty())
- installers_[0]->DownloadCancelled();
- return 0;
-}
-
-// TODO(idana) bug# 1246452: use the library l10n_util once it is moved from
-// the Chrome module into the Base module. For now, we simply copy/paste the
-// same code.
-void PluginInstallDialog::AdjustTextDirectionality(std::wstring* text) const {
- if (PluginInstallerImpl::IsRTLLayout()) {
- // Inserting an RLE (Right-To-Left Embedding) mark as the first character.
- text->insert(0, L"\x202B");
-
- // Inserting a PDF (Pop Directional Formatting) mark as the last character.
- text->append(L"\x202C");
- }
-}
diff --git a/chrome/default_plugin/install_dialog.h b/chrome/default_plugin/install_dialog.h
deleted file mode 100644
index 601127dd..0000000
--- a/chrome/default_plugin/install_dialog.h
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_DEFAULT_PLUGIN_INSTALL_DIALOG_H_
-#define CHROME_DEFAULT_PLUGIN_INSTALL_DIALOG_H_
-
-#include <atlbase.h>
-#include <atlwin.h>
-#include <string>
-#include <vector>
-
-#include "chrome/default_plugin/default_plugin_resources.h"
-
-class PluginInstallerImpl;
-
-// Displays the plugin installation dialog containing information
-// about the mime type of the plugin being downloaded, the URL
-// where it would be downloaded from, etc.
-class PluginInstallDialog : public CDialogImpl<PluginInstallDialog> {
- public:
- enum {IDD = IDD_DEFAULT_PLUGIN_INSTALL_DIALOG};
-
- BEGIN_MSG_MAP(PluginInstallDialog)
- MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
- COMMAND_ID_HANDLER(IDB_GET_THE_PLUGIN, OnGetPlugin)
- COMMAND_ID_HANDLER(IDCANCEL, OnCancel)
- END_MSG_MAP()
-
- // Creates or returns the existing object for the given plugin name.
- // Call RemoveInstaller when done.
- static PluginInstallDialog* AddInstaller(PluginInstallerImpl* plugin_impl,
- const std::wstring& plugin_name);
-
- // Lets this object know that the given installer object is going away.
- void RemoveInstaller(PluginInstallerImpl* installer);
-
- void ShowInstallDialog(HWND parent);
-
- private:
- PluginInstallDialog(const std::wstring& plugin_name);
- ~PluginInstallDialog();
-
- // Implemented to ensure that we handle RTL layouts correctly.
- HWND Create(HWND parent_window, LPARAM init_param);
-
- LRESULT OnInitDialog(UINT message, WPARAM wparam, LPARAM lparam,
- BOOL& handled);
- LRESULT OnGetPlugin(WORD notify_code, WORD id, HWND wnd_ctl, BOOL &handled);
- LRESULT OnCancel(WORD notify_code, WORD id, HWND wnd_ctl, BOOL &handled);
-
- // Wraps the string with Unicode directionality characters in order to make
- // sure BiDi text is rendered correctly when the UI layout is right-to-left.
- void AdjustTextDirectionality(std::wstring* text) const;
-
- std::vector<PluginInstallerImpl*> installers_;
- std::wstring plugin_name_;
-};
-
-#endif // CHROME_DEFAULT_PLUGIN_INSTALL_DIALOG_H_
diff --git a/chrome/default_plugin/plugin_database_handler.cc b/chrome/default_plugin/plugin_database_handler.cc
deleted file mode 100644
index ab79752..0000000
--- a/chrome/default_plugin/plugin_database_handler.cc
+++ /dev/null
@@ -1,358 +0,0 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/default_plugin/plugin_database_handler.h"
-
-#if defined(USE_SYSTEM_LIBXML)
-#include <parser.h>
-#include <xpath.h>
-#else
-#include "third_party/libxml/include/libxml/parser.h"
-#include "third_party/libxml/include/libxml/xpath.h"
-#endif
-
-#include "base/file_util.h"
-#include "base/path_service.h"
-#include "base/string_util.h"
-#include "base/time.h"
-#include "base/utf_string_conversions.h"
-#include "chrome/default_plugin/plugin_impl.h"
-#include "chrome/default_plugin/plugin_main.h"
-
-using base::Time;
-using base::TimeDelta;
-
-PluginDatabaseHandler::PluginDatabaseHandler(
- PluginInstallerImpl& plugin_installer_instance)
- : plugin_downloads_file_(INVALID_HANDLE_VALUE),
- plugin_installer_instance_(plugin_installer_instance),
- ignore_plugin_db_data_(false) {
-}
-
-PluginDatabaseHandler::~PluginDatabaseHandler() {
- if (plugin_downloads_file_ != INVALID_HANDLE_VALUE) {
- ::CloseHandle(plugin_downloads_file_);
- plugin_downloads_file_ = INVALID_HANDLE_VALUE;
- }
-}
-
-bool PluginDatabaseHandler::DownloadPluginsFileIfNeeded(
- const std::string& plugin_finder_url) {
- DCHECK(!plugin_finder_url.empty());
- // The time in days for which the plugins list is cached.
- // TODO(iyengar) Make this configurable.
- const int kPluginsListCacheTimeInDays = 3;
-
- plugin_finder_url_ = plugin_finder_url;
-
- PathService::Get(base::DIR_MODULE, &plugins_file_);
- plugins_file_ += L"\\chrome_plugins_file.xml";
-
- bool initiate_download = false;
- if (!file_util::PathExists(FilePath::FromWStringHack(plugins_file_))) {
- initiate_download = true;
- } else {
- SYSTEMTIME creation_system_time = {0};
- if (!file_util::GetFileCreationLocalTime(plugins_file_,
- &creation_system_time)) {
- NOTREACHED();
- return false;
- }
-
- FILETIME creation_file_time = {0};
- ::SystemTimeToFileTime(&creation_system_time, &creation_file_time);
-
- FILETIME current_time = {0};
- ::GetSystemTimeAsFileTime(&current_time);
-
- Time file_time = Time::FromFileTime(creation_file_time);
- Time current_system_time = Time::FromFileTime(current_time);
-
- TimeDelta time_diff = file_time - current_system_time;
- if (time_diff.InDays() > kPluginsListCacheTimeInDays) {
- initiate_download = true;
- }
- }
-
- if (initiate_download) {
- DLOG(INFO) << "Initiating GetURLNotify on the plugin finder URL "
- << plugin_finder_url.c_str();
-
- plugin_installer_instance_.set_plugin_installer_state(
- PluginListDownloadInitiated);
-
- DCHECK(default_plugin::g_browser->geturlnotify);
- default_plugin::g_browser->geturlnotify(
- plugin_installer_instance_.instance(), plugin_finder_url.c_str(),
- NULL, NULL);
- } else {
- DLOG(INFO) << "Plugins file " << plugins_file_.c_str()
- << " already exists";
- plugin_downloads_file_ = ::CreateFile(plugins_file_.c_str(), GENERIC_READ,
- FILE_SHARE_READ, NULL, OPEN_EXISTING,
- FILE_ATTRIBUTE_NORMAL, NULL);
- if (plugin_downloads_file_ == INVALID_HANDLE_VALUE) {
- DLOG(INFO) << "Failed to open plugins file "
- << plugins_file_.c_str() << " Error "
- << ::GetLastError();
- NOTREACHED();
- return false;
- }
- // The URLNotify function contains all handling needed to parse the plugins
- // file and display the UI accordingly.
- plugin_installer_instance_.set_plugin_installer_state(
- PluginListDownloadInitiated);
- plugin_installer_instance_.URLNotify(plugin_finder_url.c_str(),
- NPRES_DONE);
- }
- return true;
-}
-
-int32 PluginDatabaseHandler::Write(NPStream* stream, int32 offset,
- int32 buffer_length, void* buffer) {
- if (ignore_plugin_db_data_) {
- return buffer_length;
- }
-
- if (plugin_downloads_file_ == INVALID_HANDLE_VALUE) {
- DLOG(INFO) << "About to create plugins file " << plugins_file_.c_str();
- plugin_downloads_file_ = CreateFile(plugins_file_.c_str(),
- GENERIC_READ | GENERIC_WRITE,
- FILE_SHARE_READ, NULL, CREATE_ALWAYS,
- FILE_ATTRIBUTE_NORMAL, NULL);
- if (plugin_downloads_file_ == INVALID_HANDLE_VALUE) {
- unsigned long error = ::GetLastError();
- if (error == ERROR_SHARING_VIOLATION) {
- // File may have been downloaded by another plugin instance on this
- // page.
- plugin_downloads_file_ = ::CreateFile(
- plugins_file_.c_str(), GENERIC_READ,
- FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING,
- FILE_ATTRIBUTE_NORMAL, NULL);
- if (plugin_downloads_file_ != INVALID_HANDLE_VALUE) {
- ignore_plugin_db_data_ = true;
- return buffer_length;
- }
- }
-
- DLOG(INFO) << "Failed to create plugins file "
- << plugins_file_.c_str() << " Error "
- << ::GetLastError();
- NOTREACHED();
- return 0;
- }
- }
-
- DWORD bytes_written = 0;
- if (0 == lstrcmpiA(stream->url, plugin_finder_url_.c_str())) {
- DCHECK(plugin_downloads_file_ != INVALID_HANDLE_VALUE);
-
- WriteFile(plugin_downloads_file_, buffer, buffer_length, &bytes_written,
- NULL);
- DCHECK_EQ(buffer_length, static_cast<int32>(bytes_written));
- }
- return bytes_written;
-}
-
-
-bool PluginDatabaseHandler::ParsePluginList() {
- if (plugin_downloads_file_ == INVALID_HANDLE_VALUE) {
- DLOG(WARNING) << "Invalid plugins file";
- NOTREACHED();
- return false;
- }
-
- bool parse_result = false;
-
- std::string plugins_file = WideToUTF8(plugins_file_.c_str());
- xmlDocPtr plugin_downloads_doc = xmlParseFile(plugins_file.c_str());
- if (plugin_downloads_doc == NULL) {
- DLOG(WARNING) << "Failed to parse plugins file " << plugins_file.c_str();
- return parse_result;
- }
-
- xmlXPathContextPtr context = NULL;
- xmlXPathObjectPtr plugins_result = NULL;
-
- do {
- context = xmlXPathNewContext(plugin_downloads_doc);
- if (context == NULL) {
- DLOG(WARNING) << "Failed to retrieve XPath context";
- NOTREACHED();
- parse_result = false;
- break;
- }
-
- plugins_result =
- xmlXPathEvalExpression(reinterpret_cast<const xmlChar*>("//plugin"),
- context);
- if ((plugins_result == NULL) ||
- xmlXPathNodeSetIsEmpty(plugins_result->nodesetval)) {
- DLOG(WARNING) << "Failed to find XPath //plugin";
- NOTREACHED();
- parse_result = false;
- break;
- }
-
- xmlNodeSetPtr plugin_list = plugins_result->nodesetval;
- for (int plugin_index = 0; plugin_index < plugin_list->nodeNr;
- ++plugin_index) {
- PluginDetail plugin_detail;
- if (!ReadPluginInfo(plugin_list->nodeTab[plugin_index]->children,
- &plugin_detail)) {
- DLOG(ERROR) << "Failed to read plugin details at index "
- << plugin_index;
- break;
- }
- downloaded_plugins_list_.push_back(plugin_detail);
- }
- if (downloaded_plugins_list_.size())
- parse_result = true;
- } while (0);
-
- xmlXPathFreeContext(context);
- xmlXPathFreeObject(plugins_result);
- xmlFreeDoc(plugin_downloads_doc);
- xmlCleanupParser();
- DLOG(INFO) << "Parse plugins file result " << parse_result;
- return parse_result;
-}
-
-bool PluginDatabaseHandler::GetPluginDetailsForMimeType(
- const char* mime_type, const char* language,
- std::string* download_url, std::wstring* plugin_name,
- bool* download_url_for_display) {
- if (!mime_type || !language || !download_url || !plugin_name ||
- !download_url_for_display) {
- NOTREACHED();
- return false;
- }
-
- PluginList::iterator plugin_index;
- for (plugin_index = downloaded_plugins_list_.begin();
- plugin_index != downloaded_plugins_list_.end();
- ++plugin_index) {
- PluginDetail& current_plugin = *plugin_index;
-
- std::vector<std::string>::iterator mime_type_index;
- for (mime_type_index = current_plugin.mime_types.begin();
- mime_type_index != current_plugin.mime_types.end();
- ++mime_type_index) {
- if ((0 == lstrcmpiA(mime_type, (*mime_type_index).c_str())) &&
- (0 == lstrcmpiA(language, current_plugin.language.c_str()))) {
- *download_url = current_plugin.download_url;
- *plugin_name = current_plugin.display_name;
- *download_url_for_display = current_plugin.download_url_for_display;
- return true;
- }
- }
- }
- return false;
-}
-
-void PluginDatabaseHandler::Close(bool delete_file) {
- if (plugin_downloads_file_ != INVALID_HANDLE_VALUE) {
- ::CloseHandle(plugin_downloads_file_);
- plugin_downloads_file_ = INVALID_HANDLE_VALUE;
- if (delete_file) {
- ::DeleteFile(plugins_file_.c_str());
- plugins_file_.clear();
- }
- }
-}
-
-bool PluginDatabaseHandler::ReadPluginInfo(_xmlNode* plugin_node,
- PluginDetail* plugin_detail) {
- static const char kMimeTypeSeparator = ';';
-
- if (!plugin_node) {
- NOTREACHED();
- return false;
- }
-
- _xmlNode* plugin_mime_type = plugin_node->next;
- if ((plugin_mime_type == NULL) ||
- (plugin_mime_type->next == NULL)) {
- DLOG(WARNING) << "Failed to find mime type node in file";
- NOTREACHED();
- return false;
- }
- _xmlNode* plugin_mime_type_vals = plugin_mime_type->children;
- if (plugin_mime_type_vals == NULL) {
- DLOG(WARNING) << "Invalid mime type";
- NOTREACHED();
- return false;
- }
- // Skip the first child of each node as it is the text element
- // for that node.
- _xmlNode* plugin_lang_node = plugin_mime_type->next->next;
- if ((plugin_lang_node == NULL) ||
- (plugin_lang_node->next == NULL)) {
- DLOG(WARNING) << "Failed to find plugin language node";
- NOTREACHED();
- return false;
- }
- _xmlNode* plugin_lang_val = plugin_lang_node->children;
- if (plugin_lang_val == NULL) {
- DLOG(WARNING) << "Invalid plugin language";
- NOTREACHED();
- return false;
- }
- _xmlNode* plugin_name_node = plugin_lang_node->next->next;
- if ((plugin_name_node == NULL) ||
- (plugin_name_node->next == NULL)) {
- DLOG(WARNING) << "Failed to find plugin name node";
- NOTREACHED();
- return false;
- }
- _xmlNode* plugin_name_val = plugin_name_node->children;
- if (plugin_name_val == NULL) {
- DLOG(WARNING) << "Invalid plugin name";
- NOTREACHED();
- return false;
- }
- _xmlNode* plugin_download_url_node = plugin_name_node->next->next;
- if (plugin_download_url_node == NULL) {
- DLOG(WARNING) << "Failed to find plugin URL node";
- NOTREACHED();
- return false;
- }
- _xmlNode* plugin_download_url_val = plugin_download_url_node->children;
- if (plugin_download_url_val == NULL) {
- DLOG(WARNING) << "Invalid plugin URL";
- NOTREACHED();
- return false;
- }
-
- // Look for the DisplayUrl node. By default every URL is treated as an
- // executable URL.
- plugin_detail->download_url_for_display = false;
-
- _xmlNode* plugin_download_url_for_display_node =
- plugin_download_url_node->next->next;
- if (plugin_download_url_for_display_node) {
- _xmlNode* url_for_display_val =
- plugin_download_url_for_display_node->children;
- if (url_for_display_val) {
- int url_for_display = 0;
- StringToInt(reinterpret_cast<const char*>(url_for_display_val->content),
- &url_for_display);
- if (url_for_display != 0)
- plugin_detail->download_url_for_display = true;
- }
- }
-
- plugin_detail->display_name =
- UTF8ToWide(reinterpret_cast<const char*>(plugin_name_val->content));
- plugin_detail->download_url =
- reinterpret_cast<const char*>(plugin_download_url_val->content);
-
- SplitString(reinterpret_cast<const char*>(plugin_mime_type_vals->content),
- kMimeTypeSeparator, &plugin_detail->mime_types);
-
- plugin_detail->language =
- reinterpret_cast<const char*>(plugin_lang_val->content);
-
- return true;
-}
diff --git a/chrome/default_plugin/plugin_database_handler.h b/chrome/default_plugin/plugin_database_handler.h
deleted file mode 100644
index fcbdfd0..0000000
--- a/chrome/default_plugin/plugin_database_handler.h
+++ /dev/null
@@ -1,156 +0,0 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_DEFAULT_PLUGIN_PLUGIN_DATABASE_HANDLER_H_
-#define CHROME_DEFAULT_PLUGIN_PLUGIN_DATABASE_HANDLER_H_
-
-#include <windows.h>
-#include <string>
-#include <vector>
-
-#include "base/basictypes.h"
-#include "third_party/npapi/bindings/npapi.h"
-
-// Individual plugin details
-struct PluginDetail {
- // List of mime types supported by the plugin.
- std::vector<std::string> mime_types;
- // The URL where the plugin can be downloaded from.
- std::string download_url;
- // The display name for the plugin.
- std::wstring display_name;
- // Language of the plugin installer. (en-us, etc).
- std::string language;
- // Indicates if the download URL points to an exe or to a URL which
- // needs to be displayed in a tab.
- bool download_url_for_display;
-};
-
-typedef std::vector<PluginDetail> PluginList;
-
-class PluginInstallerImpl;
-struct _xmlNode;
-
-// This class handles download of the plugins database file from the plugin
-// finder URL passed in. It also provides functionality to parse the plugins
-// file and to locate the desired plugin mime type in the parsed plugin list.
-// The format of the plugins databse file is as below:-
-// <plugins>
-// <plugin>
-// <mime_types> </mime_types> (semicolon separated list of mime types
-// supported by the plugin)
-// <lang> </lang> (Supported language)
-// <url> </url> (Link to the plugin installer)
-// <displayurl> 0 </displayurl> (Indicates if the URL is a display URL.
-// defaults to 0.
-// </plugin>
-// <plugin>
-// </plugins>
-class PluginDatabaseHandler {
- public:
- // plugin_installer_instance is a reference maintained to the current
- // PluginInstallerImpl instance.
- explicit PluginDatabaseHandler(
- PluginInstallerImpl& plugin_installer_instance);
-
- virtual ~PluginDatabaseHandler();
-
- // Downloads the plugins database file if needed.
- //
- // Parameters:
- // plugin_finder_url
- // Specifies the http/https location of the chrome plugin finder.
- // Returns true on success.
- bool DownloadPluginsFileIfNeeded(const std::string& plugin_finder_url);
-
- // Writes data to the plugins database file.
- //
- // Parameters:
- // stream
- // Pointer to the current stream.
- // offset
- // Indicates the data offset.
- // buffer_length
- // Specifies the length of the data buffer.
- // buffer
- // Pointer to the actual buffer.
- // Returns the number of bytes actually written, 0 on error.
- int32 Write(NPStream* stream, int32 offset, int32 buffer_length,
- void* buffer);
-
- const std::wstring& plugins_file() const {
- return plugins_file_;
- }
-
- // Parses the XML file containing the list of available third-party
- // plugins and adds them to a list.
- // Returns true on success
- bool ParsePluginList();
-
- // Returns the plugin details for the third party plugin mime type passed in.
- //
- // Parameters:
- // mime_type
- // Specifies the mime type of the desired third party plugin.
- // language
- // Specifies the desired plugin language.
- // download_url
- // Output parameter which contans the plugin download URL on success.
- // display_name
- // Output parameter which contains the display name of the plugin on
- // success.
- // download_url_for_display
- // Output parameter which indicates if the plugin URL points to an exe
- // or not.
- // Returns true if the plugin details were found.
- bool GetPluginDetailsForMimeType(const char* mime_type,
- const char* language,
- std::string* download_url,
- std::wstring* display_name,
- bool* download_url_for_display);
-
- // Closes the handle to the plugin database file.
- //
- // Parameters:
- // delete_file
- // Indicates if the plugin database file should be deleted.
- void Close(bool delete_file);
-
- protected:
- // Reads plugin information off an individual XML node.
- //
- // Parameters:
- // plugin_node
- // Pointer to the plugin XML node.
- // plugin_detail
- // Output parameter which contains the details of the plugin on success.
- // Returns true on success.
- bool ReadPluginInfo(_xmlNode* plugin_node, PluginDetail* plugin_detail);
-
- private:
- // Contains the full path of the downloaded plugins file containing
- // information about available third party plugin downloads.
- std::wstring plugins_file_;
- // Handle to the downloaded plugins file.
- HANDLE plugin_downloads_file_;
- // List of downloaded plugins. This is generated the first time the
- // plugins file is downloaded and parsed. Each item in the list is
- // of the type PluginDetail, and contains information about the third
- // party plugin like it's mime type, download link, etc.
- PluginList downloaded_plugins_list_;
- // We maintain a reference to the PluginInstallerImpl instance to be able
- // to achieve plugin installer state changes and to notify the instance
- // about download completions.
- PluginInstallerImpl& plugin_installer_instance_;
- // The plugin finder url
- std::string plugin_finder_url_;
- // Set if the current instance should ignore plugin data. This is required
- // if multiple null plugin instances attempt to download the plugin
- // database. In this case the first instance to create the plugins database
- // file locally writes to the file. The remaining instances ignore the
- // downloaded data.
- bool ignore_plugin_db_data_;
-};
-
-#endif // CHROME_DEFAULT_PLUGIN_PLUGIN_DATABASE_HANDLER_H_
diff --git a/chrome/default_plugin/plugin_impl.h b/chrome/default_plugin/plugin_impl.h
deleted file mode 100644
index 45e0af3..0000000
--- a/chrome/default_plugin/plugin_impl.h
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#if defined(OS_WIN)
-#include "chrome/default_plugin/plugin_impl_win.h"
-#elif defined(OS_MACOSX)
-#include "chrome/default_plugin/plugin_impl_mac.h"
-#elif defined(TOOLKIT_USES_GTK)
-#include "chrome/default_plugin/plugin_impl_gtk.h"
-#endif
diff --git a/chrome/default_plugin/plugin_impl_gtk.cc b/chrome/default_plugin/plugin_impl_gtk.cc
deleted file mode 100644
index 19b960e..0000000
--- a/chrome/default_plugin/plugin_impl_gtk.cc
+++ /dev/null
@@ -1,139 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/default_plugin/plugin_impl_gtk.h"
-
-#include <gdk/gdkx.h>
-
-#include "base/file_util.h"
-#include "base/path_service.h"
-#include "base/string_util.h"
-#include "chrome/default_plugin/plugin_main.h"
-#include "googleurl/src/gurl.h"
-#include "grit/webkit_strings.h"
-#include "unicode/locid.h"
-#include "webkit/glue/webkit_glue.h"
-#include "webkit/glue/plugins/default_plugin_shared.h"
-
-// TODO(thakis): Most methods in this class are stubbed out an need to be
-// implemented.
-
-PluginInstallerImpl::PluginInstallerImpl(int16 mode)
- : container_(NULL) {
-}
-
-PluginInstallerImpl::~PluginInstallerImpl() {
- if (container_)
- gtk_widget_destroy(container_);
-}
-
-bool PluginInstallerImpl::Initialize(void* module_handle, NPP instance,
- NPMIMEType mime_type, int16 argc,
- char* argn[], char* argv[]) {
- DLOG(INFO) << __FUNCTION__ << " MIME Type : " << mime_type;
- DCHECK(instance != 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;
-
- return true;
-}
-
-bool PluginInstallerImpl::NPP_SetWindow(NPWindow* window_info) {
- if (container_)
- gtk_widget_destroy(container_);
- container_ = gtk_plug_new(reinterpret_cast<XID>(window_info->window));
-
- // Add label.
- GtkWidget* box = gtk_vbox_new(FALSE, 0);
- GtkWidget* label = gtk_label_new("Missing Plug-in");
- gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 0);
- gtk_container_add(GTK_CONTAINER(container_), box);
-
- gtk_widget_show_all(container_);
-
- return true;
-}
-
-void PluginInstallerImpl::Shutdown() {
-}
-
-void PluginInstallerImpl::NewStream(NPStream* stream) {
- plugin_install_stream_ = stream;
-}
-
-void PluginInstallerImpl::DestroyStream(NPStream* stream, NPError reason) {
- if (stream == plugin_install_stream_)
- plugin_install_stream_ = NULL;
-}
-
-bool PluginInstallerImpl::WriteReady(NPStream* stream) {
- bool ready_to_accept_data = false;
- return ready_to_accept_data;
-}
-
-int32 PluginInstallerImpl::Write(NPStream* stream, int32 offset,
- int32 buffer_length, void* buffer) {
- return true;
-}
-
-void PluginInstallerImpl::ClearDisplay() {
-}
-
-void PluginInstallerImpl::RefreshDisplay() {
-}
-
-bool PluginInstallerImpl::CreateToolTip() {
- return true;
-}
-
-void PluginInstallerImpl::UpdateToolTip() {
-}
-
-void PluginInstallerImpl::DisplayAvailablePluginStatus() {
-}
-
-void PluginInstallerImpl::DisplayStatus(int message_resource_id) {
-}
-
-void PluginInstallerImpl::DisplayPluginDownloadFailedStatus() {
-}
-
-void PluginInstallerImpl::URLNotify(const char* url, NPReason reason) {
-}
-
-int16 PluginInstallerImpl::NPP_HandleEvent(void* event) {
- return 0;
-}
-
-std::wstring PluginInstallerImpl::ReplaceStringForPossibleEmptyReplacement(
- int message_id_with_placeholders,
- int messsage_id_without_placeholders,
- const std::wstring& replacement_string) {
- return L"";
-}
-
-void PluginInstallerImpl::DownloadPlugin() {
-}
-
-void PluginInstallerImpl::DownloadCancelled() {
- DisplayAvailablePluginStatus();
-}
-
-void PluginInstallerImpl::ShowInstallDialog() {
-}
-
-void PluginInstallerImpl::NotifyPluginStatus(int status) {
- default_plugin::g_browser->getvalue(
- instance_,
- static_cast<NPNVariable>(
- default_plugin::kMissingPluginStatusStart + status),
- NULL);
-}
diff --git a/chrome/default_plugin/plugin_impl_gtk.h b/chrome/default_plugin/plugin_impl_gtk.h
deleted file mode 100644
index ec63218..0000000
--- a/chrome/default_plugin/plugin_impl_gtk.h
+++ /dev/null
@@ -1,283 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_DEFAULT_PLUGIN_PLUGIN_IMPL_GTK_H_
-#define CHROME_DEFAULT_PLUGIN_PLUGIN_IMPL_GTK_H_
-
-#include <string>
-#include <vector>
-
-#include <gtk/gtk.h>
-
-#include "gfx/native_widget_types.h"
-#include "third_party/npapi/bindings/npapi.h"
-
-// Possible plugin installer states.
-enum PluginInstallerState {
- PluginInstallerStateUndefined,
- PluginListDownloadInitiated,
- PluginListDownloaded,
- PluginListDownloadedPluginNotFound,
- PluginListDownloadFailed,
- PluginDownloadInitiated,
- PluginDownloadCompleted,
- PluginDownloadFailed,
- PluginInstallerLaunchSuccess,
- PluginInstallerLaunchFailure
-};
-
-class PluginInstallDialog;
-class PluginDatabaseHandler;
-
-// Provides the plugin installation functionality. This class is
-// instantiated with the information like the mime type of the
-// target plugin, the display mode, etc.
-class PluginInstallerImpl {
- public:
- // mode is the plugin instantiation mode, i.e. whether it is a full
- // page plugin (NP_FULL) or an embedded plugin (NP_EMBED)
- explicit PluginInstallerImpl(int16 mode);
- virtual ~PluginInstallerImpl();
-
- // Initializes the plugin with the instance information, mime type
- // and the list of parameters passed down to the plugin from the webpage.
- //
- // Parameters:
- // module_handle
- // The handle to the dll in which this object is instantiated.
- // instance
- // The plugins opaque instance handle.
- // mime_type
- // Identifies the third party plugin which would be eventually installed.
- // argc
- // Indicates the count of arguments passed in from the webpage.
- // argv
- // Pointer to the arguments.
- // Returns true on success.
- bool Initialize(void* module_handle, NPP instance, NPMIMEType mime_type,
- int16 argc, char* argn[], char* argv[]);
-
- // Informs the plugin of its window information.
- //
- // Parameters:
- // window_info
- // The window info passed to npapi.
- bool NPP_SetWindow(NPWindow* window_info);
-
- // Destroys the install dialog.
- void Shutdown();
-
- // Starts plugin download. Spawns the plugin installer after it is
- // downloaded.
- void DownloadPlugin();
-
- // Indicates that the plugin download was cancelled.
- void DownloadCancelled();
-
- // Initializes the plugin download stream.
- //
- // Parameters:
- // stream
- // Pointer to the new stream being created.
- void NewStream(NPStream* stream);
-
- // Uninitializes the plugin download stream.
- //
- // Parameters:
- // stream
- // Pointer to the stream being destroyed.
- // reason
- // Indicates why the stream is being destroyed.
- //
- void DestroyStream(NPStream* stream, NPError reason);
-
- // Determines whether the plugin is ready to accept data.
- // We only accept data when we have initiated a download for the plugin
- // database.
- //
- // Parameters:
- // stream
- // Pointer to the stream being destroyed.
- // Returns true if the plugin is ready to accept data.
- bool WriteReady(NPStream* stream);
-
- // Delivers data to the plugin instance.
- //
- // Parameters:
- // stream
- // Pointer to the stream being destroyed.
- // offset
- // Indicates the data offset.
- // buffer_length
- // Indicates the length of the data buffer.
- // buffer
- // Pointer to the actual buffer.
- // Returns the number of bytes actually written, 0 on error.
- int32 Write(NPStream* stream, int32 offset, int32 buffer_length,
- void* buffer);
-
- // Handles notifications received in response to GetURLNotify calls issued
- // by the plugin.
- //
- // Parameters:
- // url
- // Pointer to the URL.
- // reason
- // Describes why the notification was sent.
- void URLNotify(const char* url, NPReason reason);
-
- // Used by the renderer to indicate plugin install through the infobar.
- int16 NPP_HandleEvent(void* event);
-
- const std::string& mime_type() const { return mime_type_; }
-
- // Replaces a resource string with the placeholder passed in as an argument
- //
- // Parameters:
- // message_id_with_placeholders
- // The resource id of the string with placeholders. This is only used if
- // the placeholder string (the replacement_string) parameter is valid.
- // message_id_without_placeholders
- // The resource id of the string to be returned if the placeholder is
- // empty.
- // replacement_string
- // The placeholder which replaces tokens in the string identified by
- // resource id message_id_with_placeholders.
- // Returns a string which has the placeholders replaced, or the string
- // without placeholders.
- static std::wstring ReplaceStringForPossibleEmptyReplacement(
- int message_id_with_placeholders, int message_id_without_placeholders,
- const std::wstring& replacement_string);
-
- // Setter/getter combination to set and retreieve the current
- // state of the plugin installer.
- void set_plugin_installer_state(PluginInstallerState new_state) {
- plugin_installer_state_ = new_state;
- }
-
- PluginInstallerState plugin_installer_state() const {
- return plugin_installer_state_;
- }
-
- // Getter for the NPP instance member.
- const NPP instance() const {
- return instance_;
- }
-
- // Returns whether or not the UI layout is right-to-left (such as Hebrew or
- // Arabic).
- bool IsRTLLayout() const;
-
- protected:
- // Displays the plugin install confirmation dialog.
- void ShowInstallDialog();
-
- // Clears the current display state.
- void ClearDisplay();
-
- // Displays the status message identified by the message resource id
- // passed in.
- //
- // Parameters:
- // message_resource_id parameter
- // The resource id of the message to be displayed.
- void DisplayStatus(int message_resource_id);
-
- // Displays status information for the third party plugin which is needed
- // by the page.
- void DisplayAvailablePluginStatus();
-
- // Displays information related to third party plugin download failure.
- void DisplayPluginDownloadFailedStatus();
-
- // Enables the plugin window if required and initiates an update of the
- // the plugin window.
- void RefreshDisplay();
-
- // Create tooltip window.
- bool CreateToolTip();
-
- // Update ToolTip text with the message shown inside the default plugin.
- void UpdateToolTip();
-
- // Resolves the relative URL (could be already an absolute URL too) to return
- // full URL based on current document's URL and base.
- //
- // Parameters:
- // instance
- // The plugins opaque instance handle.
- // relative_url
- // The URL to be resolved.
- // Returns the resolved URL.
- std::string ResolveURL(NPP instance, const std::string& relative_url);
-
- // Initializes resources like the icon, fonts, etc needed by the plugin
- // installer
- //
- // Parameters:
- // module_handle
- // Handle to the dll in which this object is instantiated.
- // Returns true on success.
- bool InitializeResources(void *module_handle);
-
- // Parses the plugin instantiation arguments. This includes checking for
- // whether this is an activex install and reading the appropriate
- // arguments like codebase, etc. For plugin installs we download the
- // plugin finder URL and initalize the mime type and the plugin instance
- // info.
- //
- // Parameters:
- // module_handle
- // The handle to the dll in which this object is instantiated.
- // instance
- // The plugins opaque instance handle.
- // mime_type
- // Identifies the third party plugin which would be eventually installed.
- // argc
- // Indicates the count of arguments passed in from the webpage.
- // argv
- // Pointer to the arguments.
- // raw_activex_clsid
- // Output parameter which contains the CLSID of the Activex plugin needed.
- // This is only applicable if the webpage specifically requests an ActiveX
- // control.
- // Returns true on success.
- bool ParseInstantiationArguments(NPMIMEType mime_type, NPP instance,
- int16 argc, char* argn[], char* argv[],
- std::string* raw_activex_clsid);
-
- // Paints user action messages to the plugin window. These include messages
- // like whether the user should click on the plugin window to download the
- // plugin, etc.
- //
- // Parameters:
- // paint_dc
- // The device context returned in BeginPaint.
- // x_origin
- // Horizontal reference point indicating where the text is to be displayed.
- // y_origin
- // Vertical reference point indicating where the text is to be displayed.
- //
- void PaintUserActionInformation(gfx::NativeDrawingContext paint_dc,
- int x_origin, int y_origin);
-
- private:
- // Notify the renderer that plugin is available to download.
- void NotifyPluginStatus(int status);
-
- // The plugins opaque instance handle
- NPP instance_;
- // The current stream.
- NPStream* plugin_install_stream_;
- // The desired mime type.
- std::string mime_type_;
- // The current state of the plugin installer.
- PluginInstallerState plugin_installer_state_;
- // GtkPlug containing everything in the plugin.
- GtkWidget* container_;
-
- DISALLOW_COPY_AND_ASSIGN(PluginInstallerImpl);
-};
-
-#endif // CHROME_DEFAULT_PLUGIN_PLUGIN_IMPL_GTK_H_
diff --git a/chrome/default_plugin/plugin_impl_mac.h b/chrome/default_plugin/plugin_impl_mac.h
deleted file mode 100644
index 9e3b7fc..0000000
--- a/chrome/default_plugin/plugin_impl_mac.h
+++ /dev/null
@@ -1,285 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_DEFAULT_PLUGIN_PLUGIN_IMPL_MAC_H_
-#define CHROME_DEFAULT_PLUGIN_PLUGIN_IMPL_MAC_H_
-
-#include <string>
-#include <vector>
-
-#include "gfx/native_widget_types.h"
-#include "third_party/npapi/bindings/npapi.h"
-
-// Possible plugin installer states.
-enum PluginInstallerState {
- PluginInstallerStateUndefined,
- PluginListDownloadInitiated,
- PluginListDownloaded,
- PluginListDownloadedPluginNotFound,
- PluginListDownloadFailed,
- PluginDownloadInitiated,
- PluginDownloadCompleted,
- PluginDownloadFailed,
- PluginInstallerLaunchSuccess,
- PluginInstallerLaunchFailure
-};
-
-class PluginInstallDialog;
-class PluginDatabaseHandler;
-
-// Provides the plugin installation functionality. This class is
-// instantiated with the information like the mime type of the
-// target plugin, the display mode, etc.
-class PluginInstallerImpl {
- public:
- // mode is the plugin instantiation mode, i.e. whether it is a full
- // page plugin (NP_FULL) or an embedded plugin (NP_EMBED)
- explicit PluginInstallerImpl(int16 mode);
- virtual ~PluginInstallerImpl();
-
- // Initializes the plugin with the instance information, mime type
- // and the list of parameters passed down to the plugin from the webpage.
- //
- // Parameters:
- // module_handle
- // The handle to the dll in which this object is instantiated.
- // instance
- // The plugins opaque instance handle.
- // mime_type
- // Identifies the third party plugin which would be eventually installed.
- // argc
- // Indicates the count of arguments passed in from the webpage.
- // argv
- // Pointer to the arguments.
- // Returns true on success.
- bool Initialize(void* module_handle, NPP instance, NPMIMEType mime_type,
- int16 argc, char* argn[], char* argv[]);
-
- // Informs the plugin of its window information.
- //
- // Parameters:
- // window_info
- // The window info passed to npapi.
- bool NPP_SetWindow(NPWindow* window_info);
-
- // Destroys the install dialog.
- void Shutdown();
-
- // Starts plugin download. Spawns the plugin installer after it is
- // downloaded.
- void DownloadPlugin();
-
- // Indicates that the plugin download was cancelled.
- void DownloadCancelled();
-
- // Initializes the plugin download stream.
- //
- // Parameters:
- // stream
- // Pointer to the new stream being created.
- void NewStream(NPStream* stream);
-
- // Uninitializes the plugin download stream.
- //
- // Parameters:
- // stream
- // Pointer to the stream being destroyed.
- // reason
- // Indicates why the stream is being destroyed.
- //
- void DestroyStream(NPStream* stream, NPError reason);
-
- // Determines whether the plugin is ready to accept data.
- // We only accept data when we have initiated a download for the plugin
- // database.
- //
- // Parameters:
- // stream
- // Pointer to the stream being destroyed.
- // Returns true if the plugin is ready to accept data.
- bool WriteReady(NPStream* stream);
-
- // Delivers data to the plugin instance.
- //
- // Parameters:
- // stream
- // Pointer to the stream being destroyed.
- // offset
- // Indicates the data offset.
- // buffer_length
- // Indicates the length of the data buffer.
- // buffer
- // Pointer to the actual buffer.
- // Returns the number of bytes actually written, 0 on error.
- int32 Write(NPStream* stream, int32 offset, int32 buffer_length,
- void* buffer);
-
- // Handles notifications received in response to GetURLNotify calls issued
- // by the plugin.
- //
- // Parameters:
- // url
- // Pointer to the URL.
- // reason
- // Describes why the notification was sent.
- void URLNotify(const char* url, NPReason reason);
-
- // Used by the renderer to indicate plugin install through the infobar.
- int16 NPP_HandleEvent(void* event);
-
- const std::string& mime_type() const { return mime_type_; }
-
- // Replaces a resource string with the placeholder passed in as an argument
- //
- // Parameters:
- // message_id_with_placeholders
- // The resource id of the string with placeholders. This is only used if
- // the placeholder string (the replacement_string) parameter is valid.
- // message_id_without_placeholders
- // The resource id of the string to be returned if the placeholder is
- // empty.
- // replacement_string
- // The placeholder which replaces tokens in the string identified by
- // resource id message_id_with_placeholders.
- // Returns a string which has the placeholders replaced, or the string
- // without placeholders.
- static std::wstring ReplaceStringForPossibleEmptyReplacement(
- int message_id_with_placeholders, int message_id_without_placeholders,
- const std::wstring& replacement_string);
-
- // Setter/getter combination to set and retreieve the current
- // state of the plugin installer.
- void set_plugin_installer_state(PluginInstallerState new_state) {
- plugin_installer_state_ = new_state;
- }
-
- PluginInstallerState plugin_installer_state() const {
- return plugin_installer_state_;
- }
-
- // Getter for the NPP instance member.
- const NPP instance() const {
- return instance_;
- }
-
- // Returns whether or not the UI layout is right-to-left (such as Hebrew or
- // Arabic).
- bool IsRTLLayout() const;
-
- protected:
- int16 OnDrawRect(CGContextRef context, CGRect dirty_rect);
-
- // Displays the plugin install confirmation dialog.
- void ShowInstallDialog();
-
- // Clears the current display state.
- void ClearDisplay();
-
- // Displays the status message identified by the message resource id
- // passed in.
- //
- // Parameters:
- // message_resource_id parameter
- // The resource id of the message to be displayed.
- void DisplayStatus(int message_resource_id);
-
- // Displays status information for the third party plugin which is needed
- // by the page.
- void DisplayAvailablePluginStatus();
-
- // Displays information related to third party plugin download failure.
- void DisplayPluginDownloadFailedStatus();
-
- // Enables the plugin window if required and initiates an update of the
- // the plugin window.
- void RefreshDisplay();
-
- // Create tooltip window.
- bool CreateToolTip();
-
- // Update ToolTip text with the message shown inside the default plugin.
- void UpdateToolTip();
-
- // Resolves the relative URL (could be already an absolute URL too) to return
- // full URL based on current document's URL and base.
- //
- // Parameters:
- // instance
- // The plugins opaque instance handle.
- // relative_url
- // The URL to be resolved.
- // Returns the resolved URL.
- std::string ResolveURL(NPP instance, const std::string& relative_url);
-
- // Initializes resources like the icon, fonts, etc needed by the plugin
- // installer
- //
- // Parameters:
- // module_handle
- // Handle to the dll in which this object is instantiated.
- // Returns true on success.
- bool InitializeResources(void *module_handle);
-
- // Parses the plugin instantiation arguments. This includes checking for
- // whether this is an activex install and reading the appropriate
- // arguments like codebase, etc. For plugin installs we download the
- // plugin finder URL and initalize the mime type and the plugin instance
- // info.
- //
- // Parameters:
- // module_handle
- // The handle to the dll in which this object is instantiated.
- // instance
- // The plugins opaque instance handle.
- // mime_type
- // Identifies the third party plugin which would be eventually installed.
- // argc
- // Indicates the count of arguments passed in from the webpage.
- // argv
- // Pointer to the arguments.
- // raw_activex_clsid
- // Output parameter which contains the CLSID of the Activex plugin needed.
- // This is only applicable if the webpage specifically requests an ActiveX
- // control.
- // Returns true on success.
- bool ParseInstantiationArguments(NPMIMEType mime_type, NPP instance,
- int16 argc, char* argn[], char* argv[],
- std::string* raw_activex_clsid);
-
- // Paints user action messages to the plugin window. These include messages
- // like whether the user should click on the plugin window to download the
- // plugin, etc.
- //
- // Parameters:
- // paint_dc
- // The device context returned in BeginPaint.
- // x_origin
- // Horizontal reference point indicating where the text is to be displayed.
- // y_origin
- // Vertical reference point indicating where the text is to be displayed.
- //
- void PaintUserActionInformation(gfx::NativeDrawingContext paint_dc,
- int x_origin, int y_origin);
-
- private:
- // Notify the renderer that plugin is available to download.
- void NotifyPluginStatus(int status);
-
- // The plugins opaque instance handle
- NPP instance_;
- // The current stream.
- NPStream* plugin_install_stream_;
- // The desired mime type.
- std::string mime_type_;
- // The current state of the plugin installer.
- PluginInstallerState plugin_installer_state_;
- // Dimensions of the plugin
- uint32_t width_;
- uint32_t height_;
-
- DISALLOW_COPY_AND_ASSIGN(PluginInstallerImpl);
-};
-
-
-#endif // CHROME_DEFAULT_PLUGIN_PLUGIN_IMPL_MAC_H_
diff --git a/chrome/default_plugin/plugin_impl_mac.mm b/chrome/default_plugin/plugin_impl_mac.mm
deleted file mode 100644
index 253e786..0000000
--- a/chrome/default_plugin/plugin_impl_mac.mm
+++ /dev/null
@@ -1,179 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/default_plugin/plugin_impl_mac.h"
-
-#import <Cocoa/Cocoa.h>
-
-#include "base/file_util.h"
-#include "base/path_service.h"
-#include "base/string_util.h"
-#include "chrome/default_plugin/plugin_main.h"
-#include "googleurl/src/gurl.h"
-#include "grit/webkit_strings.h"
-#include "unicode/locid.h"
-#include "webkit/glue/webkit_glue.h"
-#include "webkit/glue/plugins/default_plugin_shared.h"
-
-// TODO(thakis): Most methods in this class are stubbed out and need to be
-// implemented.
-
-PluginInstallerImpl::PluginInstallerImpl(int16 mode) {
-}
-
-PluginInstallerImpl::~PluginInstallerImpl() {
-}
-
-bool PluginInstallerImpl::Initialize(void* module_handle, NPP instance,
- NPMIMEType mime_type, int16 argc,
- char* argn[], char* argv[]) {
- DLOG(INFO) << __FUNCTION__ << " MIME Type : " << mime_type;
- DCHECK(instance != 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;
-
- return true;
-}
-
-bool PluginInstallerImpl::NPP_SetWindow(NPWindow* window_info) {
- width_ = window_info->width;
- height_ = window_info->height;
- return true;
-}
-
-void PluginInstallerImpl::Shutdown() {
-}
-
-void PluginInstallerImpl::NewStream(NPStream* stream) {
- plugin_install_stream_ = stream;
-}
-
-void PluginInstallerImpl::DestroyStream(NPStream* stream, NPError reason) {
- if (stream == plugin_install_stream_)
- plugin_install_stream_ = NULL;
-}
-
-bool PluginInstallerImpl::WriteReady(NPStream* stream) {
- bool ready_to_accept_data = false;
- return ready_to_accept_data;
-}
-
-int32 PluginInstallerImpl::Write(NPStream* stream, int32 offset,
- int32 buffer_length, void* buffer) {
- return true;
-}
-
-void PluginInstallerImpl::ClearDisplay() {
-}
-
-void PluginInstallerImpl::RefreshDisplay() {
-}
-
-bool PluginInstallerImpl::CreateToolTip() {
- return true;
-}
-
-void PluginInstallerImpl::UpdateToolTip() {
-}
-
-void PluginInstallerImpl::DisplayAvailablePluginStatus() {
-}
-
-void PluginInstallerImpl::DisplayStatus(int message_resource_id) {
-}
-
-void PluginInstallerImpl::DisplayPluginDownloadFailedStatus() {
-}
-
-void PluginInstallerImpl::URLNotify(const char* url, NPReason reason) {
-}
-
-int16 PluginInstallerImpl::NPP_HandleEvent(void* event) {
- NPCocoaEvent* npp_event = static_cast<NPCocoaEvent*>(event);
-
- if (npp_event->type == NPCocoaEventDrawRect) {
- CGContextRef context = npp_event->data.draw.context;
- CGRect rect = CGRectMake(npp_event->data.draw.x,
- npp_event->data.draw.y,
- npp_event->data.draw.width,
- npp_event->data.draw.height);
- return OnDrawRect(context, rect);
- }
- return 0;
-}
-
-std::wstring PluginInstallerImpl::ReplaceStringForPossibleEmptyReplacement(
- int message_id_with_placeholders,
- int messsage_id_without_placeholders,
- const std::wstring& replacement_string) {
- return L"";
-}
-
-void PluginInstallerImpl::DownloadPlugin() {
-}
-
-void PluginInstallerImpl::DownloadCancelled() {
- DisplayAvailablePluginStatus();
-}
-
-int16 PluginInstallerImpl::OnDrawRect(CGContextRef context, CGRect dirty_rect) {
- const NSString* text = @"Missing Plug-in";
- const float kTextMarginX = 6;
- const float kTextMarginY = 1;
- NSSize bounds = NSMakeSize(width_, height_);
-
- [NSGraphicsContext saveGraphicsState];
- NSGraphicsContext* ns_context = [NSGraphicsContext
- graphicsContextWithGraphicsPort:context flipped:YES];
- [NSGraphicsContext setCurrentContext:ns_context];
-
- NSShadow* shadow = [[[NSShadow alloc] init] autorelease];
- [shadow setShadowColor:[NSColor colorWithDeviceWhite:0.0 alpha:0.5]];
- [shadow setShadowOffset:NSMakeSize(0, -1)];
- NSFont* font = [NSFont boldSystemFontOfSize:[NSFont smallSystemFontSize]];
- NSDictionary* attributes = [NSDictionary dictionaryWithObjectsAndKeys:
- font, NSFontAttributeName,
- [NSColor whiteColor], NSForegroundColorAttributeName,
- shadow, NSShadowAttributeName,
- nil];
-
- NSSize text_size = [text sizeWithAttributes:attributes];
- NSRect text_rect;
- text_rect.size.width = text_size.width + 2*kTextMarginX;
- text_rect.size.height = text_size.height + 2*kTextMarginY;
- text_rect.origin.x = (bounds.width - NSWidth(text_rect))/2;
- text_rect.origin.y = (bounds.height - NSHeight(text_rect))/2;
-
- [[NSColor colorWithCalibratedWhite:0.52 alpha:1.0] setFill];
- [[NSBezierPath bezierPathWithRoundedRect:text_rect
- xRadius:NSHeight(text_rect)/2
- yRadius:NSHeight(text_rect)/2] fill];
-
- NSPoint label_point = NSMakePoint(
- roundf(text_rect.origin.x + (text_rect.size.width - text_size.width)/2),
- roundf(text_rect.origin.y + (text_rect.size.height - text_size.height)/2));
- [text drawAtPoint:label_point withAttributes:attributes];
-
- [NSGraphicsContext restoreGraphicsState];
- return 1;
-}
-
-
-void PluginInstallerImpl::ShowInstallDialog() {
-}
-
-void PluginInstallerImpl::NotifyPluginStatus(int status) {
- default_plugin::g_browser->getvalue(
- instance_,
- static_cast<NPNVariable>(
- default_plugin::kMissingPluginStatusStart + status),
- NULL);
-}
diff --git a/chrome/default_plugin/plugin_impl_win.cc b/chrome/default_plugin/plugin_impl_win.cc
deleted file mode 100644
index 4b8dacb..0000000
--- a/chrome/default_plugin/plugin_impl_win.cc
+++ /dev/null
@@ -1,646 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/default_plugin/plugin_impl_win.h"
-
-#include <shellapi.h>
-
-#include "base/file_util.h"
-#include "base/path_service.h"
-#include "base/string_util.h"
-#include "chrome/default_plugin/plugin_main.h"
-#include "googleurl/src/gurl.h"
-#include "grit/webkit_strings.h"
-#include "unicode/locid.h"
-#include "webkit/glue/webkit_glue.h"
-#include "webkit/glue/plugins/default_plugin_shared.h"
-
-static const int TOOLTIP_MAX_WIDTH = 500;
-
-PluginInstallerImpl::PluginInstallerImpl(int16 mode)
- : instance_(NULL),
- mode_(mode),
- plugin_install_stream_(NULL),
- plugin_installer_state_(PluginInstallerStateUndefined),
- install_dialog_(NULL),
- enable_click_(false),
- icon_(NULL),
- bold_font_(NULL),
- regular_font_(NULL),
- underline_font_(NULL),
- tooltip_(NULL),
- installation_job_monitor_thread_(
- new PluginInstallationJobMonitorThread()),
- plugin_database_handler_(*this),
- plugin_download_url_for_display_(false) {
-}
-
-PluginInstallerImpl::~PluginInstallerImpl() {
- installation_job_monitor_thread_->Stop();
-
- if (bold_font_)
- DeleteObject(bold_font_);
-
- if (underline_font_)
- DeleteObject(underline_font_);
-
- if (tooltip_)
- DestroyWindow(tooltip_);
-}
-
-bool PluginInstallerImpl::Initialize(HINSTANCE module_handle, NPP instance,
- NPMIMEType mime_type, int16 argc,
- char* argn[], char* argv[]) {
- DLOG(INFO) << __FUNCTION__ << " MIME Type : " << mime_type;
- 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;
-
- if (!webkit_glue::GetPluginFinderURL(&plugin_finder_url_)) {
- NOTREACHED();
- DLOG(WARNING) << __FUNCTION__ << " Failed to get the plugin finder URL";
- return false;
- }
-
- if (!installation_job_monitor_thread_->Initialize()) {
- DLOG(ERROR) << "Failed to initialize plugin install job";
- NOTREACHED();
- return false;
- }
-
- InitializeResources(module_handle);
-
- DisplayStatus(IDS_DEFAULT_PLUGIN_GET_PLUGIN_MSG_NO_PLUGIN_NAME);
- plugin_database_handler_.DownloadPluginsFileIfNeeded(plugin_finder_url_);
-
- return true;
-}
-
-void PluginInstallerImpl::Shutdown() {
- if (install_dialog_) {
- install_dialog_->RemoveInstaller(this);
- install_dialog_ = NULL;
- }
-
- if (IsWindow(hwnd())) {
- DestroyWindow(hwnd());
- }
-}
-
-void PluginInstallerImpl::NewStream(NPStream* stream) {
- plugin_install_stream_ = stream;
-}
-
-void PluginInstallerImpl::DestroyStream(NPStream* stream, NPError reason) {
- if (stream == plugin_install_stream_)
- plugin_install_stream_ = NULL;
-}
-
-bool PluginInstallerImpl::WriteReady(NPStream* stream) {
- bool ready_to_accept_data = false;
-
- if (plugin_installer_state() != PluginListDownloadInitiated) {
- DCHECK(default_plugin::g_browser);
- DCHECK(default_plugin::g_browser->destroystream);
- // We don't want any data, kill the stream.
- default_plugin::g_browser->destroystream(instance_, stream, NPRES_DONE);
- }
- if (0 == lstrcmpiA(stream->url, plugin_finder_url_.c_str())) {
- ready_to_accept_data = true;
- }
- return ready_to_accept_data;
-}
-
-int32 PluginInstallerImpl::Write(NPStream* stream, int32 offset,
- int32 buffer_length, void* buffer) {
- if (plugin_installer_state() != PluginListDownloadInitiated) {
- DCHECK(default_plugin::g_browser);
- DCHECK(default_plugin::g_browser->destroystream);
- // We don't want any data, kill the stream.
- default_plugin::g_browser->destroystream(instance_, stream, NPRES_DONE);
- return 0;
- }
-
- return plugin_database_handler_.Write(stream, offset, buffer_length, buffer);
-}
-
-void PluginInstallerImpl::ClearDisplay() {
- enable_click_ = false;
- command_.clear();
- optional_additional_message_.clear();
- get_plugin_link_message_.clear();
-}
-
-void PluginInstallerImpl::RefreshDisplay() {
- if (!IsWindow(hwnd()))
- return;
- UpdateToolTip();
-
- InvalidateRect(hwnd(), NULL, TRUE);
- UpdateWindow(hwnd());
-}
-
-bool PluginInstallerImpl::CreateToolTip() {
- DWORD ex_styles = IsRTLLayout() ? WS_EX_LAYOUTRTL : 0;
- tooltip_ = CreateWindowEx(ex_styles, TOOLTIPS_CLASS, NULL,
- WS_POPUP | TTS_ALWAYSTIP,
- CW_USEDEFAULT, CW_USEDEFAULT,
- CW_USEDEFAULT, CW_USEDEFAULT,
- hwnd(), NULL, NULL, NULL);
- if (!tooltip_)
- return false;
-
- // Associate the ToolTip with the tool.
- TOOLINFO tool_info = {0};
- tool_info.cbSize = sizeof(tool_info);
- tool_info.hwnd = hwnd();
- tool_info.uFlags = TTF_IDISHWND | TTF_SUBCLASS;
- tool_info.uId = reinterpret_cast<UINT_PTR>(hwnd());
- tool_info.lpszText = NULL;
- SendMessage(tooltip_, TTM_ADDTOOL, 0, reinterpret_cast<LPARAM>(&tool_info));
- SendMessage(tooltip_, TTM_SETMAXTIPWIDTH, 0, TOOLTIP_MAX_WIDTH);
- return true;
-}
-
-void PluginInstallerImpl::UpdateToolTip() {
- if (tooltip_ == NULL)
- return;
- std::wstring tip = command_;
- if (!optional_additional_message_.empty())
- tip += std::wstring(L"\n\r") + optional_additional_message_;
-
- TOOLINFO tool_info = {0};
- tool_info.cbSize = sizeof(tool_info);
- tool_info.hwnd = hwnd();
- tool_info.uFlags = TTF_IDISHWND;
- tool_info.uId = reinterpret_cast<UINT_PTR>(hwnd());
- tool_info.lpszText = const_cast<LPWSTR>(tip.c_str());
- SendMessage(tooltip_, TTM_UPDATETIPTEXT, 0, (LPARAM)&tool_info);
-}
-
-void PluginInstallerImpl::DisplayAvailablePluginStatus() {
- ClearDisplay();
- enable_click_ = true;
- command_ = ReplaceStringForPossibleEmptyReplacement(
- IDS_DEFAULT_PLUGIN_GET_PLUGIN_MSG,
- IDS_DEFAULT_PLUGIN_GET_PLUGIN_MSG_NO_PLUGIN_NAME,
- plugin_name_);
- optional_additional_message_ =
- webkit_glue::GetLocalizedString(IDS_DEFAULT_PLUGIN_GET_PLUGIN_MSG_2);
- get_plugin_link_message_ = webkit_glue::GetLocalizedString(
- IDS_DEFAULT_PLUGIN_GET_THE_PLUGIN_BTN_MSG);
- RefreshDisplay();
-}
-
-void PluginInstallerImpl::DisplayStatus(int message_resource_id) {
- ClearDisplay();
- command_ =
- webkit_glue::GetLocalizedString(message_resource_id);
- RefreshDisplay();
-}
-
-void PluginInstallerImpl::DisplayPluginDownloadFailedStatus() {
- ClearDisplay();
- command_ = webkit_glue::GetLocalizedString(
- IDS_DEFAULT_PLUGIN_DOWNLOAD_FAILED_MSG);
- command_ = ReplaceStringPlaceholders(
- command_,
- ASCIIToWide(plugin_download_url_),
- NULL);
- RefreshDisplay();
-}
-
-void PluginInstallerImpl::URLNotify(const char* url, NPReason reason) {
- DCHECK(plugin_installer_state_ == PluginListDownloadInitiated);
-
- if (plugin_installer_state_ == PluginListDownloadInitiated) {
- bool plugin_available = false;
- if (reason == NPRES_DONE) {
- DLOG(INFO) << "Received Done notification for plugin list download";
- plugin_database_handler_.ParsePluginList();
- if (plugin_database_handler_.GetPluginDetailsForMimeType(
- mime_type_.c_str(), desired_language_.c_str(),
- &plugin_download_url_, &plugin_name_,
- &plugin_download_url_for_display_)) {
- plugin_available = true;
- install_dialog_ = PluginInstallDialog::AddInstaller(this, plugin_name_);
- set_plugin_installer_state(PluginListDownloaded);
- } else {
- set_plugin_installer_state(PluginListDownloadedPluginNotFound);
- }
-
- plugin_database_handler_.Close(false);
- } else {
- DLOG(WARNING) << "Failed to download plugin list";
- set_plugin_installer_state(PluginListDownloadFailed);
-
- plugin_database_handler_.Close(true);
- }
-
- if (plugin_available) {
- DLOG(INFO) << "Plugin available for mime type " << mime_type_;
- DisplayAvailablePluginStatus();
- NotifyPluginStatus(default_plugin::MISSING_PLUGIN_AVAILABLE);
- } else {
- DLOG(WARNING) << "No plugin available for mime type " << mime_type_;
- DisplayStatus(IDS_DEFAULT_PLUGIN_NO_PLUGIN_AVAILABLE_MSG);
- }
- }
-}
-
-int16 PluginInstallerImpl::NPP_HandleEvent(void* event) {
- 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
- // internal processing. So we need to check the status.
- if (plugin_installer_state() == PluginListDownloaded) {
- ShowInstallDialog();
- }
- }
- return 0;
-}
-
-std::wstring PluginInstallerImpl::ReplaceStringForPossibleEmptyReplacement(
- int message_id_with_placeholders,
- int messsage_id_without_placeholders,
- const std::wstring& replacement_string) {
- // If the replacement_string is not empty, load the string identified by
- // the resource id message_id_with_placeholders, and replace the
- // placeholder with the replacement_string. Otherwise return the string
- // identified by resource id messsage_id_without_placeholders.
- if (replacement_string.empty()) {
- return webkit_glue::GetLocalizedString(messsage_id_without_placeholders);
- } else {
- std::wstring string_with_placeholders =
- webkit_glue::GetLocalizedString(message_id_with_placeholders);
- return ReplaceStringPlaceholders(string_with_placeholders,
- replacement_string, NULL);
- }
-}
-
-bool PluginInstallerImpl::NPP_SetWindow(NPWindow* window_info) {
- HWND parent_window = reinterpret_cast<HWND>(window_info->window);
- if (!IsWindow(parent_window)) {
- // No window created yet. Ignore this call.
- if (!IsWindow(hwnd()))
- return true;
- // Parent window has been destroyed.
- Shutdown();
- return true;
- }
-
- RECT parent_rect = {0};
-
- if (IsWindow(hwnd())) {
- GetClientRect(parent_window, &parent_rect);
- SetWindowPos(hwnd(), NULL, parent_rect.left, parent_rect.top,
- parent_rect.right - parent_rect.left,
- parent_rect.bottom - parent_rect.top, SWP_SHOWWINDOW);
- return true;
- }
- // First time in -- no window created by plugin yet.
- GetClientRect(parent_window, &parent_rect);
- set_window_style(WS_CHILD | WS_BORDER);
- Init(parent_window, gfx::Rect(parent_rect));
- DCHECK(IsWindow(hwnd()));
- installation_job_monitor_thread_->set_plugin_window(hwnd());
-
- CreateToolTip();
- UpdateToolTip();
-
- UpdateWindow(hwnd());
- ShowWindow(hwnd(), SW_SHOW);
-
- return true;
-}
-
-void PluginInstallerImpl::DownloadPlugin() {
- set_plugin_installer_state(PluginDownloadInitiated);
-
- DLOG(INFO) << "Initiating download for plugin URL "
- << plugin_download_url_.c_str();
-
- DisplayStatus(IDS_DEFAULT_PLUGIN_DOWNLOADING_PLUGIN_MSG);
-
- 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();
- }
-}
-
-void PluginInstallerImpl::DownloadCancelled() {
- DisplayAvailablePluginStatus();
-}
-
-LRESULT PluginInstallerImpl::OnEraseBackGround(UINT message, WPARAM wparam,
- LPARAM lparam, BOOL& handled) {
- HDC paint_device_context = reinterpret_cast<HDC>(wparam);
- RECT erase_rect = {0};
- GetClipBox(paint_device_context, &erase_rect);
- HBRUSH brush = ::CreateSolidBrush(RGB(252, 235, 162));
- DCHECK(brush);
- FillRect(paint_device_context, &erase_rect, brush);
- DeleteObject(brush);
- return 1;
-}
-
-// Use ICU in order to determine whether the locale is right-to-left.
-//
-// TODO(idana) bug# 1246452: there is already code in
-// app/l10n_util.h/cc that uses ICU to determine the locale direction. We don't
-// currently use this code since code in WebKit should not depend on code in
-// Chrome. We can fix this by pulling (at least part of) the l10n_util
-// functionality up into the Base module.
-bool PluginInstallerImpl::IsRTLLayout() {
- const icu::Locale& locale = icu::Locale::getDefault();
- const char* lang = locale.getLanguage();
-
- // Check only for Arabic and Hebrew languages for now.
- if (strcmp(lang, "ar") == 0 || strcmp(lang, "he") == 0) {
- return true;
- }
- return false;
-}
-
-LRESULT PluginInstallerImpl::OnPaint(UINT message, WPARAM wparam, LPARAM lparam,
- BOOL& handled) {
- PAINTSTRUCT paint_struct = {0};
- BeginPaint(hwnd(), &paint_struct);
-
- int save_dc_context = SaveDC(paint_struct.hdc);
- // The drawing order is as below:-
- // 1. The Get plugin link at the top left corner.
- // 2. The plugin icon.
- // 3. The text describing user actions to the right of the icon.
- SIZE get_plugin_link_extents = {0};
- HFONT old_font =
- reinterpret_cast<HFONT>(SelectObject(paint_struct.hdc, regular_font_));
-
- GetTextExtentPoint32(paint_struct.hdc, get_plugin_link_message_.c_str(),
- static_cast<int>(get_plugin_link_message_.length()),
- &get_plugin_link_extents);
-
- POINT device_point = {0};
- device_point.x = get_plugin_link_extents.cx;
- device_point.y = get_plugin_link_extents.cy;
- LPtoDP(paint_struct.hdc, &device_point, 1);
-
- RECT text_rect = {0};
- text_rect.left = 5;
- text_rect.right = text_rect.left + device_point.x;
- text_rect.top = 5;
- text_rect.bottom = text_rect.top + device_point.y;
-
- RECT client_rect = {0};
- GetClientRect(hwnd(), &client_rect);
-
- int icon_width = GetSystemMetrics(SM_CXICON);
- int icon_height = GetSystemMetrics(SM_CYICON);
-
- int x = (client_rect.right / 2) - icon_width / 2;
- int y = (client_rect.bottom / 2) - icon_height / 2;
-
- DCHECK(icon_);
- DrawIcon(paint_struct.hdc, x, y, icon_);
-
- int old_mode = SetBkMode(paint_struct.hdc, TRANSPARENT);
- COLORREF old_color = SetTextColor(paint_struct.hdc, RGB(0, 0, 255));
-
- // If the UI layout is right-to-left, we need to mirror the position of the
- // link text and also make sure that the text is aligned to the right.
- DWORD draw_text_flags = DT_VCENTER;
- if (IsRTLLayout()) {
- draw_text_flags |= DT_RTLREADING | DT_RIGHT;
- int text_width = text_rect.right - text_rect.left;
- int client_width = client_rect.right - client_rect.left;
- text_rect.left = client_width - text_rect.left - text_width;
- text_rect.right = text_rect.left + text_width;
- } else {
- draw_text_flags |= DT_LEFT;
- }
-
- DrawText(paint_struct.hdc, get_plugin_link_message_.c_str(),
- static_cast<int>(get_plugin_link_message_.length()),
- &text_rect, draw_text_flags);
-
- SIZE command_extents = {0};
- GetTextExtentPoint32(paint_struct.hdc, command_.c_str(),
- static_cast<int>(command_.length()), &command_extents);
-
- int y_origin = y + (icon_height) + 10;
- int x_origin = x - command_extents.cx / 2 + icon_width / 2;
-
- // If the window is too small then no point in attempting to display plugin
- // information. In any case this info is displayed when the user hovers
- // over the plugin window.
- int window_width = client_rect.right - client_rect.left;
- int window_height = client_rect.bottom - client_rect.top;
-
- if ((x_origin + command_extents.cx <= window_width) &&
- (y_origin + command_extents.cy <= window_height)) {
- PaintUserActionInformation(paint_struct.hdc, x_origin, y_origin);
- }
-
- RestoreDC(paint_struct.hdc, save_dc_context);
- EndPaint(hwnd(), &paint_struct);
- return 0;
-}
-
-void PluginInstallerImpl::PaintUserActionInformation(HDC paint_dc,
- int x_origin,
- int y_origin) {
- SelectObject(paint_dc, regular_font_);
-
- SIZE command_extents = {0};
- GetTextExtentPoint32(paint_dc, command_.c_str(),
- static_cast<int>(command_.length()), &command_extents);
- POINT device_point = {0};
- device_point.x = command_extents.cx;
- device_point.y = command_extents.cy;
- LPtoDP(paint_dc, &device_point, 1);
-
- RECT text_rect = {0};
- text_rect.left = x_origin;
- text_rect.right = text_rect.left + device_point.x;
- text_rect.top = y_origin;
- text_rect.bottom = text_rect.top + device_point.y;
-
- SetTextColor(paint_dc, RGB(0, 0, 0));
-
- // Make sure we pass the right BiDi flags to DrawText if the UI layout is
- // right-to-left.
- UINT additional_dt_flags = IsRTLLayout() ? DT_RTLREADING : 0;
- DrawText(paint_dc, command_.c_str(),
- static_cast<int>(command_.length()), &text_rect,
- DT_CENTER | DT_VCENTER | additional_dt_flags);
-
- if (!optional_additional_message_.empty()) {
- SelectObject(paint_dc, regular_font_);
-
- SIZE optional_text_extents = {0};
- int optional_message_length =
- static_cast<int>(optional_additional_message_.length());
- GetTextExtentPoint32(paint_dc,
- optional_additional_message_.c_str(),
- optional_message_length,
- &optional_text_extents);
- POINT device_point = {0};
- device_point.x = optional_text_extents.cx;
- device_point.y = optional_text_extents.cy;
- LPtoDP(paint_dc, &device_point, 1);
-
- text_rect.right = text_rect.left + device_point.x;
- text_rect.top = y_origin + command_extents.cy + 2;
- text_rect.bottom = text_rect.top + device_point.y;
-
- DrawText(paint_dc, optional_additional_message_.c_str(),
- static_cast<int>(optional_additional_message_.length()),
- &text_rect, DT_CENTER | DT_VCENTER | additional_dt_flags);
- }
-}
-
-void PluginInstallerImpl::ShowInstallDialog() {
- enable_click_ = false;
- install_dialog_->ShowInstallDialog(hwnd());
-}
-
-LRESULT PluginInstallerImpl::OnLButtonDown(UINT message, WPARAM wparam,
- LPARAM lparam, BOOL& handled) {
- if (!enable_click_)
- return 0;
- if (plugin_installer_state() == PluginListDownloaded) {
- ShowInstallDialog();
- NotifyPluginStatus(default_plugin::MISSING_PLUGIN_USER_STARTED_DOWNLOAD);
- } else if (plugin_installer_state_ == PluginInstallerLaunchSuccess) {
- DCHECK(default_plugin::g_browser);
- DCHECK(default_plugin::g_browser->geturl);
- default_plugin::g_browser->geturl(
- instance_,
- "javascript:navigator.plugins.refresh(true)",
- "_self");
- default_plugin::g_browser->geturl(
- instance_,
- "javascript:window.location.reload(true)",
- "_self");
- }
-
- return 0;
-}
-
-LRESULT PluginInstallerImpl::OnSetCursor(UINT message, WPARAM wparam,
- LPARAM lparam, BOOL& handled) {
- if (enable_click_) {
- SetCursor(LoadCursor(NULL, MAKEINTRESOURCE(IDC_HAND)));
- return 1;
- }
- handled = FALSE;
- return 0;
-}
-
-LRESULT PluginInstallerImpl::OnRefreshPlugins(UINT message, WPARAM wparam,
- LPARAM lparam, BOOL& handled) {
- DCHECK(default_plugin::g_browser);
- DCHECK(default_plugin::g_browser->geturl);
- default_plugin::g_browser->geturl(
- instance_,
- "javascript:navigator.plugins.refresh(true)",
- "_self");
- default_plugin::g_browser->geturl(
- instance_,
- "javascript:window.location.reload(true)",
- "_self");
- return 0;
-}
-
-LRESULT PluginInstallerImpl::OnCopyData(UINT message, WPARAM wparam,
- LPARAM lparam, BOOL& handled) {
- COPYDATASTRUCT* download_file_info =
- reinterpret_cast<COPYDATASTRUCT*>(lparam);
- if (!download_file_info || !download_file_info->dwData) {
- DLOG(WARNING) << "Failed to download plugin";
- set_plugin_installer_state(PluginDownloadFailed);
- DisplayPluginDownloadFailedStatus();
- } else {
- DLOG(INFO) << "Successfully downloaded plugin installer";
- set_plugin_installer_state(PluginDownloadCompleted);
-
- std::wstring file_path =
- reinterpret_cast<const wchar_t*>(download_file_info->lpData);
-
- FilePath current_directory = FilePath(file_path).DirName();
-
- SHELLEXECUTEINFO shell_execute_info = {0};
- shell_execute_info.cbSize = sizeof(shell_execute_info);
- shell_execute_info.fMask = SEE_MASK_NOCLOSEPROCESS;
- shell_execute_info.lpFile = file_path.c_str();
- shell_execute_info.lpDirectory = current_directory.value().c_str();
- shell_execute_info.nShow = SW_SHOW;
-
- if (!ShellExecuteEx(&shell_execute_info)) {
- DLOG(WARNING) << "Failed to launch plugin installer "
- << file_path.c_str() << " Error "
- << ::GetLastError();
- set_plugin_installer_state(PluginInstallerLaunchFailure);
- DisplayStatus(IDS_DEFAULT_PLUGIN_INSTALLATION_FAILED_MSG);
- NOTREACHED();
- } else {
- DLOG(INFO) << "Successfully launched plugin installer";
- set_plugin_installer_state(PluginInstallerLaunchSuccess);
- installation_job_monitor_thread_->AssignProcessToJob(
- shell_execute_info.hProcess);
- DisplayStatus(IDS_DEFAULT_PLUGIN_REFRESH_PLUGIN_MSG);
- enable_click_ = true;
- RefreshDisplay();
- }
- }
- return 0;
-}
-
-bool PluginInstallerImpl::InitializeResources(HINSTANCE module_handle) {
- DCHECK(icon_ == NULL);
- DCHECK(regular_font_ == NULL);
- DCHECK(bold_font_ == NULL);
- DCHECK(underline_font_ == NULL);
-
- icon_ = LoadIcon(module_handle, MAKEINTRESOURCE(IDI_DEFAULT_PLUGIN_ICON));
- DCHECK(icon_ != NULL);
-
- desired_language_ = "en-us";
- regular_font_ = reinterpret_cast<HFONT>(GetStockObject(DEFAULT_GUI_FONT));
- DCHECK(regular_font_ != NULL);
-
- LOGFONT font_info = {0};
- GetObject(regular_font_, sizeof(LOGFONT), &font_info);
- font_info.lfWeight |= FW_BOLD;
- bold_font_ = CreateFontIndirect(&font_info);
- DCHECK(bold_font_ != NULL);
-
- font_info.lfUnderline = TRUE;
- underline_font_ = CreateFontIndirect(&font_info);
- DCHECK(underline_font_ != NULL);
- return true;
-}
-
-void PluginInstallerImpl::NotifyPluginStatus(int status) {
- default_plugin::g_browser->getvalue(
- instance_,
- static_cast<NPNVariable>(
- default_plugin::kMissingPluginStatusStart + status),
- NULL);
-}
diff --git a/chrome/default_plugin/plugin_impl_win.h b/chrome/default_plugin/plugin_impl_win.h
deleted file mode 100644
index 24d1b22..0000000
--- a/chrome/default_plugin/plugin_impl_win.h
+++ /dev/null
@@ -1,317 +0,0 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_DEFAULT_PLUGIN_PLUGIN_IMPL_WIN_H_
-#define CHROME_DEFAULT_PLUGIN_PLUGIN_IMPL_WIN_H_
-
-#include <string>
-#include <vector>
-
-#include "chrome/default_plugin/install_dialog.h"
-#include "chrome/default_plugin/plugin_database_handler.h"
-#include "chrome/default_plugin/plugin_install_job_monitor.h"
-#include "gfx/window_impl.h"
-#include "third_party/npapi/bindings/npapi.h"
-
-// Possible plugin installer states.
-enum PluginInstallerState {
- PluginInstallerStateUndefined,
- PluginListDownloadInitiated,
- PluginListDownloaded,
- PluginListDownloadedPluginNotFound,
- PluginListDownloadFailed,
- PluginDownloadInitiated,
- PluginDownloadCompleted,
- PluginDownloadFailed,
- PluginInstallerLaunchSuccess,
- PluginInstallerLaunchFailure
-};
-
-class PluginInstallDialog;
-class PluginDatabaseHandler;
-
-// Provides the plugin installation functionality. This class is
-// instantiated with the information like the mime type of the
-// target plugin, the display mode, etc.
-class PluginInstallerImpl : public gfx::WindowImpl {
- public:
- static const int kRefreshPluginsMessage = WM_APP + 1;
- static const int kInstallMissingPluginMessage = WM_APP + 2;
-
- // mode is the plugin instantiation mode, i.e. whether it is a full
- // page plugin (NP_FULL) or an embedded plugin (NP_EMBED)
- explicit PluginInstallerImpl(int16 mode);
- virtual ~PluginInstallerImpl();
-
- BEGIN_MSG_MAP_EX(PluginInstallerImpl)
- MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBackGround)
- MESSAGE_HANDLER(WM_PAINT, OnPaint)
- MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown)
- MESSAGE_HANDLER(kRefreshPluginsMessage, OnRefreshPlugins)
- MESSAGE_HANDLER(WM_COPYDATA, OnCopyData)
- MESSAGE_HANDLER(WM_SETCURSOR, OnSetCursor)
- END_MSG_MAP()
-
- // Initializes the plugin with the instance information, mime type
- // and the list of parameters passed down to the plugin from the webpage.
- //
- // Parameters:
- // module_handle
- // The handle to the dll in which this object is instantiated.
- // instance
- // The plugins opaque instance handle.
- // mime_type
- // Identifies the third party plugin which would be eventually installed.
- // argc
- // Indicates the count of arguments passed in from the webpage.
- // argv
- // Pointer to the arguments.
- // Returns true on success.
- bool Initialize(HINSTANCE module_handle, NPP instance, NPMIMEType mime_type,
- int16 argc, char* argn[], char* argv[]);
-
- // Displays the default plugin UI.
- //
- // Parameters:
- // window_info
- // The window info passed to npapi.
- bool NPP_SetWindow(NPWindow* window_info);
-
- // Destroys the install dialog and the plugin window.
- void Shutdown();
-
- // Starts plugin download. Spawns the plugin installer after it is
- // downloaded.
- void DownloadPlugin();
-
- // Indicates that the plugin download was cancelled.
- void DownloadCancelled();
-
- // Initializes the plugin download stream.
- //
- // Parameters:
- // stream
- // Pointer to the new stream being created.
- void NewStream(NPStream* stream);
-
- // Uninitializes the plugin download stream.
- //
- // Parameters:
- // stream
- // Pointer to the stream being destroyed.
- // reason
- // Indicates why the stream is being destroyed.
- //
- void DestroyStream(NPStream* stream, NPError reason);
-
- // Determines whether the plugin is ready to accept data.
- // We only accept data when we have initiated a download for the plugin
- // database.
- //
- // Parameters:
- // stream
- // Pointer to the stream being destroyed.
- // Returns true if the plugin is ready to accept data.
- bool WriteReady(NPStream* stream);
-
- // Delivers data to the plugin instance.
- //
- // Parameters:
- // stream
- // Pointer to the stream being destroyed.
- // offset
- // Indicates the data offset.
- // buffer_length
- // Indicates the length of the data buffer.
- // buffer
- // Pointer to the actual buffer.
- // Returns the number of bytes actually written, 0 on error.
- int32 Write(NPStream* stream, int32 offset, int32 buffer_length,
- void* buffer);
-
- // Handles notifications received in response to GetURLNotify calls issued
- // by the plugin.
- //
- // Parameters:
- // url
- // Pointer to the URL.
- // reason
- // Describes why the notification was sent.
- void URLNotify(const char* url, NPReason reason);
-
- // Used by the renderer to indicate plugin install through the infobar.
- int16 NPP_HandleEvent(void* event);
-
- const std::string& mime_type() const { return mime_type_; }
-
- // Replaces a resource string with the placeholder passed in as an argument
- //
- // Parameters:
- // message_id_with_placeholders
- // The resource id of the string with placeholders. This is only used if
- // the placeholder string (the replacement_string) parameter is valid.
- // message_id_without_placeholders
- // The resource id of the string to be returned if the placeholder is
- // empty.
- // replacement_string
- // The placeholder which replaces tokens in the string identified by
- // resource id message_id_with_placeholders.
- // Returns a string which has the placeholders replaced, or the string
- // without placeholders.
- static std::wstring ReplaceStringForPossibleEmptyReplacement(
- int message_id_with_placeholders, int message_id_without_placeholders,
- const std::wstring& replacement_string);
-
- // Setter/getter combination to set and retreieve the current
- // state of the plugin installer.
- void set_plugin_installer_state(PluginInstallerState new_state) {
- plugin_installer_state_ = new_state;
- }
-
- PluginInstallerState plugin_installer_state() const {
- return plugin_installer_state_;
- }
-
- // Getter for the NPP instance member.
- const NPP instance() const {
- return instance_;
- }
-
- // Returns whether or not the UI layout is right-to-left (such as Hebrew or
- // Arabic).
- static bool IsRTLLayout();
-
- protected:
- // Window message handlers.
- LRESULT OnPaint(UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled);
- LRESULT OnEraseBackGround(UINT message, WPARAM wparam, LPARAM lparam,
- BOOL& handled);
- LRESULT OnLButtonDown(UINT message, WPARAM wparam, LPARAM lparam,
- BOOL& handled);
- LRESULT OnSetCursor(UINT message, WPARAM wparam, LPARAM lparam,
- BOOL& handled);
-
- // Refreshes the loaded plugin list and reloads the current page.
- LRESULT OnRefreshPlugins(UINT message, WPARAM wparam, LPARAM lparam,
- BOOL& handled);
-
- // Launches the third party plugin installer. This message is
- // received when the request to download the installer, initiated by
- // plugin completes.
- LRESULT OnCopyData(UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled);
-
- // Displays the plugin install confirmation dialog.
- void ShowInstallDialog();
-
- // Clears the current display state.
- void ClearDisplay();
-
- // Displays the status message identified by the message resource id
- // passed in.
- //
- // Parameters:
- // message_resource_id parameter
- // The resource id of the message to be displayed.
- void DisplayStatus(int message_resource_id);
-
- // Displays status information for the third party plugin which is needed
- // by the page.
- void DisplayAvailablePluginStatus();
-
- // Displays information related to third party plugin download failure.
- void DisplayPluginDownloadFailedStatus();
-
- // Enables the plugin window if required and initiates an update of the
- // the plugin window.
- void RefreshDisplay();
-
- // Create tooltip window.
- bool CreateToolTip();
-
- // Update ToolTip text with the message shown inside the default plugin.
- void UpdateToolTip();
-
- // Initializes resources like the icon, fonts, etc needed by the plugin
- // installer
- //
- // Parameters:
- // module_handle
- // Handle to the dll in which this object is instantiated.
- // Returns true on success.
- bool InitializeResources(HINSTANCE module_handle);
-
- // Paints user action messages to the plugin window. These include messages
- // like whether the user should click on the plugin window to download the
- // plugin, etc.
- //
- // Parameters:
- // paint_dc
- // The device context returned in BeginPaint.
- // x_origin
- // Horizontal reference point indicating where the text is to be displayed.
- // y_origin
- // Vertical reference point indicating where the text is to be displayed.
- //
- void PaintUserActionInformation(HDC paint_dc, int x_origin, int y_origin);
-
- private:
- // Notify the renderer that plugin is available to download.
- void NotifyPluginStatus(int status);
-
- // The plugins opaque instance handle
- NPP instance_;
- // The plugin instantiation mode (NP_FULL or NP_EMBED)
- int16 mode_;
- // The handle to the icon displayed in the plugin installation window.
- HICON icon_;
- // The Get plugin link message string displayed at the top left corner of
- // the plugin window.
- std::wstring get_plugin_link_message_;
- // The command string displayed in the plugin installation window.
- std::wstring command_;
- // An additional message displayed at times by the plugin.
- std::wstring optional_additional_message_;
- // The current stream.
- NPStream* plugin_install_stream_;
- // The plugin finder URL.
- std::string plugin_finder_url_;
- // The desired mime type.
- std::string mime_type_;
- // The desired language.
- std::string desired_language_;
- // The plugin name.
- std::wstring plugin_name_;
- // The actual download URL.
- std::string plugin_download_url_;
- // Indicates if the plugin download URL points to an exe.
- bool plugin_download_url_for_display_;
- // The current state of the plugin installer.
- PluginInstallerState plugin_installer_state_;
- // Used to display the UI for plugin installation.
- PluginInstallDialog* install_dialog_;
- // To enable auto refresh of the plugin window once the installation
- // is complete, we spawn the installation process in a job, and monitor
- // IO completion events on the job. When the active process count of the
- // job falls to zero, we initiate an auto refresh of the plugin list
- // which enables the downloaded plugin to be instantiated.
- // The completion events from the job are monitored in an independent
- // thread.
- scoped_refptr<PluginInstallationJobMonitorThread>
- installation_job_monitor_thread_;
- // This object handles download and parsing of the plugins database.
- PluginDatabaseHandler plugin_database_handler_;
- // Indicates if the left click to download/refresh should be enabled or not.
- bool enable_click_;
- // Handles to the fonts used to display text in the plugin window.
- HFONT bold_font_;
- HFONT regular_font_;
- HFONT underline_font_;
- // Tooltip Window.
- HWND tooltip_;
-
- DISALLOW_COPY_AND_ASSIGN(PluginInstallerImpl);
-};
-
-
-#endif // CHROME_DEFAULT_PLUGIN_PLUGIN_IMPL_WIN_H_
diff --git a/chrome/default_plugin/plugin_install_job_monitor.cc b/chrome/default_plugin/plugin_install_job_monitor.cc
deleted file mode 100644
index d0088eb..0000000
--- a/chrome/default_plugin/plugin_install_job_monitor.cc
+++ /dev/null
@@ -1,106 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/default_plugin/plugin_install_job_monitor.h"
-
-#include "base/message_loop.h"
-#include "chrome/default_plugin/plugin_impl.h"
-
-PluginInstallationJobMonitorThread::PluginInstallationJobMonitorThread()
- : Thread("Chrome plugin install thread"),
- install_job_completion_port_(NULL),
- stop_job_monitoring_(false),
- plugin_window_(NULL),
- install_job_(NULL) {
-}
-
-PluginInstallationJobMonitorThread::~PluginInstallationJobMonitorThread() {
- if (install_job_) {
- ::CloseHandle(install_job_);
- install_job_ = NULL;
- }
-}
-
-bool PluginInstallationJobMonitorThread::Initialize() {
- DCHECK(install_job_ == NULL);
-
- install_job_ = ::CreateJobObject(NULL, NULL);
- if (install_job_ == NULL) {
- DLOG(ERROR) << "Failed to create plugin install job. Error = "
- << ::GetLastError();
- NOTREACHED();
- return false;
- }
-
- return Start();
-}
-
-void PluginInstallationJobMonitorThread::Init() {
- this->message_loop()->PostTask(FROM_HERE,
- NewRunnableMethod(this,
- &PluginInstallationJobMonitorThread::WaitForJobThread));
-}
-
-void PluginInstallationJobMonitorThread::WaitForJobThread() {
- if (!install_job_) {
- DLOG(WARNING) << "Invalid job information";
- NOTREACHED();
- return;
- }
-
- DCHECK(install_job_completion_port_ == NULL);
-
- install_job_completion_port_ =
- ::CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL,
- reinterpret_cast<ULONG_PTR>(install_job_), 0);
- DCHECK(install_job_completion_port_ != NULL);
-
- JOBOBJECT_ASSOCIATE_COMPLETION_PORT job_completion_port = {0};
- job_completion_port.CompletionKey = install_job_;
- job_completion_port.CompletionPort = install_job_completion_port_;
-
- if (!SetInformationJobObject(install_job_,
- JobObjectAssociateCompletionPortInformation,
- &job_completion_port,
- sizeof(job_completion_port))) {
- DLOG(WARNING) << "Failed to associate completion port with job object.Err "
- << ::GetLastError();
- NOTREACHED();
- return;
- }
-
- while (!stop_job_monitoring_) {
- unsigned long job_event = 0;
- unsigned long completion_key = 0;
- LPOVERLAPPED overlapped = NULL;
-
- if (::GetQueuedCompletionStatus(
- install_job_completion_port_, &job_event,
- &completion_key, &overlapped, INFINITE)) {
- if (job_event == JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO) {
- DLOG(INFO) << "All processes in the installer job have exited.";
- DLOG(INFO) << "Initiating refresh on the plugins list";
- DCHECK(::IsWindow(plugin_window_));
- PostMessageW(plugin_window_,
- PluginInstallerImpl::kRefreshPluginsMessage, 0, 0);
- }
- }
- }
-}
-
-void PluginInstallationJobMonitorThread::Stop() {
- stop_job_monitoring_ = true;
- ::PostQueuedCompletionStatus(
- install_job_completion_port_, JOB_OBJECT_MSG_END_OF_JOB_TIME,
- reinterpret_cast<ULONG_PTR>(install_job_), NULL);
- Thread::Stop();
- ::CloseHandle(install_job_completion_port_);
- install_job_completion_port_ = NULL;
-}
-
-bool PluginInstallationJobMonitorThread::AssignProcessToJob(
- HANDLE process_handle) {
- BOOL result = AssignProcessToJobObject(install_job_, process_handle);
- return result ? true : false;
-}
diff --git a/chrome/default_plugin/plugin_install_job_monitor.h b/chrome/default_plugin/plugin_install_job_monitor.h
deleted file mode 100644
index 271d4eb..0000000
--- a/chrome/default_plugin/plugin_install_job_monitor.h
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_DEFAULT_PLUGIN_PLUGIN_INSTALL_JOB_MONITOR_H_
-#define CHROME_DEFAULT_PLUGIN_PLUGIN_INSTALL_JOB_MONITOR_H_
-
-#include <windows.h>
-
-#include "base/logging.h"
-#include "base/thread.h"
-#include "base/ref_counted.h"
-
-// Provides the plugin installation job monitoring functionality.
-// The PluginInstallationJobMonitorThread class represents a background
-// thread which monitors the install job completion port which is associated
-// with the job when an instance of this class is initialized.
-class PluginInstallationJobMonitorThread :
- public base::Thread,
- public base::RefCountedThreadSafe<PluginInstallationJobMonitorThread> {
-
- public:
- PluginInstallationJobMonitorThread();
-
- // Initializes the plugin install job. This involves creating the job object
- // and starting the thread which monitors the job completion port.
- // Returns true on success.
- bool Initialize();
-
- // Stops job monitoring and invokes the base Stop function.
- void Stop();
-
- // Simple setter/getters for the plugin window handle.
- void set_plugin_window(HWND plugin_window) {
- DCHECK(::IsWindow(plugin_window));
- plugin_window_ = plugin_window;
- }
-
- HWND plugin_window() const {
- return plugin_window_;
- }
-
- // Adds a process to the job object.
- //
- // Parameters:
- // process_handle
- // Handle to the process which is to be added to the plugin install job.
- // Returns true on success.
- bool AssignProcessToJob(HANDLE process_handle);
-
- protected:
- // Installs a task on our thread to call WaitForJobThread(). We
- // can't call it directly since we would deadlock (thread which
- // creates me blocks until Start() returns, and Start() doesn't
- // return until Init() does).
- virtual void Init();
-
- // Blocks on the plugin installation job completion port by invoking the
- // GetQueuedCompletionStatus API.
- // We return from this function when the job monitoring thread is stopped.
- virtual void WaitForJobThread();
-
- private:
- friend class base::RefCountedThreadSafe<PluginInstallationJobMonitorThread>;
-
- virtual ~PluginInstallationJobMonitorThread();
-
- // The install job completion port. Created in Init.
- HANDLE install_job_completion_port_;
- // Indicates that job monitoring is to be stopped
- bool stop_job_monitoring_;
- // The install job. Should be created before the job monitor thread
- // is started.
- HANDLE install_job_;
- // The plugin window handle.
- HWND plugin_window_;
-
- DISALLOW_COPY_AND_ASSIGN(PluginInstallationJobMonitorThread);
-};
-
-#endif // CHROME_DEFAULT_PLUGIN_PLUGIN_INSTALL_JOB_MONITOR_H_
diff --git a/chrome/default_plugin/plugin_main.cc b/chrome/default_plugin/plugin_main.cc
deleted file mode 100644
index faf6c82..0000000
--- a/chrome/default_plugin/plugin_main.cc
+++ /dev/null
@@ -1,336 +0,0 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/default_plugin/plugin_main.h"
-
-#include "base/logging.h"
-#include "base/string_util.h"
-#include "chrome/default_plugin/plugin_impl.h"
-#include "webkit/glue/webkit_glue.h"
-
-namespace default_plugin {
-
-#if defined(OS_WIN)
-//
-// Forward declare the linker-provided pseudo variable for the
-// current module handle.
-//
-extern "C" IMAGE_DOS_HEADER __ImageBase;
-
-// get the handle to the currently executing module
-inline HMODULE GetCurrentModuleHandle() {
- return reinterpret_cast<HINSTANCE>(&__ImageBase);
-}
-#endif
-
-// Initialized in NP_Initialize.
-NPNetscapeFuncs* g_browser = NULL;
-
-NPError API_CALL NP_GetEntryPoints(NPPluginFuncs* funcs) {
- // Be explicit about the namespace, because all internal plugins have
- // functions with these names and some might accidentally put them into the
- // global namespace. In that case, the linker might prefer the global one.
- funcs->version = 11;
- funcs->size = sizeof(*funcs);
- funcs->newp = default_plugin::NPP_New;
- funcs->destroy = default_plugin::NPP_Destroy;
- funcs->setwindow = default_plugin::NPP_SetWindow;
- funcs->newstream = default_plugin::NPP_NewStream;
- funcs->destroystream = default_plugin::NPP_DestroyStream;
- funcs->writeready = default_plugin::NPP_WriteReady;
- funcs->write = default_plugin::NPP_Write;
- funcs->asfile = NULL;
- funcs->print = NULL;
- funcs->event = default_plugin::NPP_HandleEvent;
- funcs->urlnotify = default_plugin::NPP_URLNotify;
-#if defined(OS_POSIX) && !defined(OS_MACOSX)
- funcs->getvalue = default_plugin::NPP_GetValue;
-#else
- funcs->getvalue = NULL;
-#endif
- funcs->setvalue = NULL;
- return NPERR_NO_ERROR;
-}
-
-NPError API_CALL NP_Initialize(NPNetscapeFuncs* funcs) {
- g_browser = funcs;
- return 0;
-}
-
-#if defined(OS_POSIX) && !defined(OS_MACOSX)
-NPError API_CALL NP_Initialize(NPNetscapeFuncs* funcs, NPPluginFuncs* p_funcs) {
- NPError err = NP_Initialize(funcs);
- if (err != NPERR_NO_ERROR)
- return err;
- return NP_GetEntryPoints(p_funcs);
-}
-#endif
-
-NPError API_CALL NP_Shutdown(void) {
- g_browser = NULL;
- return NPERR_NO_ERROR;
-}
-
-namespace {
-// This function is only invoked when the default plugin is invoked
-// with a special mime type application/chromium-test-default-plugin
-void SignalTestResult(NPP instance) {
- NPObject *window_obj = NULL;
- g_browser->getvalue(instance, NPNVWindowNPObject, &window_obj);
- if (!window_obj) {
- NOTREACHED();
- return;
- }
-
- std::string script = "javascript:onSuccess()";
- NPString script_string;
- script_string.UTF8Characters = script.c_str();
- script_string.UTF8Length =
- static_cast<unsigned int>(script.length());
-
- NPVariant result_var;
- g_browser->evaluate(instance, window_obj,
- &script_string, &result_var);
- g_browser->releaseobject(window_obj);
-}
-
-} // namespace CHROMIUM_DefaultPluginTest
-
-bool NegotiateModels(NPP instance) {
-#if defined(OS_MACOSX)
- NPError err;
- // Set drawing model to core graphics
- NPBool supportsCoreGraphics = false;
- err = g_browser->getvalue(instance,
- NPNVsupportsCoreGraphicsBool,
- &supportsCoreGraphics);
- if (err != NPERR_NO_ERROR || !supportsCoreGraphics) {
- NOTREACHED();
- return false;
- }
- err = g_browser->setvalue(instance,
- NPPVpluginDrawingModel,
- (void*)NPDrawingModelCoreGraphics);
- if (err != NPERR_NO_ERROR) {
- NOTREACHED();
- return false;
- }
-
- // Set event model to cocoa
- NPBool supportsCocoaEvents = false;
- err = g_browser->getvalue(instance,
- NPNVsupportsCocoaBool,
- &supportsCocoaEvents);
- if (err != NPERR_NO_ERROR || !supportsCocoaEvents) {
- NOTREACHED();
- return false;
- }
- err = g_browser->setvalue(instance,
- NPPVpluginEventModel,
- (void*)NPEventModelCocoa);
- if (err != NPERR_NO_ERROR) {
- NOTREACHED();
- return false;
- }
-#elif defined(OS_POSIX)
- NPError err;
- // Check that chrome still supports xembed.
- NPBool supportsXEmbed = false;
- err = g_browser->getvalue(instance,
- NPNVSupportsXEmbedBool,
- &supportsXEmbed);
- if (err != NPERR_NO_ERROR || !supportsXEmbed) {
- NOTREACHED();
- return false;
- }
-
- // Check that the toolkit is still gtk2.
- NPNToolkitType toolkit;
- err = g_browser->getvalue(instance,
- NPNVToolkit,
- &toolkit);
- if (err != NPERR_NO_ERROR || toolkit != NPNVGtk2) {
- NOTREACHED();
- return false;
- }
-#endif
- return true;
-}
-
-NPError NPP_New(NPMIMEType plugin_type, NPP instance, uint16_t mode, int16_t argc,
- char* argn[], char* argv[], NPSavedData* saved) {
- if (instance == NULL)
- return NPERR_INVALID_INSTANCE_ERROR;
-
- // We don't want the null plugin to work in the following cases:-
- // 1. Test-shell
- // 2. The plugin is running in the renderer process.
- if (webkit_glue::IsPluginRunningInRendererProcess()) {
- return NPERR_GENERIC_ERROR;
- }
-
- if (!NegotiateModels(instance))
- return NPERR_INCOMPATIBLE_VERSION_ERROR;
-
- PluginInstallerImpl* plugin_impl = new PluginInstallerImpl(mode);
- plugin_impl->Initialize(
-#if defined(OS_WIN)
- GetCurrentModuleHandle(),
-#else
- NULL,
-#endif
- instance, plugin_type, argc,
- argn, argv);
-
- instance->pdata = reinterpret_cast<void*>(plugin_impl);
-
- if (!base::strcasecmp(plugin_type,
- "application/chromium-test-default-plugin")) {
- SignalTestResult(instance);
- }
-
- return NPERR_NO_ERROR;
-}
-
-NPError NPP_Destroy(NPP instance, NPSavedData** save) {
- PluginInstallerImpl* plugin_impl =
- reinterpret_cast<PluginInstallerImpl*>(instance->pdata);
-
- if (plugin_impl) {
- plugin_impl->Shutdown();
- delete plugin_impl;
- }
-
- return NPERR_NO_ERROR;
-}
-
-NPError NPP_SetWindow(NPP instance, NPWindow* window_info) {
- if (instance == NULL)
- return NPERR_INVALID_INSTANCE_ERROR;
-
- if (window_info == NULL) {
- NOTREACHED();
- return NPERR_GENERIC_ERROR;
- }
-
- PluginInstallerImpl* plugin_impl =
- reinterpret_cast<PluginInstallerImpl*>(instance->pdata);
-
- if (plugin_impl == NULL) {
- NOTREACHED();
- return NPERR_GENERIC_ERROR;
- }
-
- if (!plugin_impl->NPP_SetWindow(window_info)) {
- delete plugin_impl;
- return NPERR_GENERIC_ERROR;
- }
-
- return NPERR_NO_ERROR;
-}
-
-NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream* stream,
- NPBool seekable, uint16_t* stype) {
- if (instance == NULL)
- return NPERR_INVALID_INSTANCE_ERROR;
-
- PluginInstallerImpl* plugin_impl =
- reinterpret_cast<PluginInstallerImpl*>(instance->pdata);
-
- if (!plugin_impl) {
- NOTREACHED();
- return NPERR_INVALID_INSTANCE_ERROR;
- }
-
- plugin_impl->NewStream(stream);
- return NPERR_NO_ERROR;
-}
-
-NPError NPP_DestroyStream(NPP instance, NPStream* stream, NPReason reason) {
- if (instance == NULL)
- return NPERR_INVALID_INSTANCE_ERROR;
-
- PluginInstallerImpl* plugin_impl =
- reinterpret_cast<PluginInstallerImpl*>(instance->pdata);
-
- if (!plugin_impl) {
- NOTREACHED();
- return NPERR_INVALID_INSTANCE_ERROR;
- }
-
- plugin_impl->DestroyStream(stream, reason);
- return NPERR_NO_ERROR;
-}
-
-int32_t NPP_WriteReady(NPP instance, NPStream* stream) {
- if (instance == NULL)
- return 0;
-
- PluginInstallerImpl* plugin_impl =
- reinterpret_cast<PluginInstallerImpl*>(instance->pdata);
-
- if (!plugin_impl) {
- NOTREACHED();
- return 0;
- }
-
- if (plugin_impl->WriteReady(stream))
- return 0x7FFFFFFF;
- return 0;
-}
-
-int32_t NPP_Write(NPP instance, NPStream* stream, int32_t offset, int32_t len,
- void* buffer) {
- if (instance == NULL)
- return 0;
-
- PluginInstallerImpl* plugin_impl =
- reinterpret_cast<PluginInstallerImpl*>(instance->pdata);
-
- if (!plugin_impl) {
- NOTREACHED();
- return 0;
- }
-
- return plugin_impl->Write(stream, offset, len, buffer);
-}
-
-void NPP_URLNotify(NPP instance, const char* url, NPReason reason,
- void* notifyData) {
- if (instance != NULL) {
- PluginInstallerImpl* plugin_impl =
- reinterpret_cast<PluginInstallerImpl*>(instance->pdata);
-
- if (!plugin_impl) {
- NOTREACHED();
- return;
- }
-
- plugin_impl->URLNotify(url, reason);
- }
-}
-
-#if defined(OS_POSIX) && !defined(OS_MACOSX)
-NPError NPP_GetValue(NPP instance, NPPVariable variable, void* value) {
- switch (variable) {
- case NPPVpluginNeedsXEmbed:
- *static_cast<NPBool*>(value) = true;
- return NPERR_NO_ERROR;
- default:
- return NPERR_INVALID_PARAM;
- }
-}
-#endif
-
-int16_t NPP_HandleEvent(NPP instance, void* event) {
- if (instance == NULL)
- return 0;
-
- PluginInstallerImpl* plugin_impl =
- reinterpret_cast<PluginInstallerImpl*>(instance->pdata);
-
- return plugin_impl->NPP_HandleEvent(event);
-}
-
-} // default_plugin
diff --git a/chrome/default_plugin/plugin_main.h b/chrome/default_plugin/plugin_main.h
deleted file mode 100644
index 50f3009..0000000
--- a/chrome/default_plugin/plugin_main.h
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <algorithm>
-#include <string>
-
-#include "third_party/npapi/bindings/npapi.h"
-#include "third_party/npapi/bindings/nphostapi.h"
-
-namespace default_plugin {
-
-extern NPNetscapeFuncs* g_browser;
-
-// Standard NPAPI functions.
-NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16_t mode, int16_t argc,
- char* argn[], char* argv[], NPSavedData* saved);
-NPError NPP_Destroy(NPP instance, NPSavedData** save);
-NPError NPP_SetWindow(NPP instance, NPWindow* window);
-NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream* stream,
- NPBool seekable, uint16_t* stype);
-NPError NPP_DestroyStream(NPP instance, NPStream* stream, NPReason reason);
-int32_t NPP_WriteReady(NPP instance, NPStream* stream);
-int32_t NPP_Write(NPP instance, NPStream* stream, int32_t offset, int32_t len,
- void* buffer);
-#if defined(OS_POSIX) && !defined(OS_MACOSX)
-NPError NPP_GetValue(NPP instance, NPPVariable variable, void* value);
-#endif
-void NPP_URLNotify(NPP instance, const char* url, NPReason reason,
- void* notifyData);
-int16_t NPP_HandleEvent(NPP instance, void* event);
-
-#if defined(OS_POSIX) && !defined(OS_MACOSX)
-NPError API_CALL NP_Initialize(NPNetscapeFuncs* funcs, NPPluginFuncs* p_funcs);
-#else
-NPError API_CALL NP_GetEntryPoints(NPPluginFuncs* funcs);
-NPError API_CALL NP_Initialize(NPNetscapeFuncs* funcs);
-#endif
-NPError API_CALL NP_Shutdown(void);
-
-} // default_plugin
diff --git a/chrome/default_plugin/plugins.xml b/chrome/default_plugin/plugins.xml
deleted file mode 100644
index 8799ca9..0000000
--- a/chrome/default_plugin/plugins.xml
+++ /dev/null
@@ -1,653 +0,0 @@
-<plugins>
- <plugin>
- <mime>application/x-java-applet</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-bean</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-vm</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-applet,version=1.1.1</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-bean,version=1.1.1</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-applet,version=1.1</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-bean,version=1.1</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-applet,version=1.2</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-bean,version=1.2</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-applet,version=1.1.3</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-bean,version=1.1.3</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-applet,version=1.1.2</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-bean,version=1.1.2</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-applet,version=1.3</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-bean,version=1.3</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-applet,version=1.2.2</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-bean,version=1.2.2</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-applet,version=1.2.1</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-bean,version=1.2.1</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-applet,version=1.3.1</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-bean,version=1.3.1</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-applet,version=1.4</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-bean,version=1.4</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-applet,version=1.4.1</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-bean,version=1.4.1</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-applet,version=1.4.2</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-bean,version=1.4.2</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-applet,version=1.5</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-bean,version=1.5</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-applet,version=1.6</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-java-bean,version=1.6</mime>
- <lang>en-us</lang>
- <name>Java(TM) Platform SE6 U10 (Beta)</name>
- <url>http://javadl.sun.com/webapps/download/GetFile/1.6.0_10-b33/windows-i586/jre-6u10-windows-i586-p-iftw.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/x-pn-realaudio-plugin</mime>
- <lang>en-us</lang>
- <name>Real player</name>
- <url>http://software-dl.real.com/free/windows/installer/R41R02F/RealPlayer11GOLD.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/x-pn-realaudio</mime>
- <lang>en-us</lang>
- <name>Real player</name>
- <url>http://software-dl.real.com/free/windows/installer/R41R02F/RealPlayer11GOLD.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/vnd.rn-realaudio</mime>
- <lang>en-us</lang>
- <name>Real player</name>
- <url>http://software-dl.real.com/free/windows/installer/R41R02F/RealPlayer11GOLD.exe</url>
- </plugin>
-
- <plugin>
- <mime>video/vnd.rn-realvideo</mime>
- <lang>en-us</lang>
- <name>Real player</name>
- <url>http://software-dl.real.com/free/windows/installer/R41R02F/RealPlayer11GOLD.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-shockwave-flash</mime>
- <lang>en-us</lang>
- <name>Adobe Flash Movie</name>
- <url>http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/futuresplash</mime>
- <lang>en-us</lang>
- <name>Adobe FutureSpash Movie</name>
- <url>http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-director</mime>
- <lang>en-us</lang>
- <name>Adobe Shockwave Movie</name>
- <url>http://fpdownload.macromedia.com/get/shockwave/default/english/win95nt/10.2.0.023/Shockwave_Installer_Slim.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/pdf</mime>
- <lang>en-us</lang>
- <name>Adobe Acrobat</name>
- <url>http://ardownload.adobe.com/pub/adobe/reader/win/8.x/8.1.2/enu/AdbeRdr812_en_US.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/vnd.adobe.x-mars</mime>
- <lang>en-us</lang>
- <name>Adobe Acrobat</name>
- <url>http://ardownload.adobe.com/pub/adobe/reader/win/8.x/8.1.2/enu/AdbeRdr812_en_US.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/vnd.fdf</mime>
- <lang>en-us</lang>
- <name>Adobe Acrobat</name>
- <url>http://ardownload.adobe.com/pub/adobe/reader/win/8.x/8.1.2/enu/AdbeRdr812_en_US.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/vnd.adobe.xfdf</mime>
- <lang>en-us</lang>
- <name>Adobe Acrobat</name>
- <url>http://ardownload.adobe.com/pub/adobe/reader/win/8.x/8.1.2/enu/AdbeRdr812_en_US.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/vnd.adobe.xdp+xml</mime>
- <lang>en-us</lang>
- <name>Adobe Acrobat</name>
- <url>http://ardownload.adobe.com/pub/adobe/reader/win/8.x/8.1.2/enu/AdbeRdr812_en_US.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/vnd.adobe.xfd+xml</mime>
- <lang>en-us</lang>
- <name>Adobe Acrobat</name>
- <url>http://ardownload.adobe.com/pub/adobe/reader/win/8.x/8.1.2/enu/AdbeRdr812_en_US.exe</url>
- </plugin>
-
- <plugin>
- <mime>video/quicktime</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/sdp</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-sdp</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-rtsp</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>video/flc</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/x-wav</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/wav</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/aiff</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/x-aiff</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/basic</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/mid</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/x-midi</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/midi</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/vnd.qcelp</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/x-gsm</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/amr</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/aac</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/x-aac</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/x-caf</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/ac3</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/x-ac3</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>video/x-mpeg</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>video/mpeg</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/mpeg</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/x-mpeg</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>video/3ggp</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/3ggp</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>video/3ggp2</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/3ggp2</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>video/sd-video</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>application/x-mpeg</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>video/mp4</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/mp4</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/x-m4a</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/x-m4p</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>audio/x-m4b</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>video/x-m4v</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>image/x-macpaint</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>image/pict</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>image/x-pict</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>image/png</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>image/x-png</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>image/x-quicktime</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>image/x-sgi</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>image/x-targa</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>image/jp2</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>image/jpeg2000</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>image/jpeg2000-image</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime>image/x-jpeg2000-image</mime>
- <lang>en-us</lang>
- <name>Quicktime player</name>
- <url>http://wsidecar.apple.com/cgi-bin/nph-reg3rdpty2.pl/product=19502&amp;cat=59&amp;platform=osx&amp;method=sa/QuickTimeInstaller.exe</url>
- </plugin>
-
-</plugins> \ No newline at end of file
diff --git a/chrome/default_plugin/plugins2.xml b/chrome/default_plugin/plugins2.xml
deleted file mode 100644
index 3cddca3..0000000
--- a/chrome/default_plugin/plugins2.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<plugins>
- <plugin>
- <mime_types>application/x-java-applet;application/x-java-bean;application/x-java-vm;application/x-java-applet,version=1.1.1;application/x-java-bean,version=1.1.1;application/x-java-applet,version=1.1;application/x-java-bean,version=1.1;application/x-java-applet,version=1.2;application/x-java-bean,version=1.2;application/x-java-applet,version=1.1.3;application/x-java-bean,version=1.1.3;application/x-java-applet,version=1.1.2;application/x-java-bean,version=1.1.2;application/x-java-applet,version=1.3;application/x-java-bean,version=1.3;application/x-java-applet,version=1.2.2;application/x-java-bean,version=1.2.2;application/x-java-applet,version=1.2.1;application/x-java-bean,version=1.2.1;application/x-java-applet,version=1.3.1;application/x-java-bean,version=1.3.1;application/x-java-applet,version=1.4;application/x-java-bean,version=1.4;application/x-java-applet,version=1.4.1;application/x-java-bean,version=1.4.1;application/x-java-applet,version=1.4.2;application/x-java-bean,version=1.4.2;application/x-java-applet,version=1.5;application/x-java-bean,version=1.5;application/x-java-applet,version=1.6;application/x-java-bean,version=1.6;</mime_types>
- <lang>en-us</lang>
- <name>Java(TM)</name>
- <url>http://java.com/en/download/</url>
- <displayurl>1</displayurl>
- </plugin>
-
- <plugin>
- <mime_types>audio/x-pn-realaudio-plugin;audio/x-pn-realaudio;audio/vnd.rn-realaudio;video/vnd.rn-realvideo</mime_types>
- <lang>en-us</lang>
- <name>RealPlayer</name>
- <url>http://forms.real.com/real/realone/download.html?type=rpsp_us</url>
- </plugin>
-
- <plugin>
- <mime_types>application/x-shockwave-flash;application/futuresplash</mime_types>
- <lang>en-us</lang>
- <name>Adobe Flash Player</name>
- <url>http://fpdownload.adobe.com/get/flashplayer/current/install_flash_player.exe</url>
- </plugin>
-
- <plugin>
- <mime_types>application/x-director</mime_types>
- <lang>en-us</lang>
- <name>Adobe Shockwave Player</name>
- <url>http://fpdownload.macromedia.com/get/shockwave/default/english/win95nt/latest/Shockwave_Installer_Slim.exe</url>
- </plugin>
-
- <plugin>
- <mime_types>application/pdf;application/vnd.adobe.x-mars;application/vnd.fdf;application/vnd.adobe.xfdf;application/vnd.adobe.xdp+xml;application/vnd.adobe.xfd+xml;</mime_types>
- <lang>en-us</lang>
- <name>Adobe Reader</name>
- <url>http://ardownload.adobe.com/pub/adobe/reader/win/9.x/9.1/enu/AdbeRdr910_en_US.exe</url>
- </plugin>
-
- <plugin>
- <mime_types>video/quicktime;application/sdp;application/x-sdp;application/x-rtsp;video/flc;audio/x-wav;audio/wav;audio/aiff;audio/x-aiff;audio/basic;audio/mid;audio/x-midi;audio/midi;audio/vnd.qcelp;audio/x-gsm;audio/amr;audio/aac;audio/x-aac;audio/x-caf;audio/ac3;audio/x-ac3;video/x-mpeg;video/mpeg;audio/mpeg;audio/x-mpeg;video/3ggp;audio/3ggp;video/3ggp2;audio/3ggp2;video/sd-video;application/x-mpeg;video/mp4;audio/mp4;audio/x-m4a;audio/x-m4p;audio/x-m4b;video/x-m4v;image/x-macpaint;image/pict;image/x-pict;image/png;image/x-png;image/x-quicktime;image/x-sgi;image/x-targa;image/jp2;image/jpeg2000;image/jpeg2000-image;image/x-jpeg2000-image</mime_types>
- <lang>en-us</lang>
- <name>QuickTime Player</name>
- <url>http://appldnld.apple.com.edgesuite.net/content.info.apple.com/QuickTime/061-6118.20090601.Pq3V9/QuickTimeInstaller.exe</url>
- </plugin>
-
- <plugin>
- <mime_types>application/x-ms-wmp;application/asx;video/x-ms-asf-plugin;application/x-mplayer2;video/x-ms-asf;video/x-ms-wm;audio/x-ms-wma;audio/x-ms-wax;video/x-ms-wmv;video/x-ms-wvx</mime_types>
- <lang>en-us</lang>
- <name>Windows Media Player Plugin</name>
- <url>http://port25.technet.com/videos/downloads/wmpfirefoxplugin.exe</url>
- </plugin>
-
- <plugin>
- <mime_types>video/divx;video/x-matroska</mime_types>
- <lang>en-us</lang>
- <name>DivX Web Player</name>
- <url>http://download.divx.com/player/divxdotcom/DivXWebPlayerInstaller.exe</url>
- </plugin>
-
-</plugins> \ No newline at end of file
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc
index f05e975..bb7d877 100644
--- a/chrome/renderer/render_view.cc
+++ b/chrome/renderer/render_view.cc
@@ -111,6 +111,7 @@
#include "third_party/WebKit/WebKit/chromium/public/WebVector.h"
#include "third_party/WebKit/WebKit/chromium/public/WebWindowFeatures.h"
#include "webkit/appcache/web_application_cache_host_impl.h"
+#include "webkit/default_plugin/default_plugin_shared.h"
#include "webkit/glue/dom_operations.h"
#include "webkit/glue/form_data.h"
#include "webkit/glue/form_field.h"
@@ -120,7 +121,6 @@
#include "webkit/glue/media/simple_data_source.h"
#include "webkit/glue/media/video_renderer_impl.h"
#include "webkit/glue/password_form.h"
-#include "webkit/glue/plugins/default_plugin_shared.h"
#include "webkit/glue/plugins/pepper_webplugin_impl.h"
#include "webkit/glue/plugins/plugin_list.h"
#include "webkit/glue/plugins/webplugin_delegate.h"