The Browser Testing and Tools group agreed that the webdriver endpoint, when
asserting for a modal, that it clears the modal on the screen and raises an
an Unexpected Alert Open error.
See https://github.com/w3c/webdriver/pull/1145
MozReview-Commit-ID: 1OnT1AMM0tY
--HG--
extra : rebase_source : d403cdd98d6ceaf2fc101e9371e4092ceb7558de
on a CLOSED TREE
Backed out changeset dff6393650df (bug 1416284)
Backed out changeset b1474e3a2e94 (bug 1416284)
--HG--
extra : rebase_source : 0877a744252fdb0aeb022fc99fd8b117bdd2b628
The Browser Testing and Tools group agreed that the webdriver endpoint, when
asserting for a modal, that it clears the modal on the screen and raises an
an Unexpected Alert Open error.
See https://github.com/w3c/webdriver/pull/1145
MozReview-Commit-ID: 1OnT1AMM0tY
--HG--
extra : rebase_source : dab2d8b96f3dc1dddb7b22127faf30e9e744b0bc
The Browser Testing and Tools group agreed that the webdriver endpoint, when
asserting for a modal, that it clears the modal on the screen and raises an
an Unexpected Alert Open error.
See https://github.com/w3c/webdriver/pull/1145
MozReview-Commit-ID: 1OnT1AMM0tY
--HG--
extra : rebase_source : a990f0fa5643dc7e844e79b9f344126a49e79665
This is a workaround for https://bugzil.la/1411513 about Log.jsm
not being compatible with E10s. It queries the log level via
synchronous IPC message to the main process.
MozReview-Commit-ID: 5RZluH8Rv9o
--HG--
extra : rebase_source : 7ccf803ec7041a2d910f5697f63ee8f1a978d79f
The "element" field on the WebDriver:SwitchToFrame command request's
body takes a string web element reference UUID as input. This patch
changes it so that it can also take a web element JSON Object.
The old behaviour can be removed with Firefox 60.
MozReview-Commit-ID: JcTD3MRxjOe
--HG--
extra : rebase_source : f313349121787e8f68137132cac49aecebee5ba1
The "element" field on the WebDriver:SwitchToFrame command request's
body takes a string web element reference UUID as input. This patch
changes it so that it can also take a web element JSON Object.
The old behaviour can be removed with Firefox 60.
MozReview-Commit-ID: JcTD3MRxjOe
--HG--
extra : rebase_source : 3da4b30d2689b6416d89bee838df73af40db2686
To avoid circular dependencies, where file A depends on B depending
on A, we should strive towards fewer inter-dependencies and more
autonomy between modules.
For example, if testing/marionette/browser.js needs access to
the Context enum it can currently only attain it by importing
testing/marionette/driver.js. Because driver.js imports browser.js,
we create a circular dependency and Cu.import enters an infinite
import recursion.
MozReview-Commit-ID: LGiA9sy9xrd
--HG--
extra : rebase_source : f1748894c4309a5bc34b72acd4931d7937e8810e
To avoid circular dependencies, where file A depends on B depending
on A, we should strive towards fewer inter-dependencies and more
autonomy between modules.
For example, if testing/marionette/browser.js needs access to
the Context enum it can currently only attain it by importing
testing/marionette/driver.js. Because driver.js imports browser.js,
we create a circular dependency and Cu.import enters an infinite
import recursion.
MozReview-Commit-ID: LGiA9sy9xrd
--HG--
extra : rebase_source : e4b69c91b9cf78705c902f1e5038d815b88114d0
The upcoming window tracking refactoring to Marionette will introduce
a new testing/marionette/wm.js module. It was originally the plan
to move WindowState there after it had landed, but it actually makes
sense to land any dependencies before to reduce churn in the window
tracking patches.
MozReview-Commit-ID: EpqnTYYGcmg
--HG--
extra : rebase_source : d6760feefa49c522738fd3930b339bc0af70e6a5
The issue here was that the cookie domain was always prepended with
'.' character. To resolve this edge-case Marionette now first checks
whether the cookie domain is in fact an IP address.
MozReview-Commit-ID: 4xBd4rscXxx
--HG--
extra : rebase_source : 92bf20ceb43c05f4610e3e0a5411027300586784
The Delete Cookie command should not return an error if the cookie
does not exist.
The variable names "toDelete" and "candidateName" was also
juxtapositioned and wrong. Here I am using the approximate names
used in the specification prose for clarity.
Fixes: https://github.com/mozilla/geckodriver/issues/989
MozReview-Commit-ID: 6IIGGpB1JWn
--HG--
extra : rebase_source : f3149d2195c0e871370eef3d2c1306a8212c5751
In formalising our synchronisation module, this renames wait.until
to PollPromise. It is a specialisation of a promise, just like
TimedPromise, that poll-waits a condition for a given amount of time
before either resolving (passing) or rejecting (failing) the poll-wait.
Also fix and improve documentation.
MozReview-Commit-ID: AcP3C1qCgKA
--HG--
extra : rebase_source : d17bb3be0819b0ce9de55d44741836fc00b10f46
testing/marionette/wait.js originally contained a utility for
poll-waiting on a condition. The module has since been expanded to
also include TimedPromise, which is a specialisation of Promise that
is rejected after a duration.
The latter is not a wait utility but a synchronisation primitive.
This terminology also covers the first, and this change renames the
wait module to sync.
MozReview-Commit-ID: Fd3LqfpiEaU
--HG--
rename : testing/marionette/wait.js => testing/marionette/sync.js
extra : rebase_source : f48ff62ca2589ab0ce4a2f3d134d392e6f0be015
Now that we have selective imports through Cu.import we can give
wait.until a more descriptive name that matches TimedPromise.
This patch renames the wait.until utility to PollPromise.
MozReview-Commit-ID: 9gsvAV27mMl
--HG--
extra : rebase_source : ea98d63013d709d52ce234446404233d9dbe572e
testing/marionette/wait.js originally contained a utility for
poll-waiting on a condition. The module has since been expanded to
also include TimedPromise, which is a specialisation of Promise that
is rejected after a duration.
The latter is not a wait utility but a synchronisation primitive.
This terminology also covers the first, and this change renames the
wait module to sync.
MozReview-Commit-ID: Fd3LqfpiEaU
--HG--
rename : testing/marionette/wait.js => testing/marionette/sync.js
extra : rebase_source : 5e22ec5e26b5405c928ab26734a8d2ddc5d43785
The sizemodechange event is not strongly connected to the
visibilitychange event that the WPT minimize_window.py test is now
using to ascertain whether the window has been successfully iconified.
Because Marionette uses the sizemodechange event it is causing
intermittents such as https://bugzil.la/1397007. You can also read a
lengthy summary I did on the problem in https://bugzil.la/1397007#c11.
The fix for the problem is to wait for the visibilitychange DOM
event content.
MozReview-Commit-ID: B6i33Ee5iMC
When maximizing the window we must restore it from iconified state or
exit fullscreen first. Likewise for minimizing the window, we must
exit fullscreen. For fullscreening the window we need to also restore
the window.
MozReview-Commit-ID: AOQX2cV2C75
--HG--
extra : rebase_source : 53f310cc261a9a411bc46a04dd50a160a930b5af
To allow geckodriver to temporarily opt-in for using the webdriver
conforming click, a new custom capability has to be created for
Marionette. If not specified the legacy clickElement method will
be used instead.
MozReview-Commit-ID: LuyTjLJXMGL
--HG--
extra : rebase_source : 8e133fb2d9767ea580468013fedff5233fd8eb93
It turns out that Node.isConnected (described in
https://dom.spec.whatwg.org/#dom-node-isconnected) handles an element’s
shadow root, which element.isDisconnected tries to replicate.
element.isDisconnected and element.isStale are both long and error-prone
and can be removed entirely in favour of this web platform API.
The relevant change to the WebDriver specification landed in
32a477b023.
MozReview-Commit-ID: 5Q0gWLvw8KL
--HG--
extra : rebase_source : 773ab302df27cf11be6079f918a48d3730ceb5c1
The WebDriver spec has been changed a while ago in regard of how
proxy capabilities are getting specified. It means that the port
is no longer its own key but an optional suffix for each of the
ftpProxy, httpProxy, sslProxy, and socksProxy keys.
MozReview-Commit-ID: zdYnVZSf09
--HG--
extra : rebase_source : c4928e6170b52a0ee247f50861646ec29a56bd34
nsIDOMWindow is the XPCOM interface and not what we mean in all these
cases. We either want to refer to the ChromeWindow or to the WindowProxy,
depending on the context of the code.
MozReview-Commit-ID: 405po1XLXRi
--HG--
extra : rebase_source : 47a179f7caed76592dab28f8e10550cda5fe3d02
The other window state manipulation commands are named minimizeWindow
and maximizeWindow.
MozReview-Commit-ID: IBVqJSRwG8x
--HG--
extra : rebase_source : a1efaf7cf2a5c068b62c60453b1f8814d34b043b
The other window state manipulation commands are named minimizeWindow
and maximizeWindow.
MozReview-Commit-ID: IBVqJSRwG8x
--HG--
extra : rebase_source : 29271a475a847ca15c1d8f736520b238c0818791
If the window is minimized when setting the window rect, restore it
before resizing or moving the window. We already exit fullscreen,
so this brings parity to the WebDriver:SetWindowRect command.
MozReview-Commit-ID: KrvWJjKX1eA
--HG--
extra : rebase_source : 968317ae961c8292edbadf2b4cfe439b7dc11f56