Hi,
Following on this subject, I added the possibility to provide a file system from inside a NACL module. My approach adds a "source policy" that chooses from 2 event routers ( plugin event router and an extension event router ). When a new provided file system is requested (extension or plugin) the backend chooses the type of filesystem it wants.
The work in progress patch for the approach can be viewed here:
I did some testing with several file system operations and I obtained the following results with an in memory file system( I tested copying a 1GB file inside the plugin and copying it out ). The following measurements are taken at the pepper host level and represent the overall time in seconds for a 1 GB file to be passed from the browser to the plugin and reverse:
Trusted transfer browser-plugin: 4.76038(allocation+copying time 1.04689)
Trusted transfer plugin-browser: 2.43648
Nexe transfer browser-plugin: 15.6217(allocation+copying time 0.70824)
Nexe transfer plugin-browser: 3.61965
At this point I cannot explain what is causing the difference between the read and write( not taking into consideration the allocation and copying ). I can see that the "read" operation from the plugin are almost similar in the 2 modes.
Is there a difference between the IPC communication in the directions browser-to-plugin and plugin-to-browser ?