Bug 29068 - NPAPI Plugin NPP_AsFile not working on Qt Webkit
Summary: NPAPI Plugin NPP_AsFile not working on Qt Webkit
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Qt (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC S60 3rd edition
: P2 Critical
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-09-08 23:01 PDT by Rohini Ananth
Modified: 2009-09-09 02:53 PDT (History)
1 user (show)

See Also:


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 PDT, Rohini Ananth
hausmann: review-
Details | Formatted Diff | Diff
Final Patch with review comments incorporated (1.43 KB, patch)
2009-09-09 02:24 PDT, Rohini Ananth
hausmann: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Rohini Ananth 2009-09-08 23:01:48 PDT
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 Rohini Ananth 2009-09-08 23:09:41 PDT
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 2 Simon Hausmann 2009-09-09 01:40:19 PDT
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 :-)
Comment 3 Rohini Ananth 2009-09-09 02:24:14 PDT
Created attachment 39255 [details]
Final Patch with review comments incorporated

Thanks for the review Simon !
Comment 4 Simon Hausmann 2009-09-09 02:53:02 PDT
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.
Comment 5 Simon Hausmann 2009-09-09 02:53:30 PDT
Landed in r48204