This change will cause Marionette to use the webdriver conformant
clickElement method instead of the legacy one by default. It means
that additional checks will be performed to ensure that the element
to click onto is visible, and not obscured by other elements. Also
it will be scrolled into view in case it is located outside of the
current view port.
Even it is used by default, the behavior can be controlled with the
"moz:webdriverClick" capability. Setting to to 'false' when creating
a new session, will cause a fallback to legacy clickElement.
MozReview-Commit-ID: E560k62Q2J9
--HG--
extra : rebase_source : 1d4d120822c6ae13a319c6c5d33e5b77b86cfdb6
Because the content frame script's clickElement function uses
the old-style despatch technique, all code lines that have the
potential of throwing must be encapsualted in try...catch blocks.
Bug 1400256 accidentally moved them outside this block, and we did
not have any tests for stale elements in web content.
This ensures errors from WebElement.fromJSON and seenEls.get get
returned to the WebDriver service in testing/marionette/driver.js.
MozReview-Commit-ID: 49qjWhXWy69
--HG--
extra : rebase_source : 3e1b639ad253c3fe7eda890de04608a925e256f5
The HTTP status for the "stale element reference" error in WebDriver
should be 404 (Not Found).
MozReview-Commit-ID: CBb7Ds8AEY3
--HG--
extra : rebase_source : 9b4309d43118730e20cb4ba17312a49cc203c58b
wdclient was the name of the old GitHub repository. The actual
Python package name is "webdriver".
MozReview-Commit-ID: FHy3iEB9aAj
--HG--
extra : rebase_source : 1f1a712fef86ab56fd9bc1f3b949e0844e9fae84
When cross-compiling geckodriver for i686-pc-windows-gnu from Linux
x86-64, this custom cargo configuration is needed. It specifies
the linker to use as well as a rustc flag for disabling backtraces
on panic, as far as I gather.
Neither of these options are necessary, of course, when we start
releasing geckodriver from Taskcluster, because we will then not
rely on cross-compilation.
MozReview-Commit-ID: 6q7wIBNrCHB
--HG--
extra : rebase_source : d71360ab043bf169871de58dfaded1a3281132e3
This should be functionally identical to `make -f client.mk`.
MozReview-Commit-ID: GfKHtezLBNL
--HG--
extra : rebase_source : e7965718b16d22055abdab2838e97cae63330ce9
The old code was simply running configure and manually invoking some
make targets via client.mk. These can both be done via `mach`.
As part of the change, the build targets have been consolidated. There
is still an abstraction leak here. But at least we aren't using client.mk.
MozReview-Commit-ID: 7oMXPWPZS6V
--HG--
extra : rebase_source : 6d632dc086d79a17e577da66336c77003d963f67
Building with "Linux x64 JSDCov", each suite of tests will produce a list of JSDCov artifacts (.json). This patch compresses all JSDCov artifacts into 1 zip file for each suite upon tests completion.
MozReview-Commit-ID: DaNLOQuW2lc
--HG--
extra : rebase_source : cceb912d0fe16f9921e1d13fe85d53af2abcb29c
Finding elements in the XHTML namespace will fail unless
element.isDOMElement is fixed so that it does not look at a
particular namespaceURI.
It is worth noting that, generally, the WPT element retrieval tests
are pretty awful and the new tests don't exactly match the style of
the preceding tests. This intended, because the other tests are bad.
This should be addessed individually.
MozReview-Commit-ID: 8I3VwhJirSb
--HG--
extra : rebase_source : 2de08ec68dbf8b4768708bdb733965634ac4feda
If the node variable is an object that is not null, and nodeType is
not an own property of it, node.nodeType === node.ELEMENT_NODE might be
evaluated as undefined === undefined if ELEMENT_NODE is also missing.
This will pass the condition, which is an unintended consequence.
To remedy this, we first check that nodeType indeed exists on node
before proceding.
MozReview-Commit-ID: G0eaRvwm5mv
--HG--
extra : rebase_source : 8c08e0363f26095cf672d2b11699431b1fb4ef9f
This drops the now-superfluous element.isSVGElement. SVG elements
are matched with element.isDOMElement because there is no special
need to distinguish them from other elements, apart from chrome elements.
MozReview-Commit-ID: 3AgEtyaAsPU
--HG--
extra : rebase_source : 7ec52aa9a7b7404eff5b6daf8ebe8259f06265da
This patch makes element.isDOMElement match any non-XUL element,
meaning it will henceforth match both SVG elements as well as any
custom XML namespaced element.
In the bug 1410796, Marionette does find the element, but is unable
to add it to the known web element store. This is a result of the
changes made in bug 1400256, where I introduced a set of functions
for element type recognition needed for determining which web
element abstraction to use for an element.
We use element.isDOMElement to distinguish content elements from chrome
elements, and this change consequently makes element.isSVGElement
superfluous.
MozReview-Commit-ID: AkEHm6zroKz
--HG--
extra : rebase_source : c6f101e12839241f60c8c1b3908df3a3e4a89a51
Variable appDir was being referenced before assignment. Changed the try-except-finally blocks to handle the error.
MozReview-Commit-ID: AHEeVhmPfQI
--HG--
extra : rebase_source : b0dd78f3895bb34c4e916bc0441dd9ae5e643dfc
Made this a separate commit from that which actually removes the
in-tree vendored dependencies to make it easier to review.
MozReview-Commit-ID: 9xbkM0EfOOL
--HG--
extra : rebase_source : 6686dc07a25df1a820914eb715fb733778f092cb
The Rust backtrace from geckodriver is not useful since any error
we actually return is by-definition handled by the code, and we
can probably get more information just by looking at the error type
and string.
At the same time, it runs the risk of confusing users into thinking
there was a bug in the driver when actually it's perfectly normal
handling of invalid input.
MozReview-Commit-ID: 9S5IaioA5AA
--HG--
extra : rebase_source : 0d98188c263d51402c2330a6b730752487dcc7fc
This adds a test that measure the time it takes to open the console
on a page with 100 logged messages and show something meaningful to the user.
MozReview-Commit-ID: FMx9QRKvpfl
--HG--
extra : rebase_source : d587d8258c66457a5a4cb65882c8aacaaebfa68c
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
For user input we will want to return the appropriate invalid
argument error. For internal input using TypeError is fine.
MozReview-Commit-ID: AlOnZuhaczN
--HG--
extra : rebase_source : f16aa13b6fc53da6261594dab0c9df34d6c3df6e