Vreemde browsers @ Amsterdam University of Applied Sciences

Vreemde browsers @ Amsterdam University of Applied Sciences

A talk about weird browsers in smart tv's, consoles and e-books. Presented during during a guest lecture at Amsterdam University of Applied Sciences. Sorry dutch only.

De023a9aff4c7a5ede3a81e8c76f17b5?s=128

Niels Leenheer

March 08, 2016
Tweet

Transcript

  1. 2.
  2. 3.
  3. 4.
  4. 5.
  5. 6.

    400 
 Safari 9 521 
 Chrome 49 555 0

    resultaten van desktop-browsers op html5test.com 458 
 Edge 13 478 
 Firefox 44
  6. 7.

    400 
 Safari 9 555 0 resultaten van desktop-browsers op

    html5test.com 521 
 Chrome 49 458 
 Edge 13 478 
 Firefox 44
  7. 8.

    402 
 Edge 12 400 
 Safari 9 521 


    Chrome 49 555 0 resultaten van desktop-browsers op html5test.com 16 
 Internet Explorer 6 458 
 Edge 13 336 
 Internet Explorer 11 478 
 Firefox 44
  8. 9.
  9. 11.
  10. 12.
  11. 13.
  12. 14.
  13. 15.
  14. 16.
  15. 17.
  16. 18.
  17. 19.
  18. 20.
  19. 21.
  20. 22.
  21. 23.
  22. 24.
  23. 30.
  24. 34.
  25. 37.
  26. 38.

    televisie-browsers zijn best goed de laatste generatie televisies 
 gebruikt

    besturingssystemen die 
 afkomstig zijn van mobiel
  27. 39.

    418 
 LG WebOS 281 
 Google TV 238 


    LG Netcast 465 
 Samsung Tizen 449 
 Opera Devices 301 
 Panasonic
 Viera resultaten van smart tv’s op html5test.com 555 0 414 
 Panasonic
 Firefox OS 407 
 Samsung
 2014
  28. 40.

    328 
 Playstation 4 53 
 Playstation 3 309 


    Playstation TV 98 
 Xbox 360 286 
 Xbox One 311 
 Wii U 66 
 Wii 555 0 resultaten van console’s op html5test.com
  29. 41.

    328 
 Playstation 4 53 
 Playstation 3 309 


    Playstation TV 98 
 Xbox 360 286 
 Xbox One 311 
 Wii U 66 
 Wii 555 0 resultaten van console’s op html5test.com 426 
 Xbox One with Edge
  30. 42.
  31. 46.
  32. 54.
  33. 55.
  34. 56.
  35. 58.
  36. 64.
  37. 71.

    de gamepad api var gamepads = navigator.getGamepads();
 for (var i

    = 0; i < gamepads.length; i++) {
 ...
 } 1
  38. 74.

    de getusermedia api navigator.getUserMedia(
 { audio: true, video: { width:

    1280, height: 720 } },
 function(stream) { ... },
 function(error) { ... }
 ); 1
  39. 78.

    het beeld dat via hdmi binnenkomt 
 wordt door de

    televisie vergroot met 5% 1920 pixels
  40. 79.

    het beeld dat via hdmi binnenkomt 
 wordt door de

    televisie vergroot met 5% 1920 pixels
  41. 92.

    het is soms mogelijk om overscan 
 uit te zetten

    bij televisies dit heet ‘screen fit’, ‘pixel perfect’ of ‘just scan’
  42. 95.

    de visual viewport bepaalt welk gedeelte van de website zichtbaar

    is gemeten in 
 device pixels de visual viewport
  43. 96.

    de visual viewport bepaalt welk gedeelte van de website zichtbaar

    is gemeten in 
 device pixels de visual viewport
  44. 97.

    de visual viewport de visual viewport bepaalt welk gedeelte van

    de website zichtbaar is gemeten in 
 device pixels
  45. 98.

    de layout viewport de layout viewport bepaalt de breedte in

    css pixels waarop de website wordt afgebeeld
  46. 99.

    de layout viewport de layout viewport bepaalt de breedte in

    css pixels waarop de website wordt afgebeeld
  47. 100.

    de layout viewport de layout viewport bepaalt de breedte in

    css pixels waarop de website wordt afgebeeld
  48. 101.

    iedere smart tv, console of set-top box heeft 
 z’n

    eigen standaard layout viewport-breedte tussen 800 en 1920 css pixels
  49. 102.

    met de ‘meta viewport’ is het mogelijk om 
 breedte

    van de layout viewport te veranderen <meta name="viewport" content=“width=device-width"> <meta name="viewport" content="width=1024"> fysieke device pixels device scale factor
  50. 103.

    probleem:
 meta viewport wordt niet ondersteund geen mogelijkheid de layout

    viewport gelijk te 
 krijgen tussen verschillende browsers
  51. 104.

    probleem:
 device pixel ratio wordt niet ondersteund dus geen goede

    ondersteuning voor het tonen van
 afbeeldingen die bij de resolutie van het scherm passen
  52. 112.

    Nintendo Wii 800 LG WebOS 960 Nintendo Wii U 980

    Philips 2014 series 980 Google TV 1024 Playstation TV 1024 Samsung Tizen 1024 Xbox 360 1051 Xbox One 1200 LG Netcast 1226 Panasonic Viera 1256 Opera Devices 1280 Samsung 2014 series 1280 Panasonic Firefox OS 1536 Playstation 3 1824 Playstation 4 1920
  53. 114.

    soms zijn device pixels geen fysieke 
 device pixels, maar

    virtuele device pixels de browser werkt bijvoorbeeld 
 op een lagere resolutie en wordt ge-upscaled 
 naar de resolutie van het beeldscherm
  54. 116.
  55. 117.
  56. 118.
  57. 119.

    “Make fonts and graphics on the site larger to account

    for viewing distance. People sit proportionally farther from a TV than from a computer monitor of the same size.” 
 – Internet Explorer for Xbox One Developer Guide https://msdn.microsoft.com/en-us/library/dn532261(v=vs.85).aspx
  58. 124.

    responsive design zorg ervoor dat de grootte van de inhoud

    wordt geleid door de breedte van de viewport
  59. 127.

    of misschien viewport units – met polyfill body { font-size:

    3vw; }
 .left { width: 60vw; height: 100vh; }
 .right { width: 40vw; height: 100vh; } 3
  60. 132.

    schermgrootte if (screen.width == 1920 && screen.height == 1080) {


    document.body.className += " television";
 } 2 ×
  61. 135.

    useragent sniffing niet alle televisies zijn herkenbaar Mozilla/5.0 (X11; Linux;

    ko-KR) 
 AppleWebKit/534.26+ (KHTML, like Gecko) 
 Version/5.0 Safari/534.26+ 3
  62. 136.

    couch mode de enige betrouwbare manier om een 
 website

    voor televisie te optimaliseren is 
 twee verschillende sites maken… of de bezoeker de mogelijkheid te geven 
 om couch mode aan te zetten 4
  63. 138.

    “Basically every feature that talks to the 
 operating system

    or hardware, is suspect.” 
 – Ik http://blog.html5test.com/2015/08/the-problems-with-feature-detection/
  64. 140.

    if (!!navigator.geolocation) { navigator.geolocation.getCurrentPosition(
 success, failure
 ); } 1 failure

    wordt aangeroepen met een 
 “permission denied”-foutcode 2 helemaal geen callback naar success of failure
  65. 141.

    if (!!navigator.geolocation) { navigator.geolocation.getCurrentPosition(
 success, failure
 ); } 3 success

    wordt aangeroepen met longitude = 0 en latitude = 0 4 success wordt aangeroepen met de coördinaten 
 van Mountain View, USA
  66. 143.
  67. 146.
  68. 147.
  69. 148.

    resultaten van e-readers op html5test.com 555 0 196 
 Pocketbook

    280 
 Kobo 157 
 Sony Reader 52 
 Kindle 3 187 
 Kindle Touch
  70. 151.

    mouse events down/up move touch events amazon kindle touch ja

    pocketbook basic touch ja kobo glow ja ja sony reader ja ja 1 vinger
  71. 157.
  72. 164.

    useragent sniffing er is geen universele token in de useragent-string,

    maar we kunnen wel individuele merken en modellen herkennen 2
  73. 165.
  74. 167.

    66 
 Nintendo DSi 309 
 Sony PlayStation Vita 311

    
 New Nintendo 3DS resultaten van portable consoles op html5test.com 555 0 80 
 Nintendo 3DS
  75. 168.
  76. 170.

    een dubbele viewport
 (de onderste is de primaire visual viewport)

    3d beeldscherm, maar alleen 2d wordt ondersteund in de browser resistive 
 touch scherm
  77. 171.

    een dubbele viewport
 (de onderste is de primaire visual viewport)

    3d beeldscherm, maar alleen 2d wordt ondersteund in de browser resistive 
 touch scherm
  78. 172.

    een dubbele viewport
 (de onderste is de primaire visual viewport)

    3d beeldscherm, maar alleen 2d wordt ondersteund in de browser resistive 
 touch scherm
  79. 173.

    een dubbele viewport
 (de onderste is de primaire visual viewport)

    3d beeldscherm, maar alleen 2d wordt ondersteund in de browser resistive 
 touch scherm
  80. 174.
  81. 175.
  82. 177.

    “We cannot predict future behavior 
 from a current experience

    that sucks” 
 – Jason Grigsby http://blog.cloudfour.com/on-the-device-context-continuum/
  83. 183.