The following browsers are failing on Android. Tested on a simulator and with real devices (Pixel w/ Android 8.0 and Nexus 4 w/Android 5.1.1):
* Firefox
** Running window.print() throws a catchable exception so we can throw an error message
** Feature detecting beforehand does not look possible. I raised an upstream bug (https://bugzilla.mozilla.org/show_bug.cgi?id=1414935#c1)
* Maxthon Browser
* Dolphin
* UC Browser
* Opera
** window.print is available and click handler is bound but doesn't do anything.
** It works on desktop
** setTimeout doesn't help
** No print option in browser menu
** When investigating it was suggested tha window.print might not actually work until the document has fully loaded however when I tried this still didn't work. Even doing an unconditional window.print a window load event has no effect
A MTC to make it easier to identify browsers which programmatic printing is possible is here:
http://jdlrobson.com/dev/window.print/index.html
On a large share of browsers clicking the button is a no-op ie. nothing happens.
Note that
== Open questions
[x] Can we feature detect whether calling window.print will do nothing? NO. In some cases we can detect when it's failed though.
[x] If we decide to browser detect, can we reliably filter out Android versions of Opera, Dolphin etc... What are their user agents?
== Outcomes
[] We have a list of browsers that we can reliably target on-wiki.
[] Document ^ and other updates to mobile PDFs
Per T179529#3738918, we will whitelist Chrome on Android. Doing so will enable us to collect some data around usage before rolling it out to a wider number of devices.