Last active
January 3, 2016 08:28
-
-
Save hallvors/8435804 to your computer and use it in GitHub Desktop.
How to spoof user-agent in Firefox from a Python script using the Marionette API
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from marionette import Marionette | |
| def set_mozilla_pref(marionette_instance, name, value): | |
| marionette_instance.set_context(marionette_instance.CONTEXT_CHROME) | |
| js = """ | |
| var pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); | |
| var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); | |
| str.data = "%s"; | |
| pref.setComplexValue("%s", Components.interfaces.nsISupportsString, str) | |
| """ % (value, name) | |
| marionette_instance.execute_script(js) | |
| marionette_instance.set_context(marionette_instance.CONTEXT_CONTENT) | |
| def spoof_firefox_os(m): | |
| set_mozilla_pref(m, 'general.useragent.override', 'Mozilla/5.0 (Mobile; rv:23.0) Gecko/23.0 Firefox/23.0') | |
| set_mozilla_pref(m, 'general.useragent.appName', 'Netscape') | |
| set_mozilla_pref(m, 'general.useragent.vendor', 'Mozilla') | |
| set_mozilla_pref(m, 'general.useragent.platform', '') | |
| def spoof_safari_ios(m): | |
| set_mozilla_pref(m, 'general.useragent.override', 'Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3') | |
| set_mozilla_pref(m, 'general.useragent.appName', 'Netscape') | |
| set_mozilla_pref(m, 'general.useragent.vendor', 'Apple Computer, Inc.') | |
| set_mozilla_pref(m, 'general.useragent.platform', 'iPhone') | |
| m = Marionette(host='localhost', port=2828) | |
| m.start_session() | |
| spoof_firefox_os(m) | |
| # Make requests with Firefox OS UA here.. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment