So that it's easily available during painting.
The flag is set based on nsIPresShell::mIsFirstPaint, but the pres shell
flag is cleared at the beginning of the paint, so we can't query it from
the pres shell during the paint.
Differential Revision: https://phabricator.services.mozilla.com/D16237
--HG--
extra : moz-landing-system : lando
Chrome synthesizes mousemove event and related events (mouseover, mouseenter,
etc) when context menu event is fired by long tap. This allows users to open
submenu which is opened by moving mouse cursor over a link.
So, this fix improves accessibility of our users on some websites which are
designed for desktop.
Differential Revision: https://phabricator.services.mozilla.com/D14857
--HG--
extra : moz-landing-system : lando
In order to make the history easier to navigate, this changeset includes the
modifications required to make <xul:browser> actually work as a Custom Element,
and switches the app to use it instead of the XBL browser.
Differential Revision: https://phabricator.services.mozilla.com/D14911
--HG--
extra : moz-landing-system : lando
gfxUtils::EncodeSourceSurface no longer uses a stringly-typed API to create a
`imgIEncoder` for the relevant MIME type. Instead, we now use an enum class and
switch on it to create the encoder.
Depends on D14816
Differential Revision: https://phabricator.services.mozilla.com/D14817
--HG--
extra : moz-landing-system : lando
When selected text in `geckoview_example`, the text selection toolbar was always positioned in the top left corner of the screen, regardless of where in the page the text was selected.
The cause of the bug was that UpdateRootFrameMetrics was being called only if the app utilised the `AndroidDynamicToolbar`. This caused the `mViewportZoom` value inside `GeckoSession` to always be 0. When using the `clientToFrameMatrix` function to place the text selection toolbar on screen, the generated matrix was incorrect as the zoom value was 0, causing the resulting frame to be offset by the zoom value.
By ensuring that `UpdateRootFrameMetrics` is called inside `AsyncCompositionManager`even when there is no `AndroidDynamicToolbarAnimator` this zoom value is correctly set and the resulting frame for the text selection toolbar is correctly placed.
Differential Revision: https://phabricator.services.mozilla.com/D15941
--HG--
extra : moz-landing-system : lando
Port to separate SpatialId from ClipId in Webrender API (WR PR #3251).
Patch was originally written and reviewed on bug 1503447.
Depends on D16005
Differential Revision: https://phabricator.services.mozilla.com/D16006
--HG--
extra : moz-landing-system : lando
Per our discussion, this patch splits out the state management bits of
WebRenderLayerManager, allowing for them to be maintained per-document.
Differential Revision: https://phabricator.services.mozilla.com/D13577
--HG--
extra : moz-landing-system : lando
Discard animations after calling WrBridge()->EndTransaction(). It updates mWrEpoch in WebRenderBridgeParent. The updated mWrEpoch is necessary for deleting animations at the correct time.
Differential Revision: https://phabricator.services.mozilla.com/D15799
This will let us get the MissedCompositeLow/Mid/Long variants in the CFT_REASON telemetry output.
Differential Revision: https://phabricator.services.mozilla.com/D15797
--HG--
extra : moz-landing-system : lando
We're switching to prefering the vsync version, so making these diagnostic equivalents use that timing should be more useful.
I think leaving the profiler marker (which uses ms, not vsync%) showing just the graphics component still makes sense.
Differential Revision: https://phabricator.services.mozilla.com/D15796
--HG--
extra : moz-landing-system : lando
This also results in us getting the CONTENT_FRAME_TIME profiler markers added for non-WR.
Differential Revision: https://phabricator.services.mozilla.com/D15795
--HG--
extra : moz-landing-system : lando
This shouldn't change any behaviour, just puts the code into a separate function so that it's easier to follow.
Differential Revision: https://phabricator.services.mozilla.com/D15794
--HG--
extra : moz-landing-system : lando
CONTENT_FRAME_TIME_VSYNC is more meaningful metric because it actually
starts at the beginning of the vsync making it easier to reason about
missing frames. It makes more sense for CONTENT_FRAME_TIME_REASON wants
to use this same starting point.
Differential Revision: https://phabricator.services.mozilla.com/D15790
--HG--
extra : moz-landing-system : lando
In test code (which is where this codepath is mostly exercised), the
controller should never be null here. However this codepath is sadly
also used in production code on Android, and there we might experience a
page navigation or a similarly destructive action while the flush is
inflight. That can result in a null pointer dereference.
Differential Revision: https://phabricator.services.mozilla.com/D15597
--HG--
extra : moz-landing-system : lando
Since we no longer throttle paints, this function just sends a notification,
which does not rely on any tree manager state.
Depends on D15592
Differential Revision: https://phabricator.services.mozilla.com/D15593
--HG--
extra : moz-landing-system : lando
The function does not depend on any state in the tree manager, since
the controller is looked up via sIndirectLayerTrees.
Differential Revision: https://phabricator.services.mozilla.com/D15592
--HG--
extra : moz-landing-system : lando
There is no reason to use nsAtoms*, it's error prone, i.e. the function
can take arbitrary nsAtoms*.
Depends on D15339
Differential Revision: https://phabricator.services.mozilla.com/D15340
--HG--
extra : moz-landing-system : lando
Summary: Really sorry for the size of the patch. It's mostly automatic
s/nsIDocument/Document/ but I had to fix up in a bunch of places manually to
add the right namespacing and such.
Overall it's not a very interesting patch I think.
nsDocument.cpp turns into Document.cpp, nsIDocument.h into Document.h and
nsIDocumentInlines.h into DocumentInlines.h.
I also changed a bunch of nsCOMPtr usage to RefPtr, but not all of it.
While fixing up some of the bits I also removed some unneeded OwnerDoc() null
checks and such, but I didn't do anything riskier than that.