Граф коммитов

14 Коммитов

Автор SHA1 Сообщение Дата
Andreas Tolfsen b51e4887c3 Bug 1371733 - Move cookie service to chrome space; r=whimboo
The cookie service relies on the current document's
domain which is accessible from chrome space through
this.curBrowser.contentBrowser.contentURI.host.

As it is implemented currently, Marionette's cookie service jumps
between chrome- and content space more than necessary.  This incurs
significant serialisation and IPC overhead, considering that the domain,
hostname, and current path information is readily available in chrome
space.

This patch removes all cookie-related functionality from
testing/marionette/listener.js, and implements a pure chrome-only
version of the service.  It does, however, not try to fix conformance
issues with the WebDriver specification, of which there are many.

Some of the algorithms, especially to do with iteration over cookies,
implemented in cookie.iter, is also highly suboptimal.  I have not
fundamentally changed any algorithms, and so my recommendation is to
address this later when addressing potential conformance bugs.

MozReview-Commit-ID: Fgs8ocbDJxb

--HG--
extra : rebase_source : 16470d5341459e40b1ceed12728451d517bbc490
2017-06-12 18:05:22 +01:00
Andreas Tolfsen 645c6db1b0 Bug 1319237 - Generalise wait condition utility; r=automatedtester,maja_zf
This makes the `implicitWaitFor` utility from
testing/marionette/element.js generally available in Marionette.

It improves on the design of the old wait utility by providing
promise-like resolve and reject options to the evaluated function.  These
can be used to indicate success or failure of waiting.  If resolved, the
provided value is returned immediately.  When rejected, the function is
evaluated over again until the timeout is reached or an error is thrown.

It is useful to indicate success and failure state because it saves the
calling code from guessing based on the return value.  Guessing from
the return value can be problematic since there are certain types and
values in JavaScript that are ambigeous or misleading, such as the fact
that empty arrays are evaluated as a truthy value.

MozReview-Commit-ID: G8F99tdbiNb

--HG--
extra : rebase_source : 88647b1c7115f15649d5029391ff21567f9d527c
2016-11-21 23:41:20 +01:00
Wes Kocher 10665c1427 Backed out 14 changesets (bug 1319237) for android xpcshell failures a=backout
Backed out changeset c85849b790c5 (bug 1319237)
Backed out changeset 9746878e5fc7 (bug 1319237)
Backed out changeset 1f7f75c57c59 (bug 1319237)
Backed out changeset 4dc796bbcfaa (bug 1319237)
Backed out changeset f8449c471b8f (bug 1319237)
Backed out changeset f2bdf078f39a (bug 1319237)
Backed out changeset 8df8cda56942 (bug 1319237)
Backed out changeset f651a9e54a57 (bug 1319237)
Backed out changeset 76c8aafbd933 (bug 1319237)
Backed out changeset a2096fa29cd7 (bug 1319237)
Backed out changeset af71a9376bef (bug 1319237)
Backed out changeset 778721edd8b9 (bug 1319237)
Backed out changeset feaf6ba3bd9a (bug 1319237)
Backed out changeset f5f206ed675b (bug 1319237)

MozReview-Commit-ID: EpmToL8Xqfz
2017-02-06 11:28:28 -08:00
Andreas Tolfsen 8856da4c0b Bug 1319237 - Generalise wait condition utility; r=automatedtester,maja_zf
This makes the `implicitWaitFor` utility from
testing/marionette/element.js generally available in Marionette.

It improves on the design of the old wait utility by providing
promise-like resolve and reject options to the evaluated function.  These
can be used to indicate success or failure of waiting.  If resolved, the
provided value is returned immediately.  When rejected, the function is
evaluated over again until the timeout is reached or an error is thrown.

It is useful to indicate success and failure state because it saves the
calling code from guessing based on the return value.  Guessing from
the return value can be problematic since there are certain types and
values in JavaScript that are ambigeous or misleading, such as the fact
that empty arrays are evaluated as a truthy value.

MozReview-Commit-ID: G8F99tdbiNb

--HG--
extra : rebase_source : 1de77b97f0de71e0dc77fc47a6b1aab1ef88ea6f
2016-11-21 23:41:20 +01:00
Andreas Tolfsen c276b917c4 Bug 1326534 - Rewrite capabilities parsing in Marionette; r=automatedtester
This patch provides a (nearly) WebDriver conforming implementation
of capabilities in Marionette.  The work remaining is pending further
clarification in the specification.

Capabilities are represented internally as a complex object provided
by `session.Capabilities`.  Timeouts and proxy configuration are also
represented by the similar complex objects `session.Timeouts` and
`session.Proxy`, respectively.

The capabilities stored in `GeckoDriver#sessionCapabilities` are the
result of parsing user-provided desired- and required capabilities.
WebDriver now uses `firstMatch` and `alwaysMatch` primitives for
capabilities, but as this is considered a wider breaking change, the
move to these primitives will be done at a later stage.  It’s prudent
to point out that the base techniques used with the new primitives
are similar to those implemented for `desiredCapabilities` and
`requiredCapabilities` in this patch, and that the work needed to adapt
them is considered trivial.

When capabilities are presented back to the user (the so called processed
capabilities), we call the `toJSON` implementation on the complex objects.
`session.Capabilities#toJSON` calls the internal function `marshal`
which ensures empty fields are dropped.  `marshal` can be considered to
be a specialisation of the standard library `JSON.stringify`, which also
calls `toJSON` on entry values if they provide this function.

The changeset overall also provides a much deeper level of testing of
WebDriver capabilities.

MozReview-Commit-ID: 97xGt3cnMys

--HG--
extra : rebase_source : 98e0bde3fdfd811775d195b488cb1255f61e5772
2016-12-31 12:21:34 +00:00
Andreas Tolfsen e5010028a2 Bug 1313865 - Centralise common Marionette assertions; r=automatedtester,maja_zf
Many tests that result in throwing errors, amongst those many type-
and platform checks, are repeated throughout the Marionette code base.
This patch centralises the most common of these, typically reducing
consumer calls from three to one line.

Example usage:

	assert.defined(cmd.parameters.value);
	assert.postiveInteger(cmd.parameters.value,
	    error.pprint`Expected 'value' (${value}) to be a signed integer`);
	// InvalidArgumentError: Expected 'value' ([object Object] {"foo": "bar"}) to be a positive integer

MozReview-Commit-ID: BHOaDazeGer

--HG--
extra : rebase_source : 1d35c10e29d4fd536829e9714ae65bcd14ad21f8
2016-10-31 22:00:21 +00:00
Maja Frydrychowicz 6da8812934 Bug 1303234 - Implement extracting action chain from a request; r=ato,jgraham
MozReview-Commit-ID: JxNoGZog1om

--HG--
rename : testing/marionette/action.js => testing/marionette/legacyaction.js
extra : rebase_source : 91e9b1915e18362765804e3767dfb834394a35af
2016-10-26 13:04:48 -04:00
Andreas Tolfsen 175975b04b Bug 1280300 - Support navigation by fragment; r=automatedtester
Adds support for navigating to a fragment on the currenty visible document
without waiting for a DOM event that the document has been fully loaded.

This addresses https://github.com/mozilla/geckodriver/issues/150.

MozReview-Commit-ID: 7uiPT5cjGQE

--HG--
extra : rebase_source : f9152a6623a25c17e10dc3bc6552b8e635c21317
2016-07-19 18:47:33 +01:00
Andreas Tolfsen 05e86fe521 Bug 1253244 - Correct x,y offset type checks and add tests; r=automatedtester
The xOffset and yOffset arguments to element.coordinates previously
checked loose falsiness.  If a number <= 0 would be given as an argument,
they would not be used and it would return the centre of the element.

This change adds more checks, documentation, and tests.

MozReview-Commit-ID: KmsiVFipzWx

--HG--
extra : rebase_source : 96e6c8c127071356fec029f5eaa4254ae60930b3
2016-03-04 15:34:28 +00:00
Andreas Tolfsen d0bbe7fc14 Bug 1240789 - Remove head+tail in Marionette xpcshell manifest; r=automatedtester
Was originally there to work around a bug in the B2G on-device test
runner.  Can now safely be removed after bug 1240723 was landed.

MozReview-Commit-ID: EZGfvYcP9ER

--HG--
extra : rebase_source : c2dc099b127b4bbd5988c386d15de72a3ab0bf40
2016-02-06 17:14:32 +00:00
aleth 1d5ae895ee Bug 1242081 - Disable marionette xpcshell tests for Thunderbird. r=ato
--HG--
extra : rebase_source : db0dfd23dd9c0ab442f076fe3c78600b3fde8296
extra : amend_source : 864f43415fabb66b0393e07389328ad3c7c91585
2016-01-23 01:12:14 +01:00
Andreas Tolfsen a34ac72c2f Bug 1239373 - Infrastructure for Marionette xpcshell unit tests; r=automatedtester
--HG--
extra : rebase_source : 97b6c8d4bfb54969fb36de77218c481e40f3f306
extra : source : 7c72e79b74a7d4fb3b33f3b5df68bb544fbd8aee
2016-01-18 18:38:08 +00:00
Nigel Babu e806014c5e Backed out 3 changesets (bug 1239373) for xpcshell bustage on emulator
Backed out changeset 308b5e2bb5df (bug 1239373)
Backed out changeset 783077fc10a2 (bug 1239373)
Backed out changeset 32e6e21daeda (bug 1239373)

--HG--
extra : commitid : FRAHnToBmu7
2016-01-19 13:16:37 +05:30
Andreas Tolfsen 4e0b40e6fa Bug 1239373 - Infrastructure for Marionette xpcshell unit tests; r=automatedtester
--HG--
extra : rebase_source : d091633ce34f4847967f2eb517a96d06091179ee
2016-01-18 18:38:08 +00:00