Closed Bug 861303 Opened 11 years ago Closed 10 years ago

Indicate whether applications support offline mode

Categories

(Marketplace Graveyard :: Consumer Pages, enhancement, P2)

enhancement

Tracking

(Not tracked)

VERIFIED FIXED
2014-06-10

People

(Reporter: glandium, Assigned: mat)

References

Details

(Whiteboard: [repoman][contribute])

Attachments

(2 files, 1 obsolete file)

Here's my story:
My wife is playing one of the solitaire apps from the marketplace a lot, and asked me "Can you do something so that I can play in the plane?" (we'll be flying in two months)
Then I thought "surely the app supports going offline" and, with confidence, took her tablet, turned off wifi, expecting that it would work and... got an error.

Then I turned to the marketplace, and no app description would tell me if they can work offline or not. Now I have to try them one by one.
I really like this idea. A small icon on the category browse pages or a badge on the detail page denoting "OFFLINE" would be a nice feature to have. CC'ing UX folks.
Keywords: uiwanted
David - maybe we can add this to the PRD with the additional app details we wanted to include in future releases?
What should be the offline criteria? Packaged or specifies an appcache?
Let me quote myself from a much longer email:

"""
it appears Marketplace does not advertise or encourage offline support in any way. I'll defer to David Bialer (CCed) about this, but I can envision:
- an icon for "offline-capable" like we do for devices/form factors.
- If we wanted to be less subtle, we could throw a warning in the validator if an app is a) hosted and b) does not advertise an appcache file in its manifest.
- Even less subtle, we could reject app submissions without appcache, arguing that they absolutely must handle the offline case, even if they deliberately choose not to cache anything (NETWORK: *).
"""

Indicating it on the details page is good, but we should also strongly encourage it. We can't be surprised people don't include appcaches otherwise.

(In reply to Matt Basta [:basta] from comment #3)
> What should be the offline criteria? Packaged or specifies an appcache?

Yes. Packaged or advertises an appcache in the manifest (!) There are a number of apps that don't specify it in the manifest, yet have one in their main HTML document, which means they understand the importance of offline, but didn't know there was a relevant field in the manifest. That's a problem.
Keywords: productwanted
As for supporting documentation that the validator can link to, bug 881355 is in the works. The relevant URL already exists, more content is incoming.
I suggest we warn developers on manifest validation if their manifest if appcache is not declared.  and display an icon for both reviewers and on the app details page indicating it is offline enabled.  I will discuss with UX to see how we can work this in soon.
There are some issues with the validator's presentation that we will address with bug 882378, but I agree that this is a non-blocking warning that we should inform developers about at submission. 

We also need to provide a way, similar to the way we allow developers to declare API usage degrading gracefully, for offline mode to cover the cases where we can't auto-detect it (don't know if that is really a case, but I assume it is) and also so we can flag it for the reviewers to test.
What are the next steps to land this? Thanks.
Summary: Indicate whether applications support offline mode → Add appcache check to manifest validator
This is not specific to the validator. The validator's appcache support is tracked at bug 870365.
Summary: Add appcache check to manifest validator → Indicate whether applications support offline mode
(In reply to Matt Basta [:basta] from comment #9)
> This is not specific to the validator. The validator's appcache support is
> tracked at bug 870365.

Fair; that doesn't move forward this issue though.
The next step here is for product to tell us how they want this exposed and UX to tell us how it should look and work.
This seems like a thing that should be alerted with all the other "Your app does this, your app requires this, etc.." stuff we generate after validation. I think we need to clean up that list of APIs we've detected and then this item will fit right along side it (and any other new similar features that may pop up in the future.) I can start working on wireframing/mocking this up now.
The buchets are presently minimum requirements in the sense that the app(s) won't function without those features. Offline support isn't something that can be a minimum requirement because it's not possible for a device to not support being offline.

This would be more appropriate in a different place.
I wasn't suggesting that we simply drop this into that list, but that point in the flow is where we're revealing everything we think we know about a user's app, so this is an appropriate place in the flow to reveal this information.
Severity: normal → enhancement
Priority: -- → P5
I think we should keep this bug focused on how we expose this to the end user and use Bug 895391 to talk about how we automatically detect for offline usage (completed), and use Bug 894354 to talk about how we expose to the developer (so that they can say you're right or wrong).
changed to P3 since this was specifically requested by a partner and is a P1 to that partner for FxOS 1.2.
Priority: P5 → P3
Blocks: 870367
Assignee: nobody → lliu
Attached image indicate_offline.png (obsolete) —
This is a first draft. Still need to work with Michael on icons :-)
Attached image offline.png
Michael and I decided to go with this updated version, considering the name of a developer might be very long.
Attachment #800845 - Attachment is obsolete: true
Attached file icon+sketch.zip
Attached icon and sketch file
A new design for off-line ability can be seen in the ratings mock, second image from the left.

https://bugzilla.mozilla.org/show_bug.cgi?id=929805#c2
Priority: P3 → P2
Whiteboard: [repoman]
Moving out of [repoman] its unclear how apps are flagged for offline usage at this time, I'm not sure how bug 894354 helps on this.

Bug 895391 talks about how the validator spots when a developer spots an offline app after specifying it in their manifest, but it doesn't store the data and it doesn't really tell you if its offline or not, just if specified data is missing.

Things I think we need to do:

* Figure out where in the dev hub submission and edit flow where this is shown to developers to edit
* Figure out where it goes in the reviewer tools so it can be overridden
* Store it in the db, add to the API, alter fireplace to show it
Assignee: lliu → nobody
Whiteboard: [repoman]
Potatoesearch offers the following options
:offline
    Return all apps offering graceful offline support (i.e., packaged apps and apps that have defined an `appcache_path` in their manifests)
:online
    Return all apps requiring an online network connection

So perhaps we qualify the need for a network connection somewhere?

But isn't a papercut given the other points.
We do store the data and it is exposed through the API / available as a criteria in search, that was added as part of bug 937698.

Currently the implementation is simple, it's not a flag that can be altered by a reviewer or a developer but instead simply checks whether the app is packaged or hosted w/ appcache, as mentioned in comment 4 above. The code is simple: https://github.com/mozilla/zamboni/blob/master/mkt/webapps/models.py#L570
Assignee: nobody → mpillard
Just surfacing the is_offline boolean as mat mentioned works for me. That uses the same :offline that dbialer mentioned. That's a pretty easy papercut. 

But figuring out the rest (e.g.: a packaged app may or may not truly be offline) is less of a papercut worthy of some more bugs.
Whiteboard: [repoman][contribute]
https://github.com/mozilla/zamboni/pull/2111 (API)
https://github.com/mozilla/fireplace/pull/468 (Consumer Pages)
Status: NEW → ASSIGNED
Target Milestone: --- → 2014-06-10
Fixed in https://github.com/mozilla/fireplace/commit/6540bc9a16edfa8ef208c67554e2edd9ee8f8656

STR:
- Search for :offline in consumer pages
- Click on any app in results : it should display a message indicating the app works offline
- Find a normal hosted app (such as one made with testmanifest) and display it: it shouldn't display the message indicating the app works offline
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Verified as fixed  : http://screencast.com/t/dQBAd2lB7Ir
Status: RESOLVED → VERIFIED
As implemented now, "Works offline" is very confusing for users. Our apps are packaged but they need internet connection to "work" since they are online games. There should be an explicit flag for packaged apps too, if they really "work offline". As one of the users expressed it:
"Rating: 1/5
Comment: The site lies, it does require wifi"
(In reply to Daniel Szabo from comment #30)
> As implemented now, "Works offline" is very confusing for users. Our apps
> are packaged but they need internet connection to "work" since they are
> online games. There should be an explicit flag for packaged apps too, if
> they really "work offline". As one of the users expressed it:
> "Rating: 1/5
> Comment: The site lies, it does require wifi"

I agree that we should require the user to explicitly say "my app works without an Internet connection."
There is now a separate report for the problem mentioned in Daniel Szabo's comment #30:

Bug #1049770 - applications should be able to decide explicitly if they "work offline".
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: