installFinished doesn't necessarily get called before the permanent item appears; e.g. imagine you have a really really big package, with the .desktop file first and a very big file after that, the extraction might place the .desktop file in the right location, but installFinished is still not called, as the big file is still being extracted.