Bug 1352572 - Remove unused code that implement NPN_PostURLNotify(file=true) and NPN_PostURL(file=true); r?bsmedberg
- Remove nsNPAPIPlugin.cpp:MakeNewNPAPIStreamInternal(file) parameter
- Remove nsPluginHost::PostURL(isFile) parameter
- Remove nsPluginHost::CreateTempFileToPost() unused function
MozReview-Commit-ID: 7bCBzGz9oSM
--- a/dom/plugins/base/nsNPAPIPlugin.cpp
+++ b/dom/plugins/base/nsNPAPIPlugin.cpp
@@ -386,17 +386,17 @@ nsNPAPIPlugin::RetainStream(NPStream *ps
// Create a new NPP GET or POST (given in the type argument) url
// stream that may have a notify callback
NPError
MakeNewNPAPIStreamInternal(NPP npp, const char *relativeURL, const char *target,
eNPPStreamTypeInternal type,
bool bDoNotify = false,
void *notifyData = nullptr, uint32_t len = 0,
- const char *buf = nullptr, NPBool file = false)
+ const char *buf = nullptr)
{
if (!npp)
return NPERR_INVALID_INSTANCE_ERROR;
PluginDestructionGuard guard(npp);
nsNPAPIPluginInstance *inst = (nsNPAPIPluginInstance *) npp->ndata;
if (!inst || !inst->IsRunning())
@@ -427,17 +427,17 @@ MakeNewNPAPIStreamInternal(NPP npp, cons
{
if (NS_FAILED(pluginHost->GetURL(inst, relativeURL, target, listener,
nullptr, nullptr, false)))
return NPERR_GENERIC_ERROR;
break;
}
case eNPPStreamTypeInternal_Post:
{
- if (NS_FAILED(pluginHost->PostURL(inst, relativeURL, len, buf, file,
+ if (NS_FAILED(pluginHost->PostURL(inst, relativeURL, len, buf,
target, listener, nullptr, nullptr,
false, 0, nullptr)))
return NPERR_GENERIC_ERROR;
break;
}
default:
NS_ERROR("how'd I get here");
}
@@ -748,17 +748,17 @@ NPError
"notify=%p, url=%s, buf=%s\n",
(void*)npp, target, len, file, notifyData, relativeURL,
buf));
PluginDestructionGuard guard(npp);
return MakeNewNPAPIStreamInternal(npp, relativeURL, target,
eNPPStreamTypeInternal_Post, true,
- notifyData, len, buf, file);
+ notifyData, len, buf);
}
NPError
_posturl(NPP npp, const char *relativeURL, const char *target,
uint32_t len, const char *buf, NPBool file)
{
if (!NS_IsMainThread()) {
NPN_PLUGIN_LOG(PLUGIN_LOG_ALWAYS,("NPN_posturl called from the wrong thread\n"));
@@ -768,17 +768,17 @@ NPError
("NPN_PostURL: npp=%p, target=%s, file=%d, len=%d, url=%s, "
"buf=%s\n",
(void*)npp, target, file, len, relativeURL, buf));
PluginDestructionGuard guard(npp);
return MakeNewNPAPIStreamInternal(npp, relativeURL, target,
eNPPStreamTypeInternal_Post, false, nullptr,
- len, buf, file);
+ len, buf);
}
NPError
_newstream(NPP npp, NPMIMEType type, const char* target, NPStream* *result)
{
if (!NS_IsMainThread()) {
NPN_PLUGIN_LOG(PLUGIN_LOG_ALWAYS,("NPN_newstream called from the wrong thread\n"));
return NPERR_INVALID_PARAM;
--- a/dom/plugins/base/nsPluginHost.cpp
+++ b/dom/plugins/base/nsPluginHost.cpp
@@ -504,17 +504,16 @@ nsresult nsPluginHost::GetURLWithHeaders
}
return rv;
}
nsresult nsPluginHost::PostURL(nsISupports* pluginInst,
const char* url,
uint32_t postDataLen,
const char* postData,
- bool isFile,
const char* target,
nsNPAPIPluginStreamListener* streamListener,
const char* altHost,
const char* referrer,
bool forceJSEnabled,
uint32_t postHeadersLength,
const char* postHeaders)
{
@@ -524,55 +523,34 @@ nsresult nsPluginHost::PostURL(nsISuppor
// by a null target) if we also have a nsNPAPIPluginStreamListener
// to talk to also
if (!target && !streamListener)
return NS_ERROR_ILLEGAL_VALUE;
nsNPAPIPluginInstance* instance = static_cast<nsNPAPIPluginInstance*>(pluginInst);
nsCOMPtr<nsIInputStream> postStream;
- if (isFile) {
- nsCOMPtr<nsIFile> file;
- rv = CreateTempFileToPost(postData, getter_AddRefs(file));
- if (NS_FAILED(rv))
- return rv;
-
- nsCOMPtr<nsIInputStream> fileStream;
- rv = NS_NewLocalFileInputStream(getter_AddRefs(fileStream),
- file,
- PR_RDONLY,
- 0600,
- nsIFileInputStream::DELETE_ON_CLOSE |
- nsIFileInputStream::CLOSE_ON_EOF);
- if (NS_FAILED(rv))
- return rv;
-
- rv = NS_NewBufferedInputStream(getter_AddRefs(postStream), fileStream, 8192);
- if (NS_FAILED(rv))
- return rv;
- } else {
- char *dataToPost;
- uint32_t newDataToPostLen;
- ParsePostBufferToFixHeaders(postData, postDataLen, &dataToPost, &newDataToPostLen);
- if (!dataToPost)
- return NS_ERROR_UNEXPECTED;
-
- nsCOMPtr<nsIStringInputStream> sis = do_CreateInstance("@mozilla.org/io/string-input-stream;1", &rv);
- if (!sis) {
- free(dataToPost);
- return rv;
- }
-
- // data allocated by ParsePostBufferToFixHeaders() is managed and
- // freed by the string stream.
- postDataLen = newDataToPostLen;
- sis->AdoptData(dataToPost, postDataLen);
- postStream = sis;
+ char *dataToPost;
+ uint32_t newDataToPostLen;
+ ParsePostBufferToFixHeaders(postData, postDataLen, &dataToPost, &newDataToPostLen);
+ if (!dataToPost)
+ return NS_ERROR_UNEXPECTED;
+
+ nsCOMPtr<nsIStringInputStream> sis = do_CreateInstance("@mozilla.org/io/string-input-stream;1", &rv);
+ if (!sis) {
+ free(dataToPost);
+ return rv;
}
+ // data allocated by ParsePostBufferToFixHeaders() is managed and
+ // freed by the string stream.
+ postDataLen = newDataToPostLen;
+ sis->AdoptData(dataToPost, postDataLen);
+ postStream = sis;
+
if (target) {
RefPtr<nsPluginInstanceOwner> owner = instance->GetOwner();
if (owner) {
rv = owner->GetURL(url, target, postStream,
(void*)postHeaders, postHeadersLength, true);
}
}
@@ -3589,117 +3567,16 @@ nsPluginHost::ParsePostBufferToFixHeader
}
*outPostDataLen = newBufferLen;
return NS_OK;
}
nsresult
-nsPluginHost::CreateTempFileToPost(const char *aPostDataURL, nsIFile **aTmpFile)
-{
- nsresult rv;
- int64_t fileSize;
- nsAutoCString filename;
-
- // stat file == get size & convert file:///c:/ to c: if needed
- nsCOMPtr<nsIFile> inFile;
- rv = NS_GetFileFromURLSpec(nsDependentCString(aPostDataURL),
- getter_AddRefs(inFile));
- if (NS_FAILED(rv)) {
- nsCOMPtr<nsIFile> localFile;
- rv = NS_NewNativeLocalFile(nsDependentCString(aPostDataURL), false,
- getter_AddRefs(localFile));
- if (NS_FAILED(rv)) return rv;
- inFile = localFile;
- }
- rv = inFile->GetFileSize(&fileSize);
- if (NS_FAILED(rv)) return rv;
- rv = inFile->GetNativePath(filename);
- if (NS_FAILED(rv)) return rv;
-
- if (fileSize != 0) {
- nsCOMPtr<nsIInputStream> inStream;
- rv = NS_NewLocalFileInputStream(getter_AddRefs(inStream), inFile);
- if (NS_FAILED(rv)) return rv;
-
- // Create a temporary file to write the http Content-length:
- // %ld\r\n\" header and "\r\n" == end of headers for post data to
-
- nsCOMPtr<nsIFile> tempFile;
- rv = GetPluginTempDir(getter_AddRefs(tempFile));
- if (NS_FAILED(rv))
- return rv;
-
- nsAutoCString inFileName;
- inFile->GetNativeLeafName(inFileName);
- // XXX hack around bug 70083
- inFileName.Insert(NS_LITERAL_CSTRING("post-"), 0);
- rv = tempFile->AppendNative(inFileName);
-
- if (NS_FAILED(rv))
- return rv;
-
- // make it unique, and mode == 0600, not world-readable
- rv = tempFile->CreateUnique(nsIFile::NORMAL_FILE_TYPE, 0600);
- if (NS_FAILED(rv))
- return rv;
-
- nsCOMPtr<nsIOutputStream> outStream;
- if (NS_SUCCEEDED(rv)) {
- rv = NS_NewLocalFileOutputStream(getter_AddRefs(outStream),
- tempFile,
- (PR_WRONLY | PR_CREATE_FILE | PR_TRUNCATE),
- 0600); // 600 so others can't read our form data
- }
- NS_ASSERTION(NS_SUCCEEDED(rv), "Post data file couldn't be created!");
- if (NS_FAILED(rv))
- return rv;
-
- char buf[1024];
- uint32_t br, bw;
- bool firstRead = true;
- while (true) {
- // Read() mallocs if buffer is null
- rv = inStream->Read(buf, 1024, &br);
- if (NS_FAILED(rv) || (int32_t)br <= 0)
- break;
- if (firstRead) {
- //"For protocols in which the headers must be distinguished from the body,
- // such as HTTP, the buffer or file should contain the headers, followed by
- // a blank line, then the body. If no custom headers are required, simply
- // add a blank line ('\n') to the beginning of the file or buffer.
-
- char *parsedBuf;
- // assuming first 1K (or what we got) has all headers in,
- // lets parse it through nsPluginHost::ParsePostBufferToFixHeaders()
- ParsePostBufferToFixHeaders((const char *)buf, br, &parsedBuf, &bw);
- rv = outStream->Write(parsedBuf, bw, &br);
- free(parsedBuf);
- if (NS_FAILED(rv) || (bw != br))
- break;
-
- firstRead = false;
- continue;
- }
- bw = br;
- rv = outStream->Write(buf, bw, &br);
- if (NS_FAILED(rv) || (bw != br))
- break;
- }
-
- inStream->Close();
- outStream->Close();
- if (NS_SUCCEEDED(rv))
- tempFile.forget(aTmpFile);
- }
- return rv;
-}
-
-nsresult
nsPluginHost::NewPluginNativeWindow(nsPluginNativeWindow ** aPluginNativeWindow)
{
return PLUG_NewPluginNativeWindow(aPluginNativeWindow);
}
nsresult
nsPluginHost::GetPluginName(nsNPAPIPluginInstance *aPluginInstance,
const char** aPluginName)
--- a/dom/plugins/base/nsPluginHost.h
+++ b/dom/plugins/base/nsPluginHost.h
@@ -125,31 +125,29 @@ public:
nsNPAPIPluginStreamListener* streamListener,
const char* altHost,
const char* referrer,
bool forceJSEnabled);
nsresult PostURL(nsISupports* pluginInst,
const char* url,
uint32_t postDataLen,
const char* postData,
- bool isFile,
const char* target,
nsNPAPIPluginStreamListener* streamListener,
const char* altHost,
const char* referrer,
bool forceJSEnabled,
uint32_t postHeadersLength,
const char* postHeaders);
nsresult UserAgent(const char **retstring);
nsresult ParsePostBufferToFixHeaders(const char *inPostData,
uint32_t inPostDataLen,
char **outPostData,
uint32_t *outPostDataLen);
- nsresult CreateTempFileToPost(const char *aPostDataURL, nsIFile **aTmpFile);
nsresult NewPluginNativeWindow(nsPluginNativeWindow ** aPluginNativeWindow);
void AddIdleTimeTarget(nsIPluginInstanceOwner* objectFrame, bool isVisible);
void RemoveIdleTimeTarget(nsIPluginInstanceOwner* objectFrame);
nsresult GetPluginName(nsNPAPIPluginInstance *aPluginInstance,
const char** aPluginName);
nsresult StopPluginInstance(nsNPAPIPluginInstance* aInstance);