This one looks to be pretty straight-forward. It irritates me that
the jar.mn entry doesn't explicitly say that the result is coming from
the object directory, like
locale/browser/bookmarks.html (!bookmarks.html)
but that's for another day.
MozReview-Commit-ID: Cw8E0VJhSxv
--HG--
extra : rebase_source : a1045a5b564b0094b562729bc7234e69ec7a786d
We should avoiding creating a DrawTarget to create a new
DataSourceSurface when the original surface produced by
RasterImage::GetFrameAtSize matches our requirements in
imgTools::EncodeScaledImage. We should also be using Skia instead of
Cairo.
This patch also fixes a few error conditions where we would not have
unmapped the surface properly.
The current name is "type". Henceforth it shall be known as "value", per CG
decision of 15 May 2018.
--HG--
extra : rebase_source : 3a0dabf9acb1d95abe35dd66da0172cae8014b08
In the future we want to update metadata using the wptreport.json data, since
that's much much smaller and easier to parse. In addition, this is
required to determine if a test fully passed, so it makes sense to
store it here.
MozReview-Commit-ID: ErYT33BhqGg
Profiling shows that switching to this library means we no longer
spend most of the update time parsing json (vs 80% or so before),
making other optimisations worthwhile. This is never used in
automation (except wptsync) so availability of the library in the
internal pypi isn't a problem.
MozReview-Commit-ID: U5gabb5lz8
With support for asserts, it's also necessary to be able to update the
expected number of asserts automatically using
wpt-update. Unfortunately asserts don't work quite like test statuses,
so this involves a reasonable amount of refactoring.
For asserts the desired behaviour is that the max asserts is either
one plus the highest recorded number of asserts, or the current
value, whichever is higher, and for the minimm asserts, it's the
minumum of the current value and one lower than the lowest recorded
value (clamped at zero). Instead of creating per-platform
expectations, the code only updates the defaults (or any existing
conditional that happens to match). It's not clear that we have enough
information to meaningfully make per-platform expectations, and we
want to reduce the risk of intermittents.
MozReview-Commit-ID: HuTpbAZYGzo
wptrunner previously iterated over properties from least significant
to most significant. However this was broken since it caused
per-directory properties to override per-test properties, which wasn't
expected. Therefore we reverse the order of iteration from most
significant to least.
MozReview-Commit-ID: 5Rh6EGNtnUS
Gecko has an API for producing a non-fatal "assert". For quality
control, it should be possible to annotate the range of possible
numbers of these asserts produced during a test execution, and fail if
the actual number of asserts falls outside this range.
This patch adds assert checking by default in debug builds. It adds
two metadata properties; max-asserts and min-asserts for specifying
the range of possible asserts produced in a test.
MozReview-Commit-ID: BFiIfYKuB9L
Running marionette on a background thread is problematic in the case
that a test times out. In this case the background thread is not
terminated. If we then call into marionette again on the main thread
we may race with something that happens on the runner thread. The
marionette client isn't threadsafe, so this leads to buggy behaviour.
The simplest fx for the problem is just to move all the marionette
calls onto the main thread and instead of waiting on the main thread,
spin up a thread with a timer.
MozReview-Commit-ID: 3vVlMcwPHSx
nsGIFDecoder2::YieldPixel is sufficiently complex that the optimizer
does not appear to inline it with the rest of the templated methods. As
such there is a high cost to calling it. This patch modifies it to yield
a requested number of pixels before exiting, allowing us to amortize the
cost of calling across a row instead of a pixel. Based on profiling,
this will significantly reduce the time require to decode a frame.
It has been observed in profiling that the templated methods that write
pixels to an image buffer do not always inline methods properly, leading
to a high cost of writing a single pixel if it is less than trivial. As
such, there is a new SurfacePipe method, WritePixelBlocks, which
requests pixels in blocks. The provided lambda will write up to the
requested number of pixels into the given buffer. WritePixelBlocks
itself will request enough pixels to fill the row, advance the row if
complete and iterate until it is complete or we need more data.
Created new class 'nsContentUtilsReporter' which reports 'content-utils-string-bundles' allocations that are not a part of the reported StringBundleService bundles
--HG--
extra : rebase_source : f683ce214d634c9c6f169fafe5b5de12d3f3508a
Previously, with early first paint enabled, nsXULWindow incorrectly loaded the
persisted window settings from about:blank and would only load them once.
Instead, load the settings before starting layout.
MozReview-Commit-ID: 6K4ofkbmHHb
--HG--
extra : rebase_source : 7bcd804cfabbd47ee5a747800a2ef81852213889
This patch changes GeckoView persistence code so that it will always get compiled
and linked to the final executable, even outside of Android. By doing so, we are
able to easily add gtest coverage for this code on all platforms other than Android
on which gtest is not yet supported.
In addition to that, this patch adds proper test cases for measurements' serialization
and deserialization for both scalars and histograms.
MozReview-Commit-ID: J0Snhl3Y8jk
--HG--
extra : rebase_source : efb6476177c1b4de22986545554bfaf357646657
This adds all the samples from the provided sample set to the CountHistogram's
storage, instead of just adding 1 sample of value 1. This change does not affect
code outside of GeckoView persistence since |AddSampleSet| is not used in other
places.
MozReview-Commit-ID: 9bE0M9dgrtE
--HG--
extra : rebase_source : c2147d084415518b02148daa83107045f2993c0f