I don't understand this line of code. `File.join()` takes two path parts, and this generates the first by 1. getting a path, 2. converting it to a URL via string concatenation, 3. converting it back to a path via `URL.toFilename()`. But isn't the first step sufficient? I.e. simply:

    return File.join(sandbox.gDirService.get("TmpD", Ci.nsILocalFile).path, "b2g");

If you really do need to convert the path to a URL, you should use `URL.fromFilename()` to do it, which would make this:

    return File.join(URL.toFilename(URL.fromFilename(sandbox.gDirService.get("TmpD", Ci.nsILocalFile).path)), "b2g");

But then you should really add a code comment explaining why it's necessary to convert the path to a URL only to turn right around and convert it back again. And wrap the line so it doesn't exceed 80 characters in length.