For NPAPI Plugins having stream transfer mode other than NP_NORMAL, a QTemporaryFile through openTemporaryFile() call in PluginStream::startstream gets created and in PluginStream::destroystream the file handle is closed before passing the file path in NPP_AsFile to plugin. By default, the property ‘autoremove’ of QTemporaryFile is true and such a setting deletes the file for closeFileHandle() itself, hence plugin does not see any created temp file.
Created attachment 39247 [details] Patch which solves the deletion of created temp file before passing to plugin in NPP_AsFile In the patch, in openTemporaryFile() method implemented for platform Qt in FileSystemQt.cpp, the autoremove property has been set to false.Hence closeFileHandle() just closes and does not delete the file before passing it to plugin. As last step of PluginStream::destroystream, anyways the deletion of this temp file has been taken care.
Comment on attachment 39247 [details] Patch which solves the deletion of created temp file before passing to plugin in NPP_AsFile Your patch looks good in principle, thanks for tracking down this bug! > + QTemporaryFile *tempFile = new QTemporaryFile(QLatin1String(prefix)); > + tempFile->setAutoRemove(false); > + QFile *temp = tempFile; Please fix the coding style for the newly added lines, the position of the * should be next to the type, not the variable. Also please include a ChangeLog entry explaining your fix, using the same (very good btw) explanation you mentioned in this bugzilla entry. r- because of that, but otherwise ok :-)
Created attachment 39255 [details] Final Patch with review comments incorporated Thanks for the review Simon !
Comment on attachment 39255 [details] Final Patch with review comments incorporated r=me. You don't have to fill out the "Reviewed by" in the ChangeLog, it's okay to leave it with the "NOBODY (OOPS)" field. It will be filled out when landing.
Landed in r48204