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
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
We no longer stored invalid property values and dropped spacing mode, so
remove their metadata.
MozReview-Commit-ID: EHGG2ZY8HMG
--HG--
extra : rebase_source : cf3a683d9204d514bfb0e290b644eabd9d74ebb9
In order to avoid the leak checker complaining about missing output,
we restart the browser before running tests that are expected to
crash. But as part of that restart we end up checking again if a
restart is required and so end up in an infinite loop. To break out of
that loop we simply check if this is the same test as during the last
iteration, and don't ask to restart in that case.
MozReview-Commit-ID: 90gsmqVCRsD
--HG--
extra : rebase_source : 9cf625e9cd1861b25b72e5c39ce070981b84046e
According to the spec, when we cancel an animation we should "reset an
animation's pending tasks"[1] which has following step:
...
4. Reject animation’s current ready promise with a DOMException named "AbortError".
5. Let animation’s current ready promise be the result of creating a new resolved Promise object.
Since we create the ready promise and, if need resolve it when we create it
(see Animation::GetReady), this patch simply clear the ready promise
when an animation is canceled.
[1] https://w3c.github.io/web-animations/#reset-an-animations-pending-tasks
MozReview-Commit-ID: JxoqeA5dXCO
--HG--
extra : rebase_source : 1c51724f236b3ed464eb6af3c20ccc9aaf5aa3e6
The test times out on master and dev edition but not on normal beta. Since
this is difficult to handle in ini files just disable the entire test until there's
a proepr fix for the underlying issue.
MozReview-Commit-ID: B3d7MElHy86
--HG--
extra : rebase_source : eaff065fb42f046173281c713c55ec6a977da812
This ensures that developers can run the majority of tests with the
default config, but makes things a little more confusing for marionette
developers.
MozReview-Commit-ID: 9wd761ZgCyx
--HG--
extra : rebase_source : d601fa10d1896afd3c450b2d44a2024b9963096f
This is required for cases where files have not changed but the
manifest logic has changed.
MozReview-Commit-ID: E46HtouILS2
--HG--
extra : rebase_source : f9d350018752f866052cf6a7a1ffd8f1d5f4ee39
Servo reads the hosts from a file created at runtime, so this
configuration isn't required.
MozReview-Commit-ID: 20NoZyp3bJz
--HG--
extra : rebase_source : 955d15e9e43e1975fde856e5133fa2ff5786fec7
For Chrome and Edge we don't have any way to set the DNS configuration
to include web-platform.test, so we need to error if this isn't already set.
MozReview-Commit-ID: BHRsTiuV28x
--HG--
extra : rebase_source : cfd3c35a513f98b47a7ffc9328058e6d104d2b2e
This makes integration with other frontends a little easier.
MozReview-Commit-ID: 3gGeJqMPiZf
--HG--
extra : rebase_source : a9aa2a8d63cca80d3897149c2a0f7d3351031951
Testing :: geckodriver is a new Bugzilla component and it should be used
for the WPT wdspec tests located in testing/web-platform/tests/webdriver
because any test failures are likely to be implementation problems in
the testing/geckodriver program.
MozReview-Commit-ID: 75wG57PEsKl
--HG--
extra : rebase_source : 7d5c3bcb00cc00279ec30b5f4c90e2dd44540c3b
We regressed running entire directories when wptrunner was switched to
look up command parameters directly in the manifest rather than
iterating over prefix matches. For files that's OK, but for
directories the old behaviour is required.
MozReview-Commit-ID: HVL7rL1YuZx
--HG--
extra : rebase_source : d80150556ba5f07fb8c7ebbd7faab52ee63e2708
When synthesizing a MouseEvent for the performActions command,
set shiftKey, ctrlKey, etc., based on inputStateMap.
MozReview-Commit-ID: Knw3gxuAcSB
--HG--
extra : source : afcfa17be8acdd3d1b88b2bf8d6deffb53c52af1
When synthesizing a MouseEvent for the performActions command,
set shiftKey, ctrlKey, etc., based on inputStateMap.
MozReview-Commit-ID: Knw3gxuAcSB
--HG--
extra : rebase_source : 499f6987fbc237662c925c7fedc83611e4de148b
This bug fixes this statement in the spec (https://html.spec.whatwg.org/#dom-option):
If selected is true, then set option's selectedness to true; otherwise set its
selectedness to false (even if defaultSelected is true).
And also reset the dirtiness.
This patch also reverts the changes in Bug 927796 and 942648, which was added
because IsSelected() returned inaccurately (called from SelectSomething()).
Verified that the tests added in Bug 927796 and 942648 do pass.
MozReview-Commit-ID: 8PVgvCIHPj4
Using the wptrun infrastructure from upstream, it is now posible to
make it easy to run web-platform-tests in other browsers. The syntax
used is
mach wpt --product [chrome|servo|edge] [tests]
This will try to use the selected product; possibly prompting to
install dependencies like the WebDriver implementation. For servo if
the install isn't on the PATH then --binary can be used to point to
the actual location.
Because manifest metadata is kept in the same directory as expectation
data and we don't want to reuse Firefox expectation data for other
browsers, a new products subdirectory is introduced and added to the
ignore files. This will contain a subdirectory for each product into
which a copy of the test manifest is placed. It may also be used to
store any expectation data for the other products, in the same way as
testing/web-platform/meta.
MozReview-Commit-ID: 8fdCnha5t2F