Use lazy module getter for osfile.jsm
Payload body should be formed using JSON.stringify.
Use localProfileDir instead of profileDir.
s/Source/URL in some variables for clarity.
Remove 'DirectoryLinksProvider' from the test function names for clarity.
Clear prefs on cleanDirectoryLinksProvider().
readJsonFile() returns a data object not a fileObject.
Malformed URI and unknown host tests should wait for _fetchAndCacheLinks() to finish running.
Factor out _linksURL check into setupDirectoryLinksProvider().
Use XMLHttpRequest instead of NetUtil.asyncFetch().