Compatibility/Tools: Difference between revisions

Jump to navigation Jump to search
Moving techniques in Tools
(Moving techniques in Tools)
Line 45: Line 45:
(mostly for personal usage, but if you want to help write tests it would be awesome)
(mostly for personal usage, but if you want to help write tests it would be awesome)
https://builder.addons.mozilla.org/package/206667/latest/
https://builder.addons.mozilla.org/package/206667/latest/
== Techniques ==
=== Server Side User Agent Detection ===
User Agent String detection on the server side leads to different strategies by the site owner. They are used for delivering content to specific browsers and/or specific devices.
The negotiation is done at the HTTP level.
* Redirection to a subsection of their domain. Ex: <code>http://example.com/</code> to <code>http://example.com/m</code>
* Redirection to a another domain. Ex: <code>http://example.com/</code> to <code>http://m.example.com/</code>
* Delivering different types of content on the same domain name.
We can explore what are the influence of an HTTP HEAD or GET and analyzes the answers.  Often there will be redirects as indicated by the status code <code>301</code>, <code>302</code>, <code>307</code> or <code>308</code>, with a <code>Location:</code> HTTP header <code>Location: http://m.example.com/</code>. (Be careful, some sites send location all in lowercase, in case you are grepping through HTTP headers)
Once we have identified that it is really done server-side, we can add the whiteboard flag '''[serversidesniff]'''. An [https://bugzilla.mozilla.org/show_bug.cgi?id=901569#c1 example of an analysis of server side detection].
==== HTTP Introspection Tools ====
curl and httpie are two extremely useful tools for analyzing what is happening at the HTTP level.
===== Firefox =====
* [https://developer.mozilla.org/en-US/docs/Tools/Network_Monitor Firefox Network Monitor] (built-in from version 23)
* [https://addons.mozilla.org/fr/firefox/addon/firebug/ Firebug Add-on]
* [https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher/ User Agent Switcher] Very practical it will modify the HTTP header AND the navigator object properties.
* [https://addons.mozilla.org/en-US/firefox/addon/modify-headers/ ModifyHeaders Add-on] gives a way to modify the '''HTTP headers''' you are sending to a Web site. It will not work for JavasScript scripts looking for navigator.userAgent.
===== Others =====
* [http://curl.haxx.se/ curl] (CLI)
* [http://httpie.org/ httpie] (CLI)
* [http://www.opera.com/dragonfly/ Opera Dragonfly] (Presto)
=== Client Side User Agent Detection ===
'''[lib-yui]'''
'''[clientsniff]'''
=== Redirection based on Geolocation ===
=== Missing vendor extensions ===
==== CSS vendor extensions ====
==== JavaScript vendor extensions ====
=== Things to think about when testing ===
* '''Clearing cookies and storage information.''' Some Web sites, once it has been accessed the first time, will add a cookie for keeping your preferences. Some of these cookies might be for the type of site such as mobile or desktop. It is better to clear the cookies and storage information, if you need to test the site as a first user.
* '''Remove UA override already installed.''' Currently Firefox OS devices have a [[UA/override|UA override mechanism]]. It helps users to get a mobile version even if the site is not doing the identification properly. The unfortunate consequence is that it becomes harder for testing. So it is necessary to remove the UA override from the device.
** On 1.0 and 1.1, Firefox OS has an in-device list that you can edit with [https://github.com/karlcow/webcompat/blob/master/moz/mozua.sh mozua.sh].
** On 1.2, the list is dynamic and updated through a server side mechanism, you can deactivate the list entirely through preferences: set "general.useragent.updates.enabled" to false
Confirmed users
1,567

edits

Navigation menu