[Spice-devel] [spice-xpi 2/4] Handle USB-related plugin properties

Hans de Goede hdegoede at redhat.com
Tue Apr 3 11:51:30 PDT 2012


ACK.

On 04/03/2012 03:07 PM, Christophe Fergeau wrote:
> The Firefox plugin exposes the UsbAutoShare property and the SetUsbFilter
> method that were not wired until now. This commit propagates their value to
> the nsPluginInstance object. Next step will be to transmit them to
> the controller.
> ---
>   SpiceXPI/src/plugin/plugin.cpp |   19 +++++++++----------
>   SpiceXPI/src/plugin/plugin.h   |    2 ++
>   2 files changed, 11 insertions(+), 10 deletions(-)
>
> diff --git a/SpiceXPI/src/plugin/plugin.cpp b/SpiceXPI/src/plugin/plugin.cpp
> index 5e40ee2..e3e6e80 100644
> --- a/SpiceXPI/src/plugin/plugin.cpp
> +++ b/SpiceXPI/src/plugin/plugin.cpp
> @@ -195,6 +195,7 @@ nsPluginInstance::nsPluginInstance(NPP aInstance):
>       m_no_taskmgr_execution(PR_FALSE),
>       m_send_ctrlaltdel(PR_TRUE),
>       m_usb_redir(PR_FALSE),
> +    m_usb_auto_share(PR_TRUE),
>       m_scriptable_peer(NULL)
>   {
>       // create temporary directory in /tmp
> @@ -232,6 +233,7 @@ NPBool nsPluginInstance::init(NPWindow *aWindow)
>       m_number_of_monitors.clear();
>       m_guest_host_name.clear();
>       m_hot_keys.clear();
> +    m_usb_filter.clear();
>       m_language.clear();
>       m_trust_store_file.clear();
>       m_color_depth.clear();
> @@ -491,17 +493,12 @@ void nsPluginInstance::SetUsbListenPort(unsigned short aUsbPort)
>   /* attribute boolean UsbAutoShare; */
>   PRBool nsPluginInstance::GetUsbAutoShare() const
>   {
> -    // this method exists due to RHEVM 2.2
> -    // and should be removed some time in future,
> -    // when fixed in RHEVM
> -    return false;
> +    return m_usb_auto_share;
>   }
>
>   void nsPluginInstance::SetUsbAutoShare(PRBool aUsbAutoShare)
>   {
> -    // this method exists due to RHEVM 2.2
> -    // and should be removed some time in future,
> -    // when fixed in RHEVM
> +    m_usb_auto_share = aUsbAutoShare;
>   }
>
>   /* attribute string ColorDepth; */
> @@ -695,6 +692,9 @@ void nsPluginInstance::Connect()
>           SendStr(CONTROLLER_TLS_CIPHERS, m_cipher_suite.c_str());
>           SendStr(CONTROLLER_SET_TITLE, m_title.c_str());
>           SendBool(CONTROLLER_SEND_CAD, m_send_ctrlaltdel);
> +        SendBool(CONTROLLER_ENABLE_USB, m_usb_redir);
> +        SendBool(CONTROLLER_ENABLE_USB_AUTOSHARE, m_usb_auto_share);
> +        SendStr(CONTROLLER_USB_FILTER, m_usb_filter.c_str());
>
>           /*
>            * HACK -- remove leading s from m_SSLChannels, e.g. "main" not "smain"
> @@ -753,9 +753,8 @@ void nsPluginInstance::SetLanguageStrings(const char *aSection, const char *aLan
>
>   void nsPluginInstance::SetUsbFilter(const char *aUsbFilter)
>   {
> -    // this method exists due to RHEVM 2.2
> -    // and should be removed some time in future,
> -    // when fixed in RHEVM
> +    if (aUsbFilter != NULL)
> +        m_usb_filter = aUsbFilter;
>   }
>
>   void nsPluginInstance::CallOnDisconnected(int code)
> diff --git a/SpiceXPI/src/plugin/plugin.h b/SpiceXPI/src/plugin/plugin.h
> index 7f1e259..e34574b 100644
> --- a/SpiceXPI/src/plugin/plugin.h
> +++ b/SpiceXPI/src/plugin/plugin.h
> @@ -213,6 +213,8 @@ private:
>       PRBool m_no_taskmgr_execution;
>       PRBool m_send_ctrlaltdel;
>       PRBool m_usb_redir;
> +    std::string m_usb_filter;
> +    PRBool m_usb_auto_share;
>       std::map<std::string, std::string>  m_language;
>       std::string m_color_depth;
>       std::string m_disable_effects;


More information about the Spice-devel mailing list