Bug 29068 - NPAPI Plugin NPP_AsFile not working on Qt Webkit
: NPAPI Plugin NPP_AsFile not working on Qt Webkit
Status: RESOLVED FIXED
: WebKit
WebKit Qt
: 528+ (Nightly build)
: PC S60 3rd edition
: P2 Critical
Assigned To:
:
:
:
:
  Show dependency treegraph
 
Reported: 2009-09-08 23:01 PST by
Modified: 2009-09-09 02:53 PST (History)


Attachments
Patch which solves the deletion of created temp file before passing to plugin in NPP_AsFile (730 bytes, patch)
2009-09-08 23:09 PST, Rohini Ananth
hausmann: review-
Review Patch | Details | Formatted Diff | Diff
Final Patch with review comments incorporated (1.43 KB, patch)
2009-09-09 02:24 PST, Rohini Ananth
hausmann: review+
Review Patch | Details | Formatted Diff | Diff


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2009-09-08 23:01:48 PST
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.
------- Comment #1 From 2009-09-08 23:09:41 PST -------
Created an attachment (id=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 #2 From 2009-09-09 01:40:19 PST -------
(From update of attachment 39247 [details])
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 :-)
------- Comment #3 From 2009-09-09 02:24:14 PST -------
Created an attachment (id=39255) [details]
Final Patch with review comments incorporated

Thanks for the review Simon !
------- Comment #4 From 2009-09-09 02:53:02 PST -------
(From update of attachment 39255 [details])
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.
------- Comment #5 From 2009-09-09 02:53:30 PST -------
Landed in r48204