This allows enabling properties in ua sheets and chrome differently.
The setup is:
* enabled_in needs to be one of the four values:
["", "ua", "chrome", "content"]
* "chrome" implies "ua", and implies that they're explicitly enabled.
* "" implies the property will never be parsed.
* "content" implies the property is accessible unconditionally, modulo a pref.
Experimental still keeps trumping over those when the pref is enabled.
This PR replaces uses of internal="" by enabled_in="ua" or enabled_in="".
This may seem that it changes behavior, but since the properties where I added
enabled_in="" already unconditionally error from parse it's not.
Next step is annotating chrome-only properties.
Source-Repo: https://github.com/servo/servo
Source-Revision: a757fb14cf6938000824fc6cb756acd0176adb9a
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : a146c96ffab697436ab4def69afd92f2b4a7361f
This adds the code that APZ needs to use the WR hit-testing API. For now
(if the pref is enabled) it just does the hit-test and compares the
result to the regular hit-test, printing out discrepancies. It also
doesn't yet get the scrollbar result.
MozReview-Commit-ID: 3pjYSWDGeDr
--HG--
extra : rebase_source : 9766fe3e77dd85f130ce155041cec7c0daae67ec
It seems like a footgun to expose raw pointers to WebRenderAPI which is
a refcounted object. Let's only expose it via refcounting pointers.
MozReview-Commit-ID: AKmTZg2V99r
--HG--
extra : rebase_source : 805f13d56a64bafbcdf3bf4266eec47c70856564
These days (at least with webrender enabled), the layers id is created
by mashing together two uint32 values into the uint64. Printing it as in
base 10 produces some large number near the 32-bit boundary, and it's
much more legible/easier to compare when printed in hex.
MozReview-Commit-ID: JsGhqyLtDBv
--HG--
extra : rebase_source : ed60d26d8223d968f37e8d933e60b1ee6552d1e9
This commit removes the `layers.omtp.force-sync` preference and replaces
it with a preprocessor define that is commented out. This commit also
changes the behavior of force-sync so that it also does synchronization
with CompositorBridgeChild like normal OMTP. This simplifies the code
and makes using a preprocessor define easier.
MozReview-Commit-ID: 6RfuFTFBdMh
--HG--
extra : rebase_source : 0778a3087324b9e87f44587efbb49c71edf47f23
Previously this was safe, as the synthesized mouse event would be processed in
the child process, updating the focus state, in order - before the content
process would try to check its focus state. Now, thanks to multiple event queues
work, this isn't guaranteed.
This patch just adds retrying to the logic, so we retry up to 10 times, 100ms
apart. This should ensure that we don't incorrectly detect a test failure
intermittently.
MozReview-Commit-ID: J4uzl9jeafC
This is important because it ensures we release the shared memory handle
(although not the data itself) for the underlying surface buffer when it
turns out we will probably never need to share it. If we do need to
share the surface data with the GPU process, it will reallocate a handle
if necessary, and close it when it is finished. On some platforms we
only have a finite number of handles, so if we don't need them, we
should close them.
This is largely trivial because the meat of the implementation is
located in ImageResource and we already added GetFrameInternal.
Interestingly VectorImage::IsUnlocked does not actually check if the
image is locked, but instead only checks for animation consumers. This
is consistent with its historical behavior on when to issue an unlocked
draw event.
Note that we do not implement the original GetImageContainer and
IsImageContainerAvailable APIs. This is because the former does not
accept an SVG context and it would be best to discourage its use in old
code lest we get incorrect/unexpected results.
No functional change aside from the implementation from
VectorImage::GetFrameAtSize being repurposed for GetFrameInternal and
returning an additional error code with the surface.
Creating a DrawTarget can be an expensive operation. This is especially
true in this case because checking for a cached already decoded version
of the VectorImage is expected to be fast. Currently VectorImage::Draw
is the typical path to render these images, but in the future, getting
the frames directly or indirectly (through an ImageContainer) will
become more common.