Until Firefox 64 the preference "app.update.auto" controlled if updates
can be downloaded and applied. This changed in Firefox 65, and now the
preference "app.update.disabledForTesting" controls it.
Depends on D13516
Differential Revision: https://phabricator.services.mozilla.com/D13517
--HG--
extra : moz-landing-system : lando
Until Firefox 64 the preference "app.update.auto" controlled if updates
can be downloaded and applied. This changed in Firefox 65, and now the
preference "app.update.disabledForTesting" controls it.
Depends on D13515
Differential Revision: https://phabricator.services.mozilla.com/D13516
--HG--
extra : moz-landing-system : lando
Custom preferences as passed into both classes via the constructor
are getting set in the base GeckoInstance class. But both the
DesktopInstance and FennecInstance classes could override those
custom preferences if they have the same preference set as
required preference. As such the custom preference doesn't have
any effect.
This patch allows both classes to override required prefs with
a different value.
Differential Revision: https://phabricator.services.mozilla.com/D13522
--HG--
extra : moz-landing-system : lando
The debug output is currently kinda polluted with lines of
received events and observer notifications. Those are not usually
needed by anyone beside us, but they also add little value in
having additional trace output, because that mainly would only
add the command and response messages.
To make debug output more helpful for our users the command
and response messages should appear here and not in trace.
But all the additional log output lines as mentioned above
we usually make use of for investigating problems should
be trace only.
Also a lot of existing debug output will remain unchanged.
Differential Revision: https://phabricator.services.mozilla.com/D13379
--HG--
extra : moz-landing-system : lando
Because in Marionette the application updates cannot be turned off
via the preference "app.update.disabledForTesting" (see bug 1508726),
the preference "app.update.auto" has to be used for the time being
to control that by default no updates should be downloaded and
installed.
Even "app.update.disabledForTesting" doesn't work right now,
it might be good to leave it. It would help us in the future
so that we won't have to release new Marionette client and
geckodriver releases, if it gets supported in Firefox.
Note that this band-aid fix will only work for Firefox releases
from 57 to 64. For Firefox 65 and onwards the fix on
bug 1508726 will be needed.
Depends on D13059
Differential Revision: https://phabricator.services.mozilla.com/D13060
--HG--
extra : moz-landing-system : lando
It should be made clear that only those preferences should be added
to marionette.js which have an immediate effect. All others which
eg. require a restart, or have to be set before the application
starts the first time, must be added to the appropriate client's
profile generation code.
Differential Revision: https://phabricator.services.mozilla.com/D13059
--HG--
extra : moz-landing-system : lando
The current implemenation for opening new chrome windows via the
WindowManager mixin class is racy because it doesn't wait for the
newly opened window to have focus and being activated first.
The patch adds a new method to the WindowManager class, which is
waits for those events. It can then be used across all existent
Marionette unit tests.
Differential Revision: https://phabricator.services.mozilla.com/D12180
--HG--
extra : moz-landing-system : lando
In order to reduce the cost of running marionette tests on a virtual machine
with a GPU, add a marionette-gpu job, and run the WebRender rollout test added
in the previous patch in this new job.
Depends on D10528
Differential Revision: https://phabricator.services.mozilla.com/D12241
--HG--
extra : moz-landing-system : lando
In order to reduce the cost of running marionette tests on a virtual machine
with a GPU, add a marionette-gpu job, and run the WebRender rollout test added
in the previous patch in this new job.
Depends on D10528
Differential Revision: https://phabricator.services.mozilla.com/D12241
--HG--
extra : moz-landing-system : lando
In order to reduce the cost of running marionette tests on a virtual machine
with a GPU, add a marionette-gpu job, and run the WebRender rollout test added
in the previous patch in this new job.
Depends on D10528
Differential Revision: https://phabricator.services.mozilla.com/D12241
--HG--
extra : moz-landing-system : lando
The current implemenation for opening new chrome windows via the
WindowManager mixin class is racy because it doesn't wait for the
newly opened window to have focus and being activated first.
The patch adds a new method to the WindowManager class, which is
waits for those events. It can then be used across all existent
Marionette unit tests.
Differential Revision: https://phabricator.services.mozilla.com/D12180
--HG--
extra : moz-landing-system : lando
This patch introduces 2 new prefs:
- devtools.console.stdout.chrome: if true, console API writes on stdout when
used by chrome code
- devtools.console.stdout.content: console API write on stdout when used by
content code.
This adds the app.update.checkInstallTime pref with a value of false in all tests that have the app.update.disabledForTesting pref except for geckodriver which is covered by bug 1508283.
This patch removes the dom.webcomponents.shadowdom.enabled pref and all its
references, including the following functions:
* nsContentUtils::IsShadowDOMEnabled()
* nsIDocument::IsShadowDOMEnabled()
* nsDocument::IsShadowDOMEnabled(JSContext* aCx, JSObject* aGlobal)
* nsDocument::IsShadowDOMEnabled(const nsINode* aNode)
* nsTextNode::IsShadowDOMEnabled(JSContext* aCx, JSObject* aObject)
This function is renamed and updated to nsDocument::IsCallerChromeOrAddon():
* nsDocument::IsShadowDOMEnabledAndCallerIsChromeOrAddon(JSContext* aCx, JSObject* aObject)
I didn't change the tests that load Shadow DOM tests in an iframe, in the interest of keeping hg annotation history.
Differential Revision: https://phabricator.services.mozilla.com/D11183
--HG--
extra : moz-landing-system : lando
The following python-test paths are being moved out of 'make check' and into their own task:
- python/mozlint
- testing/mozbase
- tools/lint
The following python-test paths previously did not run on Windows:
- python/mozterm
- testing/marionette
- testing/raptor
- tools/tryselect
MozReview-Commit-ID: C07FANaYzf7
Depends on D10758
Differential Revision: https://phabricator.services.mozilla.com/D10759
--HG--
extra : moz-landing-system : lando
This patch removes the dom.webcomponents.shadowdom.enabled pref and all its
references, including the following functions:
* nsContentUtils::IsShadowDOMEnabled()
* nsIDocument::IsShadowDOMEnabled()
* nsDocument::IsShadowDOMEnabled(JSContext* aCx, JSObject* aGlobal)
* nsDocument::IsShadowDOMEnabled(const nsINode* aNode)
* nsTextNode::IsShadowDOMEnabled(JSContext* aCx, JSObject* aObject)
This function is renamed and updated to nsDocument::IsCallerChromeOrAddon():
* nsDocument::IsShadowDOMEnabledAndCallerIsChromeOrAddon(JSContext* aCx, JSObject* aObject)
I didn't change the tests that load Shadow DOM tests in an iframe, in the interest of keeping hg annotation history.
Differential Revision: https://phabricator.services.mozilla.com/D11183
--HG--
extra : moz-landing-system : lando
This adds an extra field to the reftest comaprisons to hold the
minumum/maximum allowed differences per pixel channel and the
minumum/maximum number of pixels that may differ.
Differential Revision: https://phabricator.services.mozilla.com/D9129
--HG--
extra : moz-landing-system : lando
The things that rely on TimedPromise, such as awaiting a sizemodechange
event on exiting fullscreen, takes a lot longer to perform in Asan
and debug builds than in optimised builds.
This patch increases the TimedPromise timeout duration by three
times in debug builds, which is the same amount WPT uses.
Depends on D10569
Differential Revision: https://phabricator.services.mozilla.com/D11189
--HG--
extra : moz-landing-system : lando
On certain window manager configurations a window may be resized
to fit the full available dimensions of the screen without going
into the maximised state. Similarily, a maximised window may be
the exact dimensions of the screen.
If the window outerWidth/outerHeight is 800x600 and in maximised
state, resizing it to 800x600 through WebDriver:SetWindowRect will
not work because the window has already reached its requested dimensions.
This patch ensures to wait for the resizeEnd event when the window
state is not normal.
Depends on D8419
Differential Revision: https://phabricator.services.mozilla.com/D10568
--HG--
extra : moz-landing-system : lando
This requests an animation frame off ChromeWindow and waits for
the main thread's event queue to become idle in relation to window
manipulation commands.
It additionally clears the event queue before resizing, because
this is a particularly hazardous operation. We don't know the
exact science as to why this is needed, so it may just be that this
introduces enough latency for the operation to complete successfully.
File this under "secret sauce".
This ensures all potential synchronisation code between e.g. the
parent process and the child processes have had time to run before
we return from WebDriver:{MinimizeWindow,MaximizeWindow,FullscreenWindow}.
Depends on D8418
Differential Revision: https://phabricator.services.mozilla.com/D8419
--HG--
extra : moz-landing-system : lando
My delegating to the main thread, waiting for the last DOM resize event
to fire, and requesting an animation frame from the ChromeWindow, we
can ensure the window is (more) synchronously resized. This ensures
better reliability when setting a window's dimensions.
All this means we can get rid of the heuristics we use for "waiting
for a window resize" to occur by checking if the outerWidth/outerHeight
has changed. These were obviously bug ridden.
Depends on D8417
Differential Revision: https://phabricator.services.mozilla.com/D8418
--HG--
extra : moz-landing-system : lando
When the ChromeWindow is already in the desired x/y position,
WebDriver:SetWindowRect should act as a no-op. This avoids a
superfluous call to ChromeWindow.moveTo.
Depends on D8416
Differential Revision: https://phabricator.services.mozilla.com/D8417
--HG--
extra : moz-landing-system : lando
win.Maximized does not exist. This should be WindowState.Maximized.
Depends on D8415
Differential Revision: https://phabricator.services.mozilla.com/D8416
--HG--
extra : moz-landing-system : lando
Unlike the visibilitychange event, sizemodechange appears to fire in a
mostly reliable way. However, in the off-chance that sizemodechange
should not fire, we need an escape path so that Marionette returns
within a timely fashion.
Depends on D8414
Differential Revision: https://phabricator.services.mozilla.com/D8415
--HG--
extra : moz-landing-system : lando
The visibilitychange DOM event does not fire reliably in all
configurations when retrieved from web content. It appears to fire more
reliably in chrome, but to ensure a call to WebDriver:MinimizeWindow
never hangs, we additionally change it to be a TimedPromise.
There is an assumption here that if the iconification process does
not complete within this duration, there is nothing we can do.
Depends on D8413
Differential Revision: https://phabricator.services.mozilla.com/D8414
--HG--
extra : moz-landing-system : lando
Instead of waiting for the visibilitychange event to fire, which does
not work in headless mode, we can poll ChromeWindow.windowState which
appears to be a more reliable way of telling the window's current state.
This will resolve the problem where Marionette never returns from
restoration due to visibilitychange never firing, and will additionally
make it more reliable.
Depends on D8412
Differential Revision: https://phabricator.services.mozilla.com/D8413
--HG--
extra : moz-landing-system : lando
This adds a new synchronisation primitive to Marionette which will
allow us to wait for the last in a sequence of events to fire.
This is especially useful for high-frequency events such as the DOM
resize event, where multiple resize events may fire as the window
dimensions are being changed.
Depends on D8411
Differential Revision: https://phabricator.services.mozilla.com/D8412
--HG--
extra : moz-landing-system : lando