Closed
Bug 1258605
Opened 9 years ago
Closed 9 years ago
Vimeo "open app" button takes you to an about:neterror page, if you don't have vimeo app installed
Categories
(Firefox for Android Graveyard :: General, defect)
Tracking
(firefox45 affected, firefox46 affected, firefox47 affected, firefox48 fixed)
RESOLVED
FIXED
Firefox 48
People
(Reporter: dholbert, Assigned: mcomella)
References
Details
Attachments
(2 files)
STR:
0. Do not have the vimeo app installed.
1. Visit some Vimeo video in a Firefox Android, e.g. this one:
https://vimeo.com/152986821
2. Tap the "Open App" button that appears at the top of the screen.
EXPECTED RESULTS:
- I should be taken to the Google Play store (either the web page, inside of Firefox, or to the actual app).
ACTUAL RESULTS:
I end up at an about:neterror page, with this URL:
about:neterror?e=unknownProtocolFound&u=vimeo://app.vimeo.com/videos/152986821?ref=mobileweb&context=clip_native_banner
The page says:
> The address wasn't understood.
> 1. You might need to install other software to open this address.
> [Try again]
Note:
* Chrome gives me EXPECTED RESULTS (launching the Play Store app)
* Firefox release (45.0.1) gave me EXPECTED RESULTS (going to the play store web page, showing vimeo there) once, but now it's giving me ACTUAL RESULTS.
* Firefox Nightly (48) and Beta (46) reliably give me ACTUAL RESULTS (about:neterror page)
So this might be a regression, or there might just be a race condition or some other factor involved.
DEVICE/OS INFO:
I'm using a OnePlus One phone with CyanogenMod 13 (Android Marshmallow). I also tested using a Nexus 7 tablet, but I can't perform the STR there, because the vimeo website doesn't give me an "open app" button there (possibly because the screen size is big enough that it gives me the desktop UI).
Reporter | ||
Updated•9 years ago
|
Summary: Vimeo "open app" button takes me to an about:neterror page, if you don't have vimeo app installed → Vimeo "open app" button takes you to an about:neterror page, if you don't have vimeo app installed
Reporter | ||
Comment 1•9 years ago
|
||
(In reply to Daniel Holbert [:dholbert] from comment #0)
> 1. Visit some Vimeo video in a Firefox Android, e.g. this one:
> https://vimeo.com/152986821
(Sorry -- by "in a Firefox Android" I meant to say "in some version of Firefox for Android".)
Comment 2•9 years ago
|
||
19:22.26 INFO: Narrowed nightly regression window from [2015-07-25, 2015-07-28] (3 days) to [2015-07-27, 2015-07-28] (1 days) (~0 steps left)
19:22.26 INFO: Got as far as we can go bisecting nightlies...
19:22.26 INFO: Last good revision: d3228c82badd (2015-07-27)
19:22.26 INFO: First bad revision: 33dc8a83cfc0 (2015-07-28)
19:22.26 INFO: Pushlog:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=d3228c82badd&tochange=33dc8a83cfc0
Mike you added this check. Is there a way to safely accept this?
Blocks: CVE-2015-4476
status-firefox45:
--- → affected
status-firefox46:
--- → affected
status-firefox47:
--- → affected
Flags: needinfo?(michael.l.comella)
OS: Unspecified → Android
Hardware: Unspecified → All
Assignee | ||
Comment 3•9 years ago
|
||
Our flow, assuming we have no handlers for this link (e.g. no apps installed) is as follows:
* parse an Intent URI with the platform framework (if this throws, load about:neterror)
* Check if the intent has a fallback uri and if so, load it
* Check if the the intent has an explicit package, if so, send an Intent to open the app in the play store
* Else open about:neterror
We're hitting the final case. Chrome differs that when there's an error (including in this final case), they don't open about:neterror. I found this was bad for users and developers who click a link and see nothing happening so I opted to add about:neterror.
However, Vimeo took advantage of Chrome's implementation (see the attached source code). They attempt to open the Intent URI the standard way and, after some timeout (i.e. on Chrome, nothing will happen if the app is not installed), load the play store url instead.
I believe the reason the reportee sees the behavior jump back and forth is that sometimes we'll be able to load about:neterror before the timeout and sometimes we won't.
Unfortunately, the only non-hacky solution I see is to not load about:neterror if we can't match the uri and instead do nothing. While I think we provide a better user experience (when sites don't work around Chrome taking no action for invalid uris), too many websites seem to have hacked around Chrome's implementation (we get similar bugs filed every once in a while) and it's hurting our users – I say we should meet the status quo.
fwiw, the robust solution for websites is to provide `intent://` uris with fallback URIs, rather than `custom-uri://` schemes.
Flags: needinfo?(michael.l.comella)
Assignee | ||
Updated•9 years ago
|
Assignee: nobody → michael.l.comella
Assignee | ||
Comment 4•9 years ago
|
||
Motivations are in the added comment.
Review commit: https://reviewboard.mozilla.org/r/42509/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/42509/
Attachment #8735008 -
Flags: review?(margaret.leibovic)
Comment 5•9 years ago
|
||
Comment on attachment 8735008 [details]
MozReview Request: Bug 1258605 - Don't show about:neterror when intents fail to load. r=margaret
https://reviewboard.mozilla.org/r/42509/#review39283
Thanks for the investigation. I agree we should just follow what Chrome is doing here.
This is frustrating, maybe there's a way we can encourage web developers to format intents with a specific package so that we'll open in the Play Store, instead of relying on timeout tricks for them to redirect the user? We could ask Mike Taylor if this is considered a webcompat issue.
::: mobile/android/base/java/org/mozilla/gecko/IntentHelper.java:223
(Diff revision 1)
> + // end with our users seeing about:neterror instead of the intended experience. While I
> + // feel showing about:neterror is a better solution for users (when not hacked around),
> + // we should match the status quo for the good of our users.
> + //
> // Don't log the URI to prevent leaking it.
> Log.w(LOGTAG, "Unable to open URI, default case - loading about:neterror");
We should update this log statement.
Attachment #8735008 -
Flags: review?(margaret.leibovic) → review+
Assignee | ||
Comment 6•9 years ago
|
||
https://hg.mozilla.org/integration/fx-team/rev/971ee95dade06b20742e94d58c471e76705ca478
Bug 1258605 - Don't show about:neterror when intents fail to load. r=margaret
Comment 7•9 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 48
Updated•4 years ago
|
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•