FirefoxOS/New security model: Difference between revisions

Jump to navigation Jump to search
Line 117: Line 117:


Signed packages follow normal http semantics. I.e. if the package still exists in our http cache when the user revisits a signed page, but the cache headers indicate that the content needs to be updated, we do a normal GET request to see if a new version needs to be downloaded.
Signed packages follow normal http semantics. I.e. if the package still exists in our http cache when the user revisits a signed page, but the cache headers indicate that the content needs to be updated, we do a normal GET request to see if a new version needs to be downloaded.
Bug XXX - make sure http cache follows normal HTTP semantics for packages
Bug XXX - implement cache-pinning of packages
Bug XXX- connect gaia pinning with gecko cache-pinning for packages


If a new version of the package is being sent, we follow the same behavior as when visiting a package for the first time. I.e. we need to reverify signatures as well as update any permissions in the nsIPermissionManager database.
If a new version of the package is being sent, we follow the same behavior as when visiting a package for the first time. I.e. we need to reverify signatures as well as update any permissions in the nsIPermissionManager database.
Line 131: Line 125:


Gecko can then use the diff to patch the existing package.
Gecko can then use the diff to patch the existing package.
Bug XXX - support differential package updates (not 2.5)


Note that sending a diff is entirely the server's choice. If the server doesn't support this newly created diff mechanism, then it will simply serve a full package. Likewise if the user is on a very old version which the server doesn't have a diff for or if the diff has bigger size than the resulting package, the server can simply serve a full package.
Note that sending a diff is entirely the server's choice. If the server doesn't support this newly created diff mechanism, then it will simply serve a full package. Likewise if the user is on a very old version which the server doesn't have a diff for or if the diff has bigger size than the resulting package, the server can simply serve a full package.
Line 141: Line 133:


Installing a signed package mainly consists of pinning it in the http cache such that it doesn't get evicted. We still need to check for updates according to normal "app update" scheduling.
Installing a signed package mainly consists of pinning it in the http cache such that it doesn't get evicted. We still need to check for updates according to normal "app update" scheduling.
Bug XXX - implement updating of pinned packages
Bug XXX - handle case where developer has removed the package from their server


=== Service Workers ===
=== Service Workers ===
canmove, Confirmed users
1,220

edits

Navigation menu