summaryrefslogtreecommitdiffstats
path: root/testing/marionette/puppeteer/firefox/firefox_puppeteer/ui/base.py
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /testing/marionette/puppeteer/firefox/firefox_puppeteer/ui/base.py
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/marionette/puppeteer/firefox/firefox_puppeteer/ui/base.py')
-rw-r--r--testing/marionette/puppeteer/firefox/firefox_puppeteer/ui/base.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/testing/marionette/puppeteer/firefox/firefox_puppeteer/ui/base.py b/testing/marionette/puppeteer/firefox/firefox_puppeteer/ui/base.py
new file mode 100644
index 000000000..622568df9
--- /dev/null
+++ b/testing/marionette/puppeteer/firefox/firefox_puppeteer/ui/base.py
@@ -0,0 +1,54 @@
+# 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 marionette_driver.marionette import HTMLElement
+
+from firefox_puppeteer.base import BaseLib
+from firefox_puppeteer.ui.windows import BaseWindow
+
+
+class UIBaseLib(BaseLib):
+ """A base class for all UI element wrapper classes inside a chrome window."""
+
+ def __init__(self, marionette, window, element):
+ super(UIBaseLib, self).__init__(marionette)
+
+ assert isinstance(window, BaseWindow)
+ assert isinstance(element, HTMLElement)
+
+ self._window = window
+ self._element = element
+
+ @property
+ def element(self):
+ """Returns the reference to the underlying DOM element.
+
+ :returns: Reference to the DOM element
+ """
+ return self._element
+
+ @property
+ def window(self):
+ """Returns the reference to the chrome window.
+
+ :returns: :class:`BaseWindow` instance of the chrome window.
+ """
+ return self._window
+
+
+class DOMElement(HTMLElement):
+ """
+ Class that inherits from HTMLElement and provides a way for subclasses to
+ expose new api's.
+ """
+
+ def __new__(cls, element):
+ instance = object.__new__(cls)
+ instance.__dict__ = element.__dict__.copy()
+ setattr(instance, 'inner', element)
+
+ return instance
+
+ def __init__(self, element):
+ pass