mirror of
https://github.com/classilla/tenfourfox.git
synced 2025-02-02 07:30:08 +00:00
46 lines
1.8 KiB
Python
46 lines
1.8 KiB
Python
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
# You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
from firefox_puppeteer.base import BaseLib
|
|
|
|
|
|
class AppInfo(BaseLib):
|
|
"""This class provides access to various attributes of AppInfo.
|
|
|
|
For more details on AppInfo, visit:
|
|
https://developer.mozilla.org/en-US/docs/Mozilla/QA/Mozmill_tests/Shared_Modules/UtilsAPI/appInfo
|
|
"""
|
|
|
|
def __getattr__(self, attr):
|
|
with self.marionette.using_context('chrome'):
|
|
value = self.marionette.execute_script("""
|
|
Components.utils.import("resource://gre/modules/Services.jsm");
|
|
|
|
return Services.appinfo[arguments[0]];
|
|
""", script_args=[attr])
|
|
|
|
if value is not None:
|
|
return value
|
|
else:
|
|
raise AttributeError('{} has no attribute {}'.format(self.__class__.__name__,
|
|
attr))
|
|
|
|
@property
|
|
def locale(self):
|
|
with self.marionette.using_context('chrome'):
|
|
return self.marionette.execute_script("""
|
|
return Components.classes["@mozilla.org/chrome/chrome-registry;1"]
|
|
.getService(Components.interfaces.nsIXULChromeRegistry)
|
|
.getSelectedLocale("global");
|
|
""")
|
|
|
|
@property
|
|
def user_agent(self):
|
|
with self.marionette.using_context('chrome'):
|
|
return self.marionette.execute_script("""
|
|
return Components.classes["@mozilla.org/network/protocol;1?name=http"]
|
|
.getService(Components.interfaces.nsIHttpProtocolHandler)
|
|
.userAgent;
|
|
""")
|