Firefox/Projects/Jetpack: Difference between revisions

No edit summary
Line 7: Line 7:
Jetpack's architecture under versions 0.8 and earlier (now called the Jetpack "prototype") is being abandoned for a new architecture nicknamed the Jetpack "reboot".  Check the [[Labs/Jetpack/Reboot|Labs reboot wiki page]] for details, but briefly, the differences between the two:
Jetpack's architecture under versions 0.8 and earlier (now called the Jetpack "prototype") is being abandoned for a new architecture nicknamed the Jetpack "reboot".  Check the [[Labs/Jetpack/Reboot|Labs reboot wiki page]] for details, but briefly, the differences between the two:


* Extensions produced under the reboot are actually XPIs.  Under the prototype they were single JS files.
* "Jetpacks" produced under the reboot are actually XPIs.  They're real extensions.  Under the prototype they were single JS files.
* The reboot is very loosely integrated with Firefox.  The Jetpack runtime is bundled in each XPI.  The only significant hook that these XPIs require is a [https://bugzilla.mozilla.org/show_bug.cgi?id=542385 no-restart-needed mechanism].
* Since jetpacks are now extensions, it no longer makes sense to say "I made a jetpack."  It's more like, "I made an extension using Jetpack."
* Jetpack itself is no longer an extension.  It no longer makes sense to say, "I downloaded Jetpack."
* Indeed it's an open question what "Jetpack" even means under the reboot.  The reboot is basically a build toolchain, runtime, and API -- a framework.
* "[[Labs/Jetpack/Reboot/Glossary|Cuddlefish]]" is what Atul has coined this framework.
* The reboot is very loosely integrated with Firefox.  The runtime is bundled in each XPI.  The only significant hook that these XPIs require is a [https://bugzilla.mozilla.org/show_bug.cgi?id=542385 no-restart-needed mechanism].
* The reboot has a security model, the prototype didn't.
* The reboot has a security model, the prototype didn't.
* There are two layers of APIs under the reboot.  "Cuddlefish" is low-level, chrome-privileged, and wraps the platform.  "Jetpack" is high-level, secure, builds on Cuddlefish, low surface area, and friendly.  It's possible to use Cuddlefish without using Jetpack.
* Roughly speaking, there are two layers of APIs under the reboot.  There's a low-level, chrome-privileged layer that wraps the platform.  And there's a high-level, secure, low surface area, and friendly layer that builds on the lower.  It's the higher layer that might be thought of as "the Jetpack API," but it's entirely possible to use the lower to build an extension.
* Contractors are working on an in-browser IDE called "FlightDeck."


== Current Status ==
== Current Status ==
Confirmed users
764

edits