Closed Bug 856799 Opened 12 years ago Closed 12 years ago

Please add the packaged marketplace to gaia

Categories

(Firefox OS Graveyard :: Gaia, defect)

defect
Not set
normal

Tracking

(blocking-b2g:tef+, firefox23 fixed, b2g18 fixed, b2g18-v1.0.1 fixed)

VERIFIED FIXED
blocking-b2g tef+
Tracking Status
firefox23 --- fixed
b2g18 --- fixed
b2g18-v1.0.1 --- fixed

People

(Reporter: clouserw, Assigned: cvan)

References

Details

Attachments

(1 file, 1 obsolete file)

Some work was already done via IRC, I think ending up with this commit: https://github.com/cvan/gaia/commit/1c92309699bfe198117b09a497cfe7a7f3f020a8 I don't know if it ended up in a pull request or not. After that we'll need to adjust some documentation so carriers know how to customize the URL. Let me know what else I can provide. Thanks.
Needed for 1.0 based on what I've been told. Noming as such. Ask Wil for details on why if need be.
blocking-b2g: --- → tef?
FWIW, we should stagger landings on this bug such that: 1. Land this on master & v1-train first and wait a few days to make sure nothing blows up 2. Then land on 1.01
The zip has a harcoded link to https://marketplace.firefox.com/?carrier=telefonica for the iframe. I can't comment directly on github because it's inside a binary file, but this need to be done differently: - use getSelf() to get the app object. - use the manifestURL to get the carrier name if any - add the carrier name to the iframe if needed.
(In reply to Fabrice Desré [:fabrice] from comment #3) > The zip has a harcoded link to > https://marketplace.firefox.com/?carrier=telefonica for the iframe. Thanks - updated: https://github.com/cvan/gaia/compare/packaged-marketplace
What are the reasons for blocking on this? CAn we land it in master first and then nominate this again as per comment 2?
Flags: needinfo?(clouserw)
If the packaged app doesn't land, then users will have a deprecated version of the Marketplace on their devices. We will be shutting off the current Marketplace as it exists now within a few months. Any device still pointing at it will be irreparably emborkened.
This is to prevent further work in the future. There is no upgrade path from a hosted app to a packaged app and since the Marketplace needs to be a packaged app to take advantage of privileged APIs it makes sense to get it packaged in the first version that ships. Fabrice or Jason could answer your question about landing in master and nominating, he knows the flows better than I do.
Flags: needinfo?(clouserw)
We could blocking+ this but just indicate in the status flags to not to uplift to b2g 1.01 on immediate landing, wait a few days, then switch the flags to allow landing.
(In reply to Jason Smith [:jsmith] from comment #8) > We could blocking+ this but just indicate in the status flags to not to > uplift to b2g 1.01 on immediate landing, wait a few days, then switch the > flags to allow landing. tef+ is then. I leave up to you setting up the right flags
blocking-b2g: tef? → tef+
Flags set for initial landing.
David - can you help us assign this bug?
Assignee: nobody → dscravaglieri
r? https://github.com/mozilla-b2g/gaia/pull/8973 If there's anything else that needs to be done, please let me know. Thanks much!
Attachment #733196 - Flags: review?(fabrice)
Comment on attachment 733196 [details] Pointer to Github Pull Request: https://github.com/mozilla-b2g/gaia/pull/8973 Took a quick look. review- for missing etags. Comments in github for stuff that's in the diff there. For the zip file, comments below: * { margin: 0; overflow: hidden; padding: 0; } What's that star doing in the style tag?
Attachment #733196 - Flags: review-
(In reply to Jason Smith [:jsmith] from comment #14) > Comment on attachment 733196 [details] > Pointer to Github Pull Request: https://github.com/mozilla-b2g/gaia/pull/8973 > > Took a quick look. review- for missing etags. Comments in github for stuff > that's in the diff there. Where is the documentation for this? > What's that star doing in the style tag? Per the CSS 2.1 spec: The universal selector, written "*", matches the name of any element type. It matches any single element in the document tree. You can read more, if interested, at http://www.w3.org/TR/CSS2/selector.html#universal-selector We're matching every element in the app and removing margin, padding, and hiding overflow (to prevent scrollbars and weird scrolling).
(In reply to Matt Basta [:basta] from comment #15) > (In reply to Jason Smith [:jsmith] from comment #14) > > Comment on attachment 733196 [details] > > Pointer to Github Pull Request: https://github.com/mozilla-b2g/gaia/pull/8973 > > > > Took a quick look. review- for missing etags. Comments in github for stuff > > that's in the diff there. > > Where is the documentation for this? https://bugzilla.mozilla.org/show_bug.cgi?id=820630 and https://github.com/mozilla-b2g/gaia/blob/master/build/webapp-manifests.js#L158 is the best I have for info on this (not documented, sadly). In short, you need to specify: etag <--- this is the manifest etag packageEtag <--- this is the packaged app etag If the package etag isn't specified, then a user will always get prompted for an app update immediately upon starting usage of the phone.
(In reply to Jason Smith [:jsmith] from comment #16) > If the package etag isn't specified, then a user will always get prompted > for an app update immediately upon starting usage of the phone. I can't say that I'd be displeased with this behavior, since that'll probably happen anyway.
(In reply to Matt Basta [:basta] from comment #17) > (In reply to Jason Smith [:jsmith] from comment #16) > > If the package etag isn't specified, then a user will always get prompted > > for an app update immediately upon starting usage of the phone. > > I can't say that I'd be displeased with this behavior, since that'll > probably happen anyway. True, although dogfooders will probably get noisy with this behavior (they already have for maps not declaring those etags, for example).
Assignee: dscravaglieri → felash
giving it back to :cvan ;) Chris, please ping me if you need any help !
Assignee: felash → cvan
I've added this on the PR, but saying it here too: the file applications-data.js must be changed too because you changed the marketplace directory name.
Everything working with fresh `make clean profile`
Attachment #733954 - Flags: review?(felash)
Attachment #733196 - Attachment is obsolete: true
Attachment #733196 - Flags: review?(fabrice)
Comment on attachment 733954 [details] Pointer to Github Pull Request: https://github.com/mozilla-b2g/gaia/pull/8973 Package app looks okay to me from the QA side. Julien can handle the rest of the review pieces for formal landing.
Attachment #733954 - Flags: feedback+
Comment on attachment 733954 [details] Pointer to Github Pull Request: https://github.com/mozilla-b2g/gaia/pull/8973 r=me with packageEtag either removed or modified to reflect a real value (which AFAIK it doesn't right now)
Attachment #733954 - Flags: review?(felash) → review+
Depends on: 860270
Comment on attachment 733954 [details] Pointer to Github Pull Request: https://github.com/mozilla-b2g/gaia/pull/8973 I'm still questioning the etags here that are being used. As it stands right now, I would not check this in without resolving etag problem. r- from me.
Attachment #733954 - Flags: feedback+ → review-
Slightly off-topic, but is it indeed the case that etags are necessary on all packaged apps for all developers? If so, we haven't communicated this at all and documentation needs to be updated. Can you please post a link to information about etag requirements and how they need to be used?
This is not necessary, but this is the only current way to prevent downloading of an app that didn't change. ie we don't support If-Modified-Since. See Bug 823648 and especially Bug 823648 comment 7 for a possible solution. If you don't specific an ETag, we download the file and then we compute a hash that will be compared to the previous stored hash, so that we don't reinstall the app if it hasn't changed. I think we don't support setting a hash for a preinstalled app.
Is nothing in the minifest (version, for instance) considered for determining when to update?
Matt> yes of course, we're not trying to download the package unless the minifest changed. Which uses the same mechanism: ETag or hash. But if the minifest changes (for example: developer or description changed) but not the package, we don't want to redownload the package.
Julien, thanks for the review - are we good here?
(In reply to Julien Wajsberg [:julienw] from comment #28) > Matt> yes of course, we're not trying to download the package unless the > minifest changed. Which uses the same mechanism: ETag or hash. But if the > minifest changes (for example: developer or description changed) but not the > package, we don't want to redownload the package. If the Marketplace promises not to change the minifest unless there's an update, can we get by without the etags in the short term so this can land? We have no intention to change the package (yulelog, as we call it) for at least a few weeks, and at that point we'll have infrastructure stood up to serve packages in a better way. Is that an agreeable compromise?
(In reply to Matt Basta [:basta] from comment #30) > (In reply to Julien Wajsberg [:julienw] from comment #28) > > Matt> yes of course, we're not trying to download the package unless the > > minifest changed. Which uses the same mechanism: ETag or hash. But if the > > minifest changes (for example: developer or description changed) but not the > > package, we don't want to redownload the package. > > If the Marketplace promises not to change the minifest unless there's an > update, can we get by without the etags in the short term so this can land? As of today in production, there are no ETag headers on the .zip - but I have since changed this on -dev and that change will roll out to production tomorrow at 2:00 PDT. (z)(Chris-MacBook-Pro.local) %% curl -I https://marketplace-dev.allizom.org/package.zip HTTP/1.1 200 OK Server: gunicorn/0.15.0 Vary: X-Requested-With, Accept-Language, Cookie, X-Mobile, User-Agent X-Backend-Server: dev1.addons.phx1.mozilla.com Content-Type: application/zip Access-Control-Expose-Headers: X-API-Version, X-API-Status Strict-Transport-Security: max-age=2592000 Date: Wed, 10 Apr 2013 18:35:50 GMT Transfer-Encoding: chunked ETag: "9be1d52a14b87fdf18ab00b4cdebdedc"
Matt: that was my proposition :) but now I think we should just use the Etag that will be used. so that could land as is. anyway as long as we don't break the build, we can still make adjustments later if necessary.
Comment on attachment 733954 [details] Pointer to Github Pull Request: https://github.com/mozilla-b2g/gaia/pull/8973 looks good now per discussion on the etags piece. We're good to land then, right?
Attachment #733954 - Flags: review- → review+
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
v1-train: e439fb1b7a5bcd341edf28fb66ca2b3164e55d2b
will wait before landing on v1.0.1 as was requested.
Nothing outrageously blew up, so good to land on next branch.
v1.0.1: b1855ee0a4e1e6ed3185d9d5cf5e23e8f6d3d82d
Can you please provide steps to verify this fix - as we will blackbox test from the UI?
Flags: needinfo?
It's automatically verified - this is part of the build and we use marketplace in our smoke tests daily.
Status: RESOLVED → VERIFIED
Flags: needinfo?
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: