summaryrefslogtreecommitdiffstats
path: root/testing/marionette/puppeteer/firefox/firefox_puppeteer/ui/base.py
diff options
context:
space:
mode:
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