This is faster and works better in some cases (e.g. with SVG). However
it doesn't work correctly on Windows yet, so remains disabled there by default.
MozReview-Commit-ID: AXyeFUGfVgx
The internal reftest harness changes some results, but it's not clear
that it's overall better or worse than the old one, so just update the
expectation metadata for now.
MozReview-Commit-ID: KSE2z1Ct72t
This adds a metadata object associated with each test queue, and uses
it to pass cache information into the marionette internal reftest
implementation so that we are able to cache only those canvases that
will be reused.
MozReview-Commit-ID: zASrlvnri3
Initially wptrunner had a single test queue that was shared between
all processes. Then for --run-by-dir it changed to a queue of
queues. This change makes it a queue of deques, which is simpler,
since the test queues themselves are no longer shared between
processes. It also changes the implementation when we aren't using
--run-by-dir but are using multiple processes to pre-group the tests
into N queues rather than sharing a single queue between all
processes. This is necessary to use the deque of course, but
importantly anticipates a change in which we will pre-compute per
queue metdata for each queue; that doesn't work well with one shared
queue. The downside of this change is that there is no work stealing,
so it may be less efficient if we randomly assign many slow jobs to
one particular process.
MozReview-Commit-ID: 7e0Odk7yDwr
Add an InternalReftestImplmentation that runs reftests using the
built-in Marionette reftest primitives rather than screenshots. This
is actiivated using the --internal-reftest switch, although that may
become the default in the future.
MozReview-Commit-ID: 6HxGuBsTITf
This adds commands to start a reftest session, run a test, and end the
session. It as assumed that after you start a reftest session you will
just run reftests until you end the session. When starting a session
the user provides a string indicating when screenshots should be
taken, and an object mapping urls to a count of the number of times
that url is expected to be used in the session, to help with
caching. Running the tests takes a url to a test, an expected status,
a timeout, and a nested list of possible references, in which each
entry at a specific level is combined by OR and nested references are
combined by AND.
The implementation is heavilly inspired by the existing reftest
harness, starting a minimal window with no tabs, and loading the urls
directly in there. In order to get a screenshot in the e10s case we
have to pass the DRAW_VIEW and USE_WIDGET_LAYERS flags when taking the
screenshot.
For performance we heavily cache canvases; for references that will be
repeated we cache the full canvas with image, and we also cache a
single canvas to use for all other screenshots to avoid the overhead
of repeatedly creating a new canvas element.
MozReview-Commit-ID: JOFvtmH7tg
Because this window is a normal Firefox window but doesn't contain any
tabs, the normal Marionette functions for iterating over windows don't
work well. As a sort of hack, identify this window by the id of its
root element, and special case it when finding windows in Marionette.
MozReview-Commit-ID: LxPv13YDXDu
This allows other commands to implicitly change the window handle, by
calling findWindow with appropriate arguments to get a window
properties object and then passing that to setWindowHandle.
MozReview-Commit-ID: 4NpYxjsMM4T
This uses os.path.normcase to fix the current issue on automation.
Ideally we would use os.path.samefile but that's not available in python 2.
os.path.realpath is implemented in python 2, but it doesn't resolve symlinks and junction points
and doesn't normalise case.
This is faster and works better in some cases (e.g. with SVG). However
it doesn't work correctly on Windows yet, so remains disabled there by default.
MozReview-Commit-ID: AXyeFUGfVgx
--HG--
extra : rebase_source : c7d33dc0c92624e05e9e62109606f1ca32bdd288
The internal reftest harness changes some results, but it's not clear
that it's overall better or worse than the old one, so just update the
expectation metadata for now.
MozReview-Commit-ID: KSE2z1Ct72t
--HG--
extra : rebase_source : f1810dd4b9f8dcc115528ceaac4894408d85f935
Reorder imports so that global ones are done before local imports.
MozReview-Commit-ID: 7xA9XQlxlj4
--HG--
extra : rebase_source : b144401c5c6c47e87beab669f76f2b61fb79e5b6
It will help a lot for debugging when the outer window id of the
content window gets logged when the frame script gets registered.
MozReview-Commit-ID: D64A1nPEs6l
--HG--
extra : rebase_source : 0e592e10cb1a0979f4331b92dbfcfc905e737120
The testcase file clicks.html contains a couple of elements which are
not in use, and makes it hard to keep an overview what's actually used.
Lets refactor it to only keep what's really needed.
MozReview-Commit-ID: D9PVWUSmOHr
--HG--
extra : rebase_source : 0ecc3400c7e291f7923db1e93884b1d279a5e6e9
- Set the extensions.legacy.enabled pref for mochitests etc
- Skip a plugin-inside-xpi test for now if legacy extensions
are force-disabled. That test can just be removed once we
get to 57.
MozReview-Commit-ID: As9LtkQTcTS
--HG--
extra : rebase_source : fcc84daef95c453e893cc3b98498fdb87f54b1bb
In bug 1338306, support for optional default values was added to the various
get*Pref APIs on the prefs service. This change exposes that to SpecialPowers
as well.
MozReview-Commit-ID: 6hU73CrQBZQ
--HG--
extra : rebase_source : 316ae4492a61d13ad4717160e97856960679123d
When we get the usre's frequent visting site from UnifiedComplete.js,
and then open a network connection for it before the user hits
the enter key.
MozReview-Commit-ID: 36moBeeUnyZ
--HG--
extra : rebase_source : 4122534b2d21d2a959fd8dbb8533dd3e0ef75621
In safe mode the command line hander arguments are getting parsed
after the safe mode dialog has been closed. As such Marionette is
not getting enabled before, and cannot close the dialog.
To workaround the problem the "command-line-startup" observer
notification can be used, which allows to parse the given
arguments before the dialog.
MozReview-Commit-ID: LWzUKCnM0YK
--HG--
extra : rebase_source : d0113a202c64c1766955d6effd1cdf1af96773c0
In safe mode the command line hander arguments are getting parsed
after the safe mode dialog has been closed. As such Marionette is
not getting enabled before, and cannot close the dialog.
To workaround the problem the "command-line-startup" observer
notification can be used, which allows to parse the given
arguments before the dialog.
MozReview-Commit-ID: LWzUKCnM0YK
--HG--
extra : rebase_source : 5dd538eabbfb76a0d19440eb9fa5ac431bd86f0b
This also starts running the selftests on linux debug builds, since that's the only place that we
can test assertions and leaks.
MozReview-Commit-ID: JTdTLOLWn5r
--HG--
extra : rebase_source : 643f8d15a550fa39f4d3daba75c60560deefc96e
Using /home/worker is the build directory has a 30% talos performance
loss, because test machines has a /home mount directory.
MozReview-Commit-ID: zehcGJrUQX
--HG--
extra : source : feedcde68c2a54da210f03eb287ab5c862fc982b
extra : amend_source : 96a6ad12e8fbb5dd2f7ff97f5ef183b8400475cf
Really the only thing we use it for is generating a counter string
prefix elsewhere in Talos, so let's just create a private function
to do that close to where it's used.
MozReview-Commit-ID: BICrhDAIEHb
--HG--
extra : rebase_source : f3faa1720e69c179b597ca58ee17424182e0cda0
`try-test-paths` is set up to map anything under testing/web-platform
to the web-platform-tests flavour. By default, the web-platform-tests flavour
refers to the testharness test type for wptrunner, so we need to account for
reftest and wdspec test types.
This change causes mozharness to omit the test-type argument to wptrunner when
try-test-paths is being used, therefore making wptrunner determine the
appropriate test type for each requested test.
MozReview-Commit-ID: 7TDAShdDM4g
--HG--
extra : rebase_source : fde6ec219f574cd1e536764c0128a6816834f533
Create an emmpty reference file if one doesn't exist, and open it in
the editor.
MozReview-Commit-ID: 5aBLp2AdnzY
--HG--
extra : rebase_source : bae3df50689895e6ac02cc740acea57be5c24b2e
This confuses people and isn't needed to update the manifest these days.
MozReview-Commit-ID: 4t4zdXLMob5
--HG--
extra : rebase_source : 9c43570073b15d11b3a52c830f9f3fd1f9f063c7
The GetNamedCookie command currently returns a JSON Array of one,
retained cookie, after it has removed the cookies that don't match by
name.
This is in violation of the WebDriver specification, which says it must
return the cookie serialisation directly.
MozReview-Commit-ID: 9yEiarEGBez
--HG--
extra : rebase_source : ad4acfb9510354a86a0b604cacf32cfd5c4f8e5d
The expires property on nsICookie2 does not exist and we are
consequently returning it as undefined, which gets omitted in the JSON
serialisation to the client.
This patch changes it to return the correct property so that the expiry
property is returned as part of the serialised cookie.
MozReview-Commit-ID: IIjf4NWnUoQ
--HG--
extra : rebase_source : 5e2dc27fb550a010dcbe40eee49d9ae31244d749
The url fixture is used to access hosted files on the wptserve instance.
This patch makes it possible to choose between different wptserve HTTPDs
based on the protocol.
The default remains the HTTP protocol.
MozReview-Commit-ID: FvtMMUSlB4M
--HG--
extra : rebase_source : 42a25ebc1a0ca6a3d664ba4949711dd11a6f4007
These tests currently use legacy extensions that won't work in 57,
switch them to webextensions.
MozReview-Commit-ID: 8lZrqjYSrar
--HG--
extra : rebase_source : bf8f6db2daedcddb8c554325498da7cec5159118
extra : source : 75fe2d21cdff9767c9a96682375d261475c284d1
Because we no longer can tag geckodriver releases in mozilla-central,
we need to include build information in the program itself. In the
version information message displayed when passing the --version flag,
we now include the current tip's SHA1 and build date following the
version number.
This patch could be made simpler by dumping this information correctly
formatted into a text file in the output directory, but it was requested
in https://bugzilla.mozilla.org/show_bug.cgi?id=1374977 to also include
the version information in the log output, which means we need to access
it differently and in different places.
MozReview-Commit-ID: CbFQn7IV8ew
--HG--
extra : rebase_source : dcc38ba7b5f209e9878755d5d75b611e22b5253d
A number of places in JS need to drain the current thread's event queue,
which cannot be done with nsIThreadManager::spinEventLoopUntil, since we
need to not wait for an incoming event when attempting to process one.
Loading mozlog from within the executor process makes us prone to
deadlocks since we can't guarantee that the log mutex isn't acquired
when we fork() the parent process, and the python multiprocessing
module doesn't respect posix guidelines about execv()ing a new process
after a fork().
To avoid this specific instance of the probelm we stop pytest loading
the mozlog plugin which we aren't actually using but is loaded by
default when mozlog is available.
MozReview-Commit-ID: IIllNZVOUJz
--HG--
extra : rebase_source : 9281a4d72c82038589937a4f743e1a2447439e95
This should exercise MemoryBlockCache in about 65% of tests, and FileBlockCache
in 35% of tests.
Also media.memory_caches_combined_limit_kb=256KB, to exercise the fallback to
FileBlockCache when MemoryBlockCaches are using too much memory.
MozReview-Commit-ID: A8k3espEg03
--HG--
extra : rebase_source : dd4fcbaa669912fe02098552a8a564d123f76a33
Allow running |mach wpt| on one click loaners in order to run
web-platform-tests tests.
This implementation is just like the one for other testsuites using
thee packaged tests rather than the checkout that we get with wpt, at
least on Linux. That's also where the tests run from so it seems
reasonable for now. Moving to the checkout in the future could remove
some of the logic here by using a fake mozbuild environment so that
the testsuite itself doesn't have to implement anything much.
MozReview-Commit-ID: CaewrdjJ2ef
--HG--
extra : rebase_source : 491b8014d48f06ff5bd41b28cc985608981fbdf4
For a while now it has been making the content process sandbox less strict.
MozReview-Commit-ID: Am6fGzViaLk
--HG--
extra : rebase_source : 0bc037f205896c866559a7ab1f7e2c042c3142db
This import is unnecessary, because the WebIDL interface for
TextEncoder has Exposed=System, so it is available on the JSM
global. I can revert some of the changes from bug 1348103 at the same
time.
I need to remove this import, because it will break with shared JSM
globals.
MozReview-Commit-ID: BKmaH8iTFnI
--HG--
extra : rebase_source : bbb2944245ec2d8040f5138e1c6ee00ea05a52a3
This is faster and works better in some cases (e.g. with SVG). However
it doesn't work correctly on Windows yet, so remains disabled there by default.
MozReview-Commit-ID: AXyeFUGfVgx
The internal reftest harness changes some results, but it's not clear
that it's overall better or worse than the old one, so just update the
expectation metadata for now.
MozReview-Commit-ID: KSE2z1Ct72t
This adds a metadata object associated with each test queue, and uses
it to pass cache information into the marionette internal reftest
implementation so that we are able to cache only those canvases that
will be reused.
MozReview-Commit-ID: zASrlvnri3
Initially wptrunner had a single test queue that was shared between
all processes. Then for --run-by-dir it changed to a queue of
queues. This change makes it a queue of deques, which is simpler,
since the test queues themselves are no longer shared between
processes. It also changes the implementation when we aren't using
--run-by-dir but are using multiple processes to pre-group the tests
into N queues rather than sharing a single queue between all
processes. This is necessary to use the deque of course, but
importantly anticipates a change in which we will pre-compute per
queue metdata for each queue; that doesn't work well with one shared
queue. The downside of this change is that there is no work stealing,
so it may be less efficient if we randomly assign many slow jobs to
one particular process.
MozReview-Commit-ID: 7e0Odk7yDwr
Add an InternalReftestImplmentation that runs reftests using the
built-in Marionette reftest primitives rather than screenshots. This
is actiivated using the --internal-reftest switch, although that may
become the default in the future.
MozReview-Commit-ID: 6HxGuBsTITf
This adds commands to start a reftest session, run a test, and end the
session. It as assumed that after you start a reftest session you will
just run reftests until you end the session. When starting a session
the user provides a string indicating when screenshots should be
taken, and an object mapping urls to a count of the number of times
that url is expected to be used in the session, to help with
caching. Running the tests takes a url to a test, an expected status,
a timeout, and a nested list of possible references, in which each
entry at a specific level is combined by OR and nested references are
combined by AND.
The implementation is heavilly inspired by the existing reftest
harness, starting a minimal window with no tabs, and loading the urls
directly in there. In order to get a screenshot in the e10s case we
have to pass the DRAW_VIEW and USE_WIDGET_LAYERS flags when taking the
screenshot.
For performance we heavily cache canvases; for references that will be
repeated we cache the full canvas with image, and we also cache a
single canvas to use for all other screenshots to avoid the overhead
of repeatedly creating a new canvas element.
MozReview-Commit-ID: JOFvtmH7tg
Because this window is a normal Firefox window but doesn't contain any
tabs, the normal Marionette functions for iterating over windows don't
work well. As a sort of hack, identify this window by the id of its
root element, and special case it when finding windows in Marionette.
MozReview-Commit-ID: LxPv13YDXDu
This allows other commands to implicitly change the window handle, by
calling findWindow with appropriate arguments to get a window
properties object and then passing that to setWindowHandle.
MozReview-Commit-ID: 4NpYxjsMM4T
SpecialPowers.loadChromeScript() sends a script to the child process,
then creates a sandbox, and runs the script in that sandbox. There are
various sandboxOptions that can be passed when creating a sandbox, and
it would be nice to have that functionality for loadChromeScript.
I just need this for wantGlobalProperties, but I might as well make it
as general as possible. I'm not sure all of the types it can take can
actually be serialized across processes, but I guess that's okay.
MozReview-Commit-ID: GoJjXdjizFk
--HG--
extra : rebase_source : 9c2bc190dbf5a080978953cffd64205e8b816367
This patch adds grcov to linux64-ccov. Grcov is then used after code coverage collection to process the .gcno and .gcda files into a .info (LCOV-style) file. It also uses the 'linked-files-map.json' to rewrite symbolic links to the path that they point to. The .info file that is produced is called 'grcov_lcov_output_stdout' and is stored in the zip file 'code-coverage-grcov.zip'.
MozReview-Commit-ID: 5WhD289N6Fs
--HG--
extra : rebase_source : 9ed60bd96f5e9a479771357e38b0b3b16abd351e
This adds a metadata object associated with each test queue, and uses
it to pass cache information into the marionette internal reftest
implementation so that we are able to cache only those canvases that
will be reused.
MozReview-Commit-ID: zASrlvnri3
--HG--
extra : rebase_source : feb714ec04c44f6b6d2709ae1acbb621f8b0771d
Initially wptrunner had a single test queue that was shared between
all processes. Then for --run-by-dir it changed to a queue of
queues. This change makes it a queue of deques, which is simpler,
since the test queues themselves are no longer shared between
processes. It also changes the implementation when we aren't using
--run-by-dir but are using multiple processes to pre-group the tests
into N queues rather than sharing a single queue between all
processes. This is necessary to use the deque of course, but
importantly anticipates a change in which we will pre-compute per
queue metdata for each queue; that doesn't work well with one shared
queue. The downside of this change is that there is no work stealing,
so it may be less efficient if we randomly assign many slow jobs to
one particular process.
MozReview-Commit-ID: 7e0Odk7yDwr
--HG--
extra : rebase_source : 8dbe7321a41d79f9bca1efa90494b514d16f07db
Add an InternalReftestImplmentation that runs reftests using the
built-in Marionette reftest primitives rather than screenshots. This
is actiivated using the --internal-reftest switch, although that may
become the default in the future.
MozReview-Commit-ID: 6HxGuBsTITf
--HG--
extra : rebase_source : 7b5416cfc1a26c54432346de3822a2685b41f9c9
This adds commands to start a reftest session, run a test, and end the
session. It as assumed that after you start a reftest session you will
just run reftests until you end the session. When starting a session
the user provides a string indicating when screenshots should be
taken, and an object mapping urls to a count of the number of times
that url is expected to be used in the session, to help with
caching. Running the tests takes a url to a test, an expected status,
a timeout, and a nested list of possible references, in which each
entry at a specific level is combined by OR and nested references are
combined by AND.
The implementation is heavilly inspired by the existing reftest
harness, starting a minimal window with no tabs, and loading the urls
directly in there. In order to get a screenshot in the e10s case we
have to pass the DRAW_VIEW and USE_WIDGET_LAYERS flags when taking the
screenshot.
For performance we heavily cache canvases; for references that will be
repeated we cache the full canvas with image, and we also cache a
single canvas to use for all other screenshots to avoid the overhead
of repeatedly creating a new canvas element.
MozReview-Commit-ID: JOFvtmH7tg
--HG--
extra : rebase_source : ab5a2ef2e450b9bbdc6bc3c9487ed5dfda2c1d4b
Because this window is a normal Firefox window but doesn't contain any
tabs, the normal Marionette functions for iterating over windows don't
work well. As a sort of hack, identify this window by the id of its
root element, and special case it when finding windows in Marionette.
MozReview-Commit-ID: LxPv13YDXDu
--HG--
extra : rebase_source : 8c0aa7a4aeff69e1d7c86ba7cbb6c421abd0c31d