On Taskcluster machines, /tools/buildbot doesn't exist. It turns out, nothing
refers to exes['python'] anyway, so we can just remove that (the preference is
to use sys.executable instead).
The references to exes['buildbot'] were all for sendchanges from builds to
tests, and those too are all gone now.
Lines like
'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
Were committing two sins: first, using a python executable from a random
virtualenv; and second, using a virtualenv.py from another random directory (in
this case, it's a utility script for a PuppetAgain module). Such lines are
replaced with a reference to /tools/virtualenv/bin/virtualenv, which is
installed for the express purpose of providing a virtualenv binary on testers
(for builds, we use the vendored copy).
MozReview-Commit-ID: 4iHX3B3MLyK
--HG--
extra : rebase_source : e4b4902a19d688b148c136bd10c706fc127cbf2d
The robustcheckout extension from revision
134574b64ddfa4d7c31977d792761cceca67665a of the version-control-tools
repo is vendored without modifications.
Changes since last time include printing of the Mercurial version and
more robust handling repositories not using modern storage
requirements.
This patch was not explicitly reviewed by glob. But glob reviewed all
the robustcheckout changes since the last vendor. So by the transitive
property of code review...
--HG--
extra : rebase_source : f511876ecc743e6b453118297d327e9a07bb9441
In certain places, the Marionette action module calls error.pprint as
if it is a function. pprint is a ES6 string template and should be used
like pprint`${replacement}`.
MozReview-Commit-ID: 29UoCNxkKa7
--HG--
extra : rebase_source : f8fe408827353f78ee223175316d5b5f9b6a8df5
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
Various functions in the action module take a container object such as
{frame: <WindowProxy global>, shadowRoot: <Element>}
when it in fact never uses the shadowRoot entry. As part of the new
window tracking we will get rid of the container concept altogether.
Because the action module is sufficiently self-contained, we can start
with removing it from there already.
MozReview-Commit-ID: KeeNF08mqnX
--HG--
extra : rebase_source : 51eee50a648a994fab456adf4add46c91a6c82a3
We already support the actual functionality, but nobody added support
for the IDL property to the .webidl file.
Also added <style nonce> to the web-platform-tests reflection tests,
since nobody updated that to the current spec either.
This does not add support for .nonce to SVGScriptElement, because I
couldn't find any standard that specified it. I updated the wpt tests
to expect .nonce to work on HTMLScriptElement but not SVGScriptElement.
MozReview-Commit-ID: F1K7WMfMoDi
--HG--
extra : rebase_source : 247c63b63446dc0d60062bb9d9c61228c379b989
The window rect's state is already tested a few lines down.
MozReview-Commit-ID: BLDufKrl8ey
--HG--
extra : rebase_source : 535872620741ffdd424f1794b355e1f0975ba76c
When we set the window rect to width/height 400, we only want to test
those qualities.
MozReview-Commit-ID: 76qqCOOwjXQ
--HG--
extra : rebase_source : a8ebbb4a848beba6de43c2176d9322806ae80ac1
Because the Maximize Window, Minimize Window, and Fullscreen Window
commands are now idempotent we will want to use the Set Window Rect to
bring them back to the normal window state.
MozReview-Commit-ID: BxtAJizfti6
--HG--
extra : rebase_source : c3110bb53ca2dc795e0e6756525435ba2ea61a8e
The x and y variables are not defined but needs to be extracted from
new_position.
MozReview-Commit-ID: Ds8cPlufjUa
--HG--
extra : rebase_source : 6edb0445ac89d0202a4ef037b0cd38af226c6507
The other window state manipulation commands are named minimizeWindow
and maximizeWindow.
MozReview-Commit-ID: IBVqJSRwG8x
--HG--
extra : rebase_source : a1efaf7cf2a5c068b62c60453b1f8814d34b043b
Most of the failures are due to
https://bugzilla.mozilla.org/show_bug.cgi?id=1264259 which creates
a cascade failure unfortunately.
MozReview-Commit-ID: 4wLh7WcacGu
--HG--
extra : rebase_source : 50d8fa3ba28562094dea2d849a10e2bee57ff776
The window rect's state is already tested a few lines down.
MozReview-Commit-ID: BLDufKrl8ey
--HG--
extra : rebase_source : b11b01a5659bd1f8b2361b1e37eb577b862ea527
When we set the window rect to width/height 400, we only want to test
those qualities.
MozReview-Commit-ID: 76qqCOOwjXQ
--HG--
extra : rebase_source : b4dafc793a84b48e64b0901e153edfe680da88cf
Because the Maximize Window, Minimize Window, and Fullscreen Window
commands are now idempotent we will want to use the Set Window Rect to
bring them back to the normal window state.
MozReview-Commit-ID: BxtAJizfti6
--HG--
extra : rebase_source : 94b43c4320f3bbb2034853803b5785ad091fdadc
The x and y variables are not defined but needs to be extracted from
new_position.
MozReview-Commit-ID: Ds8cPlufjUa
--HG--
extra : rebase_source : 2bef2d5ea5b532323c5c693ba057c93896a900e9
The other window state manipulation commands are named minimizeWindow
and maximizeWindow.
MozReview-Commit-ID: IBVqJSRwG8x
--HG--
extra : rebase_source : 29271a475a847ca15c1d8f736520b238c0818791
The WebDriverCommand::FullscreenWindow command maps to an unknown
Marionette command "fullscreenWindow". The correct command is
"fullscreen".
MozReview-Commit-ID: 4th2TYcIbP2
--HG--
extra : rebase_source : 2fcd79984a31962aa18bb10b15a487907707fe8f
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
The Firefox remote protocol in testing/marionette predominantly uses
camel casing in naming properties and variables. To enforce consistency
with this practice, this patch adds an eslint rule to enforce camel case.
There are a few exceptions where we use snake case in response output.
We can disable the lint rule on an individual basis in this handful
of cases.
MozReview-Commit-ID: DL7msdriFil
--HG--
extra : rebase_source : 737791b59002027f7501e7c46bd31d7a368a9b66
We recently had a serious bug in Marionette (https://bugzil.la/1254136)
due to a case statement that fell through due to a missing "break"
statement. This patch introduces a lint rule to prevent similar episodes
in the future.
When you do want a case to fall through, it is possible to add a comment
like this:
switch (foo) {
case 1:
doSomething();
// fall through
case 2:
doSomething();
break;
}
MozReview-Commit-ID: Gu8cFGsdne2
--HG--
extra : rebase_source : 8b29c663167783770d0eb0a32b7a7c2cb83a529e
Most of the failures are due to
https://bugzilla.mozilla.org/show_bug.cgi?id=1264259 which creates
a cascade failure unfortunately.
MozReview-Commit-ID: 4wLh7WcacGu
--HG--
extra : rebase_source : 46e7256dabc66fc2f67d668074af8ec14a22f187
The poll() call in SystemResourceMonitor.stop might fail even though
there is something to read from the pipe, in some corner cases, and
python won't let us know about it. In that case, an exception is thrown,
leaving the SystemResourceMonitor (and its callers) in a weird state. In
practice, this leads BuildMonitor.__exit__ to recall stop, which then
fails.
So when poll() throws an exception, we pretend there's still something
to read, and we try to read anyways. If there is something to read,
recv() will return it, otherwise, it will throw an exception of its own,
which we catch, pretending we're done.
Furthermore, when there is nothing to read from the pipe, poll() simply
returns False, and our loop never sets `done` to True, and we then hit
an assert, which doesn't have its place here, so we remove it.
Finally, the other end of the pipe might have died at any time, making
sending over the pipe fail, so we also protect against that.
With all these changes, it feels like the reason to backout bug 1239939
in bug 1272782 should have been dealt with, and we can drop the timeout
again.
--HG--
extra : rebase_source : ac72dd5b2602cf3ffddfb429f95e02380f939893
The poll() call in SystemResourceMonitor.stop might fail even though
there is something to read from the pipe, in some corner cases, and
python won't let us know about it. In that case, an exception is thrown,
leaving the SystemResourceMonitor (and its callers) in a weird state. In
practice, this leads BuildMonitor.__exit__ to recall stop, which then
fails.
So when poll() throws an exception, we pretend there's still something
to read, and we try to read anyways. If there is something to read,
recv() will return it, otherwise, it will throw an exception of its own,
which we catch, pretending we're done.
Furthermore, when there is nothing to read from the pipe, poll() simply
returns False, and our loop never sets `done` to True, and we then hit
an assert, which doesn't have its place here, so we remove it.
Finally, the other end of the pipe might have died at any time, making
sending over the pipe fail, so we also protect against that.
With all these changes, it feels like the reason to backout bug 1239939
in bug 1272782 should have been dealt with, and we can drop the timeout
again.
--HG--
extra : rebase_source : fededf989fe9021654b67d5a070f7e49aa717f3c
In case the NewSession command fails due to errors returned
by Marionette, the browser has to be killed. This is necessary
because DeleteSession always requires an existent session, and
would fail in closing the browser. So the process would continue
to be alive.
MozReview-Commit-ID: 1llX4lPNYjN
--HG--
extra : rebase_source : 0da6529e2c09358c83760fc66c997db09665e304
In addition to readability improvements, it fixes a few small errors
where the "x" and "y" field are being mixed up.
MozReview-Commit-ID: LP8uAaELadY
--HG--
extra : rebase_source : 855c8a7b84396a57df63e315a78b5f1e389eda16
Now that geckodriver has support for window state in the window rect
object, we can enable the test_set_window_rect_window_minimized test
from testing/web-platform/tests/webdriver/tests/set_window_rect.py.
MozReview-Commit-ID: FY6EZTxMUbE
--HG--
extra : rebase_source : 0614f35e35ef4274e13ccc35d12093e7bdc18afa
This will change all build symbols to 'Ba' and set the USE_ARTIFACTS=1 environment variable.
Mozharness will detect this env to decide whether to perform an artifact build or not.
MozReview-Commit-ID: J8HVZzOt4mX
--HG--
extra : rebase_source : 453028d9be5cb2ad07e9a2a8b769cb6aac9893fe
A missing break statement caused a double execution of the code in
"profile-after-change", which leads to two instantiations of the
Marionette server colliding due to the same port.
MozReview-Commit-ID: Dp6fncj463j
--HG--
extra : rebase_source : dd4301c2fb797da228c0011e6bd90afa9171fb54
The webdriver spec declares the "proxyType" as required, and of
type string.
MozReview-Commit-ID: FXUhdYfOwWI
--HG--
extra : rebase_source : dc069a4de1e014951ed430bf5448ca0e3ac2545e
There are no other meta files that the preference values which were dropped in
this patch are set explicitly.
MozReview-Commit-ID: 6FXjj8gVPER
--HG--
extra : rebase_source : 1e1af50230201bf6aeccbc4ded5401f90a0b0d6c
In the spec [1], computed value for column-gap is defined as
'as specified, with <length>s made absolute'.
[1] https://drafts.csswg.org/css-multicol-1/#column-gap
MozReview-Commit-ID: IO22V33z8pz
--HG--
extra : rebase_source : 63167965a0e89fd298df3a22a7c5e41ed34dd1e9
This adds test verification support to the xpcshell test harness. With --verify,
the specified test(s) are run 20 times, then another 20 times in chaos mode.
Tests are run sequentially. I have some interest in running in parallel also,
but this may not be practical: 1. Under normal circumstances, a test does not
run in parallel with itself, so it is arguably an unrealistic mode of operation;
2. Logging fails if it sees a test start after a test with the same name has completed.
New function updateMozinfo() is broken out of runTests() and the remainder of runTests()
is split into two parts: runTests() prepares tests, then calls new function runTestList() to
actually run them. All changes are structural and no change in behavior is expected.
The complexity of the xpcshell test harness has grown over time. I am reluctant
to make it more complex without first trying to simplify it. Here I consolidate
some of the argument passing between functions in an attempt to simplify some
important interfaces. Changes are strictly structural and should result in no
change in behavior.