manifestURL can be generated from origin only for core apps by adding the '/manifest.webapp', but this is not true for external apps, for example have a look to marketplace:
"gamepack": {
    "origin": "app://gamepack",
    "manifestURL": "https://marketplace.firefox.com/app/6292ef09-0027-4b08-80db-231bb9942a5c/manifest.webapp",
  ....
Also keep in mind that origin is not mandatory.