This is meant to avoid random issues with Gecko suddenly kicking off the
periodic updates in the middle of our test runs. This uses a hidden pref
intentionally since nobody should be able to discover this pref by going
to about:config.
Backed out changeset bbb1b526cb56 (bug 1137252)
Backed out changeset 0c3d670f0c14 (bug 1137252)
Backed out changeset 1e0fa4ab7c6f (bug 1137252)
CLOSED TREE
The test in question sets up an inconsistent state for desktop platforms because
it intends to simulate what the APZ does, but does it only partially. The APZ
code would set a CSS viewport (which the test does) but it doesn't set the
scroll-position-clamping-scroll-port-size which the APZ would always do.
Back when mozpack.path was added, it was used as:
import mozpack.path
mozpack.path.func()
Nowadays, the common idiom is:
import mozpack.path as mozpath
mozpath.func()
because it's shorter.
$ git grep mozpath\\. | wc -l
423
$ git grep mozpack.path\\. | wc -l
123
This change was done with:
$ git grep -l mozpack.path\\. | xargs sed -i 's/mozpack\.path\./mozpath./g'
$ git grep -l 'import mozpack.path$' | xargs sed -i 's/import mozpack.path$/\0 as mozpath/'
$ (pat='import mozpack.path as mozpath'; git grep -l "$pat" | xargs sed -i "1,/$pat/b;/$pat/d")
This adds support for class="reftest-opaque-layer" and for
reftest-assigned-layer="some-layer-name" to the reftest harness.
From reftest/README.txt:
Opaque Layer Tests: class="reftest-opaque-layer"
================================================
If an element should be assigned to a PaintedLayer that's opaque, set the class
"reftest-opaque-layer" on it. This checks whether the layer is opaque during
the last paint of the test, and it works whether your test is an invalidation
test or not. In order to pass the test, the element has to have a primary
frame, and that frame's display items must all be assigned to a single painted
layer and no other layers, so it can't be used on elements that create stacking
contexts (active or inactive).
Layerization Tests: reftest-assigned-layer="layer-name"
=======================================================
If two elements should be assigned to the same PaintedLayer, choose any string
value as the layer name and set the attribute reftest-assigned-layer="yourname"
on both elements. Reftest will check whether all elements with the same
reftest-assigned-layer value share the same layer. It will also test whether
elements with different reftest-assigned-layer values are assigned to different
layers.
The same restrictions as with class="reftest-opaque-layer" apply: All elements
must have a primary frame, and that frame's display items must all be assigned
to the same PaintedLayer and no other layers. If these requirements are not
met, the test will fail.
This attribute used to force APZ to be used on content processes even if the
overall APZ pref was false. However, this has a couple of problems, which cancel
each other out:
- If the pref is false, the APZ machinery is never created, and so it's
impossible to have content processes "using" APZ.
- The reftest harness checks for the pref and ignores mozasyncpanzoom when
evaluating the "asyncPanZoom" condition in reftest manifests.
Therefore, any reftests which were skip-if(!asyncPanZoom) would never run unless
the pref was set, and in those cases the mozasyncpanzoom attribute would not be
needed at all, as APZ is already enabled with the pref.
However, the mozasyncpanzoom attribute would cause some parts of the child
process code to behave as though APZ was enabled, which is incorrect. Removing
this attribute and relying solely on the pref corrects that.
Using undefined has the advantage that we can use < and > tests with the
OSX variable. (We currently have no such tests in the tree, perhaps
partly because they didn't work with non-OSX being 0.)
In some cases the area reported by MozAfterPaint can be extremely large. Since
that area determines what we pass to drawWindow, we could end up trying to
drawWindow an area that is too large for drawWindow to handle. Instead, this
patch clamps that area to the canvas size so that we don't unnecessarily try to
paint (and fail at painting) the whole invalid area.