> Additional question. When I tried to pass the dart DirectoryEntry it was passed as DartProxy rather than an object and it failed in the js code. What is the right way to pass dart DirectoryEntry to js code.

I think you're running to an issue where, the DirectoryEntry you're using if probably from package:chrome, which uses the older style js interop, and the git code here is using the newer style dart:js interop. I would hold off on testing methods that require a directory entry for now. The chrome_gen library should have sufficient file system support for this in a day or two.