diff options
Diffstat (limited to 'testing/marionette/puppeteer/firefox/firefox_puppeteer/ui/base.py')
-rw-r--r-- | testing/marionette/puppeteer/firefox/firefox_puppeteer/ui/base.py | 54 |
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 |