Mercurial > hg > release > icedtea6-1.4.1
changeset 1348:546ef0cdee06
2009-03-09 Lillian Angel <langel@redhat.com>
* IcedTeaPlugin.cc: Merged from icedtea6 properly.
author | Lillian Angel <langel@redhat.com> |
---|---|
date | Mon, 09 Mar 2009 09:03:18 -0400 |
parents | 210451e9bb5e |
children | d926001740a5 |
files | ChangeLog IcedTeaPlugin.cc |
diffstat | 2 files changed, 62 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Wed Feb 25 13:52:55 2009 -0500 +++ b/ChangeLog Mon Mar 09 09:03:18 2009 -0400 @@ -1,3 +1,7 @@ +2009-03-09 Lillian Angel <langel@redhat.com> + + * IcedTeaPlugin.cc: Merged from icedtea6 properly. + 2009-02-25 Lillian Angel <langel@redhat.com> * NEWS: Updated for 1.4.1.
--- a/IcedTeaPlugin.cc Wed Feb 25 13:52:55 2009 -0500 +++ b/IcedTeaPlugin.cc Mon Mar 09 09:03:18 2009 -0400 @@ -1063,6 +1063,7 @@ IcedTeaPluginFactory* factory; PRUint32 instance_identifier; nsCString instanceIdentifierPrefix; + nsresult GetCookie(const char* siteAddr, char** cookieString); }; @@ -2281,6 +2282,12 @@ } +#include <nsICookieService.h> +#include <nsIIOService.h> +#include <nsIScriptSecurityManager.h> +#include <nsIURI.h> +#include <nsServiceManagerUtils.h> + NS_IMPL_ISUPPORTS2 (IcedTeaPluginInstance, nsIPluginInstance, nsIJVMPluginInstance) @@ -2337,25 +2344,35 @@ PLUGIN_DEBUG_1ARG("TAG FROM BROWSER = %s\n", tagMessage.get()); // encode newline characters in the message - nsCString toSend(""); + nsCString encodedAppletTag(""); for (int i=0; i < tagMessage.Length(); i++) { if (tagMessage.get()[i] == '\r') { - toSend += " "; + encodedAppletTag += " "; continue; } if (tagMessage.get()[i] == '\n') { - toSend += " "; + encodedAppletTag += " "; continue; } - toSend += tagMessage.get()[i]; + encodedAppletTag += tagMessage.get()[i]; } - factory->SendMessageToAppletViewer (toSend); + nsCString cookieInfo(instanceIdentifierPrefix); + cookieInfo += "cookie "; + + char* cookieString; + if (GetCookie(documentbase, &cookieString) == NS_OK) + { + cookieInfo += cookieString; + } + + factory->SendMessageToAppletViewer (cookieInfo); + factory->SendMessageToAppletViewer (encodedAppletTag); // Set back-pointer to peer instance. PLUGIN_DEBUG_1ARG ("SETTING PEER!!!: %p\n", aPeer); @@ -2631,6 +2648,42 @@ NS_IMETHODIMP +IcedTeaPluginInstance::GetCookie(const char* siteAddr, char** cookieString) +{ + + nsresult rv; + nsCOMPtr<nsIScriptSecurityManager> sec_man = + do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv); + + if (!sec_man) { + return NS_ERROR_FAILURE; + } + + nsCOMPtr<nsIIOService> io_svc = do_GetService(NS_IOSERVICE_CONTRACTID, &rv); + + if (NS_FAILED(rv) || !io_svc) { + return NS_ERROR_FAILURE; + } + + nsIURI *uri; + io_svc->NewURI(nsCString(siteAddr), NULL, NULL, &uri); + + nsCOMPtr<nsICookieService> cookie_svc = do_GetService(NS_COOKIESERVICE_CONTRACTID, &rv); + + if (NS_FAILED(rv) || !cookie_svc) { + return NS_ERROR_FAILURE; + } + + rv = cookie_svc->GetCookieString(uri, NULL, cookieString); + + if (NS_FAILED(rv) || !*cookieString) { + return NS_ERROR_FAILURE; + } + + return NS_OK; +} + +NS_IMETHODIMP IcedTeaPluginFactory::GetJavaObject (PRUint32 instance_identifier, jobject* object) { @@ -4438,10 +4491,7 @@ #include <nsISocketTransport.h> #include <nsITransport.h> #include <nsNetCID.h> -#include <nsServiceManagerUtils.h> #include <nsIPrincipal.h> -#include <nsIScriptSecurityManager.h> -#include <nsIURI.h> #include <xpcjsid.h> IcedTeaJNIEnv::IcedTeaJNIEnv (IcedTeaPluginFactory* factory) @@ -4486,16 +4536,6 @@ nsresult IcedTeaJNIEnv::GetEnabledPrivileges(nsCString *privileges, nsISecurityContext *ctx) { - nsresult rv; - nsCOMPtr<nsIScriptSecurityManager> sec_man = - do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv); - - if (NS_FAILED(rv) || !sec_man) { - return NS_ERROR_FAILURE; - } - - PRBool isEnabled = PR_FALSE; - // check privileges one by one privileges->Truncate();