Clean up code in part for fix for doing GET rather than POST when NPN_PostURL is called bug 77603 r=av sr=attinasi

This commit is contained in:
peterlubczynski%netscape.com 2001-09-26 02:45:20 +00:00
Родитель 5339979276
Коммит 37fe825fc1
2 изменённых файлов: 84 добавлений и 134 удалений

Просмотреть файл

@ -2171,82 +2171,57 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetInstance(nsIPluginInstance *&aInstance)
} }
NS_IMETHODIMP nsPluginInstanceOwner::GetURL(const char *aURL, const char *aTarget, void *aPostData, PRUint32 aPostDataLen, void *aHeadersData, NS_IMETHODIMP nsPluginInstanceOwner::GetURL(const char *aURL, const char *aTarget, void *aPostData, PRUint32 aPostDataLen, void *aHeadersData,
PRUint32 aHeadersDataLen) PRUint32 aHeadersDataLen)
{ {
nsISupports *container; NS_ENSURE_TRUE(mOwner,NS_ERROR_NULL_POINTER);
nsILinkHandler *lh; NS_ENSURE_TRUE(mContext,NS_ERROR_NULL_POINTER);
nsresult rv;
nsIView *view;
nsPoint origin;
if ((nsnull != mOwner) && (nsnull != mContext)) // the container of the pres context will give us the link handler
{ nsCOMPtr<nsISupports> container;
rv = mOwner->GetOffsetFromView(mContext, origin, &view); nsresult rv = mContext->GetContainer(getter_AddRefs(container));
NS_ENSURE_TRUE(container,NS_ERROR_FAILURE);
nsCOMPtr<nsILinkHandler> lh = do_QueryInterface(container);
NS_ENSURE_TRUE(lh, NS_ERROR_FAILURE);
if (NS_OK == rv) nsAutoString uniurl; uniurl.AssignWithConversion(aURL);
{ nsAutoString unitarget; unitarget.AssignWithConversion(aTarget);
rv = mContext->GetContainer(&container); nsAutoString fullurl;
if (NS_OK == rv) nsCOMPtr<nsIURI> baseURL;
{ nsCOMPtr<nsIDocument> doc;
rv = container->QueryInterface(NS_GET_IID(nsILinkHandler), (void **)&lh); rv = GetDocument(getter_AddRefs(doc));
if (NS_SUCCEEDED(rv) && doc) {
rv = doc->GetBaseURL(*getter_AddRefs(baseURL)); // gets the document's url
} else {
mOwner->GetFullURL(*getter_AddRefs(baseURL)); // gets the plugin's content url
}
if (NS_OK == rv) // Create an absolute URL
{ NS_MakeAbsoluteURI(fullurl, uniurl, baseURL);
nsAutoString uniurl; uniurl.AssignWithConversion(aURL);
nsAutoString unitarget; unitarget.AssignWithConversion(aTarget);
nsAutoString fullurl;
nsIURI* baseURL;
nsCOMPtr<nsIDocument> doc; NS_ENSURE_TRUE(NS_SUCCEEDED(rv),NS_ERROR_FAILURE);
rv = GetDocument(getter_AddRefs(doc)); nsCOMPtr<nsIContent> content;
if (NS_SUCCEEDED(rv) && doc) mOwner->GetContent(getter_AddRefs(content));
{ NS_ENSURE_TRUE(content, NS_ERROR_FAILURE);
rv = doc->GetBaseURL(baseURL); // gets the document's url
}
else
{
mOwner->GetFullURL(baseURL); // gets the plugin's content url
}
// Create an absolute URL nsCOMPtr<nsISupports> result;
rv = NS_MakeAbsoluteURI(fullurl, uniurl, baseURL); nsCOMPtr<nsIInputStream> postDataStream;
nsCOMPtr<nsIInputStream> headersDataStream;
NS_IF_RELEASE(baseURL); if (aPostData) {
rv = NS_NewPostDataStream(getter_AddRefs(postDataStream), PR_FALSE, (const char *) aPostData, 0);
if (NS_OK == rv) { }
nsIContent* content = nsnull; if (aHeadersData) {
mOwner->GetContent(&content); rv = NS_NewByteInputStream(getter_AddRefs(result), (const char *) aHeadersData, aHeadersDataLen);
nsCOMPtr<nsISupports> result = nsnull; if (result) {
nsCOMPtr<nsIInputStream> postDataStream; headersDataStream = do_QueryInterface(result, &rv);
nsCOMPtr<nsIInputStream> headersDataStream;
if (aPostData) {
NS_NewPostDataStream(getter_AddRefs(postDataStream),
PR_FALSE,
(const char *) aPostData, 0);
}
if (aHeadersData) {
NS_NewByteInputStream(getter_AddRefs(result),
(const char *) aHeadersData, aHeadersDataLen);
if (result) {
headersDataStream = do_QueryInterface(result, &rv);
}
}
rv = lh->OnLinkClick(content, eLinkVerb_Replace,
fullurl.get(),
unitarget.get(),
postDataStream, headersDataStream);
NS_IF_RELEASE(content);
}
NS_RELEASE(lh);
}
NS_RELEASE(container);
}
} }
} }
else
rv = NS_ERROR_FAILURE; NS_ASSERTION(NS_SUCCEEDED(rv),"failed in creating plugin post data stream");
rv = lh->OnLinkClick(content, eLinkVerb_Replace,
fullurl.get(), unitarget.get(),
postDataStream, headersDataStream);
return rv; return rv;
} }

Просмотреть файл

@ -2171,82 +2171,57 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetInstance(nsIPluginInstance *&aInstance)
} }
NS_IMETHODIMP nsPluginInstanceOwner::GetURL(const char *aURL, const char *aTarget, void *aPostData, PRUint32 aPostDataLen, void *aHeadersData, NS_IMETHODIMP nsPluginInstanceOwner::GetURL(const char *aURL, const char *aTarget, void *aPostData, PRUint32 aPostDataLen, void *aHeadersData,
PRUint32 aHeadersDataLen) PRUint32 aHeadersDataLen)
{ {
nsISupports *container; NS_ENSURE_TRUE(mOwner,NS_ERROR_NULL_POINTER);
nsILinkHandler *lh; NS_ENSURE_TRUE(mContext,NS_ERROR_NULL_POINTER);
nsresult rv;
nsIView *view;
nsPoint origin;
if ((nsnull != mOwner) && (nsnull != mContext)) // the container of the pres context will give us the link handler
{ nsCOMPtr<nsISupports> container;
rv = mOwner->GetOffsetFromView(mContext, origin, &view); nsresult rv = mContext->GetContainer(getter_AddRefs(container));
NS_ENSURE_TRUE(container,NS_ERROR_FAILURE);
nsCOMPtr<nsILinkHandler> lh = do_QueryInterface(container);
NS_ENSURE_TRUE(lh, NS_ERROR_FAILURE);
if (NS_OK == rv) nsAutoString uniurl; uniurl.AssignWithConversion(aURL);
{ nsAutoString unitarget; unitarget.AssignWithConversion(aTarget);
rv = mContext->GetContainer(&container); nsAutoString fullurl;
if (NS_OK == rv) nsCOMPtr<nsIURI> baseURL;
{ nsCOMPtr<nsIDocument> doc;
rv = container->QueryInterface(NS_GET_IID(nsILinkHandler), (void **)&lh); rv = GetDocument(getter_AddRefs(doc));
if (NS_SUCCEEDED(rv) && doc) {
rv = doc->GetBaseURL(*getter_AddRefs(baseURL)); // gets the document's url
} else {
mOwner->GetFullURL(*getter_AddRefs(baseURL)); // gets the plugin's content url
}
if (NS_OK == rv) // Create an absolute URL
{ NS_MakeAbsoluteURI(fullurl, uniurl, baseURL);
nsAutoString uniurl; uniurl.AssignWithConversion(aURL);
nsAutoString unitarget; unitarget.AssignWithConversion(aTarget);
nsAutoString fullurl;
nsIURI* baseURL;
nsCOMPtr<nsIDocument> doc; NS_ENSURE_TRUE(NS_SUCCEEDED(rv),NS_ERROR_FAILURE);
rv = GetDocument(getter_AddRefs(doc)); nsCOMPtr<nsIContent> content;
if (NS_SUCCEEDED(rv) && doc) mOwner->GetContent(getter_AddRefs(content));
{ NS_ENSURE_TRUE(content, NS_ERROR_FAILURE);
rv = doc->GetBaseURL(baseURL); // gets the document's url
}
else
{
mOwner->GetFullURL(baseURL); // gets the plugin's content url
}
// Create an absolute URL nsCOMPtr<nsISupports> result;
rv = NS_MakeAbsoluteURI(fullurl, uniurl, baseURL); nsCOMPtr<nsIInputStream> postDataStream;
nsCOMPtr<nsIInputStream> headersDataStream;
NS_IF_RELEASE(baseURL); if (aPostData) {
rv = NS_NewPostDataStream(getter_AddRefs(postDataStream), PR_FALSE, (const char *) aPostData, 0);
if (NS_OK == rv) { }
nsIContent* content = nsnull; if (aHeadersData) {
mOwner->GetContent(&content); rv = NS_NewByteInputStream(getter_AddRefs(result), (const char *) aHeadersData, aHeadersDataLen);
nsCOMPtr<nsISupports> result = nsnull; if (result) {
nsCOMPtr<nsIInputStream> postDataStream; headersDataStream = do_QueryInterface(result, &rv);
nsCOMPtr<nsIInputStream> headersDataStream;
if (aPostData) {
NS_NewPostDataStream(getter_AddRefs(postDataStream),
PR_FALSE,
(const char *) aPostData, 0);
}
if (aHeadersData) {
NS_NewByteInputStream(getter_AddRefs(result),
(const char *) aHeadersData, aHeadersDataLen);
if (result) {
headersDataStream = do_QueryInterface(result, &rv);
}
}
rv = lh->OnLinkClick(content, eLinkVerb_Replace,
fullurl.get(),
unitarget.get(),
postDataStream, headersDataStream);
NS_IF_RELEASE(content);
}
NS_RELEASE(lh);
}
NS_RELEASE(container);
}
} }
} }
else
rv = NS_ERROR_FAILURE; NS_ASSERTION(NS_SUCCEEDED(rv),"failed in creating plugin post data stream");
rv = lh->OnLinkClick(content, eLinkVerb_Replace,
fullurl.get(), unitarget.get(),
postDataStream, headersDataStream);
return rv; return rv;
} }