This (or something related) might be the reason why the no-package-json case isn't working in the UI. For those cases, the "id" we use is the full local file path to the installed extension folder, so you're probably not getting that from the installationResult that's passed back from the node side (if I'm understanding the code correctly). In the current flow of things, I *think* what you probably need to do is have InstallExtensionDialog stuff the original extension directory into the install result as well as whether that extension directory had a package.json to begin with, and if it didn't, use that directory as the id further on down the road.

Another reason to centralize more of this logic in ExtensionManager...