Commit Graph

15317 Commits

Author SHA1 Message Date
Brindusan Cristian
2003fe5d27 Backed out 4 changesets (bug 1675547) for bc failures in browser_test_group_fission.js. CLOSED TREE
Backed out changeset 8b1f86c1efa8 (bug 1675547)
Backed out changeset 5064e7de4dcb (bug 1675547)
Backed out changeset 2e05f59e722e (bug 1675547)
Backed out changeset 1408a1f0e735 (bug 1675547)
2021-02-05 13:14:58 +02:00
Timothy Nikkel
e75021bda0 Bug 1675547. Fix eslint complaints.
Depends on D104176

Differential Revision: https://phabricator.services.mozilla.com/D104179
2021-02-05 10:41:43 +00:00
Timothy Nikkel
0deb1e2028 Bug 1675547. Adjust tests that we are touching to look at the activate all scroll frames pref and modify expectations accordingly.
Depends on D99985

Differential Revision: https://phabricator.services.mozilla.com/D104176
2021-02-05 10:19:36 +00:00
Kartikaya Gupta
0ea2998b72 Bug 1675547 - Update existing mochitests to handle WR layerizing. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D99985
2021-02-05 10:17:57 +00:00
Kartikaya Gupta
f94f34ddc3 Bug 1675547 - Add test. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D99984
2021-02-05 10:20:19 +00:00
Noemi Erli
1ea87269a8 Backed out 4 changesets (bug 1534549) for causing mochitest failures in test_group_wheelevents.html CLOSED TREE
Backed out changeset a03c745620d6 (bug 1534549)
Backed out changeset 2ac9c5dbe9f5 (bug 1534549)
Backed out changeset dabd0c5d21cf (bug 1534549)
Backed out changeset f1b390459263 (bug 1534549)
2021-02-05 02:41:19 +02:00
Miko Mynttinen
83f9800345 Bug 1534549 - Part 4: Shrink nsDisplayCompositorHitTestInfo r=mstange
These changes make nsDisplayCompositorHitTestInfo inherit directly from nsDisplayItem, which should shrink it slightly. This also simplifies the logic: hit testing information is now available at nsDisplayItem level as opposed to nsPaintedDisplayItem.

Differential Revision: https://phabricator.services.mozilla.com/D103773
2021-02-04 22:20:13 +00:00
Miko Mynttinen
4d5492f17c Bug 1534549 - Part 3: Add tests r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D103045
2021-02-04 22:20:05 +00:00
Miko Mynttinen
63a9dd596a Bug 1534549 - Part 2: Allow all display items to carry hit testing information r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D102515
2021-02-04 22:19:56 +00:00
Andrew Osmond
b4617507c5 Bug 1690857 - Add diagnostic assert to ensure we aren't using stale blob keys in the compositor process. r=jrmuizel
Similar to bug 1690821 in the content process, this adds an assert in
the other side in case of a race condition.

Differential Revision: https://phabricator.services.mozilla.com/D104086
2021-02-04 19:05:50 +00:00
Csoregi Natalia
4e864d755a Backed out 2 changesets (bug 1650183) for causing iframe displayport failures. CLOSED TREE
Backed out changeset 1955e50f311e (bug 1650183)
Backed out changeset 5982003ab9f2 (bug 1650183)
2021-02-04 21:10:58 +02:00
Botond Ballo
f9ff60143c Bug 1650183 - Add a test to check that an OOP iframe with a large viewport does not have too large of a displayport. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D103538
2021-02-04 18:33:35 +00:00
Andrew Osmond
88ec5c2cd4 Bug 1690821 - Add diagnostic assert to ensure we aren't using stale blob keys. r=jrmuizel
This patch adds a diagnostic assert to check if the namespace of the
blob image key matches the current namespace of the process's
WebRenderBridgeChild. Other long lived users of image keys (i.e. shared
surfaces produced by imagelib) have to check to ensure their cached
image keys haven't gone out of scope due to a namespace update (e.g. tab
moved to a new window, GPU process crash). The caching for blob images
however is very different and should be cleared in these cases. This
assert will confirm this.

Differential Revision: https://phabricator.services.mozilla.com/D104066
2021-02-04 18:10:32 +00:00
Sebastian Hengst
425e4c083a Backed out changeset e2de18f2d894 (bug 1690821) for possibly causing reftest crashes in table-cell-breaking-1a.html. CLOSED TREE 2021-02-04 19:04:44 +01:00
Andrew Osmond
82be662a0d Bug 1690821 - Add diagnostic assert to ensure we aren't using stale blob keys. r=jrmuizel
This patch adds a diagnostic assert to check if the namespace of the
blob image key matches the current namespace of the process's
WebRenderBridgeChild. Other long lived users of image keys (i.e. shared
surfaces produced by imagelib) have to check to ensure their cached
image keys haven't gone out of scope due to a namespace update (e.g. tab
moved to a new window, GPU process crash). The caching for blob images
however is very different and should be cleared in these cases. This
assert will confirm this.

Differential Revision: https://phabricator.services.mozilla.com/D104066
2021-02-04 16:05:47 +00:00
Jonathan Kew
dbaf0d8121 Bug 1690771 - Use Skia backend rather than Cairo in RecvMakeSnapshot r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D104046
2021-02-04 13:50:15 +00:00
Timothy Nikkel
39d4570796 Bug 1690433. If in PrepareForSetTargetAPZCNotification we go from a minimal display port to a regular display port return the painted status of the existing (minimal) display port instead of always telling the caller to wait for a refresh. r=botond
In the case that we have a painted minimal display port apzc knows about the scroll frame already, it just has the minimal amount of painted content. So we can tell apz right away. Note that the async transform for minimal dp's are still the identity so we'll still jank minimap dp's before the painted regular dp reaches the apzc.

Differential Revision: https://phabricator.services.mozilla.com/D103858
2021-02-04 11:17:09 +00:00
Timothy Nikkel
d2930b87f0 Bug 1690433. Prefer to jank minimal display ports until we can set a proper display port over checkerboarding them. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D103857
2021-02-04 11:17:06 +00:00
Timothy Nikkel
1be3156679 Bug 1690433. Update code that looks for the presence of a display port for new minimal display ports. r=botond
This patch is the result of auditing all places that look at the presence or absence of a display port to handle minimal display ports (HasDisplayPort, GetDisplayPort, etc).

Broadly speaking the places were in two categories:
1) things related to painting, that want to consider minimal display ports as display ports for purposes of things like sending over metadata and separating out layers.
2) things that care about async scrolling, and so actually want to have a properly sized display port.

Type 1) were not changed by this patch. Type 2) were changed to consider minimal display ports as not display ports.

Again, we are aiming to leave behaviour unchanged.

Differential Revision: https://phabricator.services.mozilla.com/D103856
2021-02-04 11:16:59 +00:00
Timothy Nikkel
e2f27ec58a Bug 1690433. Create a minimal display port type. r=botond
We introduce a new type of display port, a minimal display port. It is controlled via a property on the content element. When the property is present any other display port specified on the element is ignored and instead the display port rect is computed by assuming 0 display port margins and no alignment (this reuses the existing code for display port suppression).

We then add code to set a minimal display port on every scroll frame that is painted that has WantAsyncScroll() when certain prefs are set (the prefs are disabled as of this patch though).

We then need to manage removing the minimal display port property when, before this patch, we would have created a regular display port. As well we need to add the minimal display port property when, before this patch, we would have removed a regular display port.

In order to do this I audited all sites where we set the display port rect and display port margins property. The changes to the code for handling the removal display ports happens in a later patch.

My audit found that all of the places we set a display port want to clear the minimal display port property except:
-UpdateSub/RootFrame in APZCCallbackHelper
-UpdateDisplayPortMarginsForPendingMetrics in DisplayPortUtils

UpdateDisplayPortMarginsForPendingMetrics is basically a fast path of the UpdateSub/RootFrame code. These are the places where we handle calls to RequestContentRepaint from apz. By adding an assert and running it through try server I found that UpdateSub/RootFrame can create a display port in the following cases:
-a scroll info layer
-a scroll frame with !WantAsyncScroll() (the main thread never creates a display port for a scroll frame with !WantAsyncScroll()) (for example if the main thread creates a scroll id and sends over metadata via nsLayoutUtils::GetRootMetaData, and then the scroll rect changes, that will cause a RequestContentRepaint call)
-a few instances that don't fall into the above that happened on try server but didn't reproduce for me locally, so I don't know more about them.
It's not very important whether we clear the minimal display port property for these cases or not (the first two cases we don't async scroll the scroll frame at all, the last case seems quite rare).

Note that we intentionally do not change the existing behaviour of zero margin display ports set via SetZeroMarginDisplayPortOnAsyncScrollableAncestors as we are aiming for no behaviour changes with this patch (until we flip the pref). A later patch in a different bug handles changing these display ports over to minimal display ports.

Differential Revision: https://phabricator.services.mozilla.com/D103855
2021-02-04 11:16:44 +00:00
Timothy Nikkel
4d468e325c Bug 1689492. Test for bug 1687926, bug 1687927, bug 1687886. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D103396
2021-02-03 10:41:18 +00:00
Markus Stange
df2a007c4c Bug 1689237 - Disable CALayer edge anti-aliasing. r=mattwoodrow
We currently don't ever set non-rectilinear transforms on our CALayers, so there
is no need for anti-aliasing. Explicitly disabling edge anti-aliasing means that
there are no seams between tiles when the window server draws our window with a
transform, such as during Mission Control.

Differential Revision: https://phabricator.services.mozilla.com/D103740
2021-02-03 05:26:32 +00:00
Markus Stange
f2abb9133c Bug 1599606 - Remove an assert in non-WebRender code. r=jnicol
This assert fails on the new reftest from this bug, on Android.

I haven't dug into it too deeply, given that it's code that'll be going away at
some point soon (hopefully), but I think what happens is that we have a fixed
layer which is not annotated as fixed. That's normal for background-attachment:
fixed root backgrounds. We handle explicitly-annotated-as-fixed layers a bit
further up in this function.

Returning false here seems like a very safe thing to do.

Depends on D54855

Differential Revision: https://phabricator.services.mozilla.com/D103736
2021-02-02 09:49:10 +00:00
Andrew Osmond
80789c4708 Bug 1682647 - Expose Software WebRender + D3D11 status to telemetry. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D103789
2021-02-02 15:26:22 +00:00
Timothy Nikkel
ddeb475085 Bug 1687927. Don't request a repaint for a scroll update of type NewScrollFrame that doesn't change the scroll offset. r=botond
https://searchfox.org/mozilla-central/rev/2c06b16a0c15ae340a0532e319cbf89ef9d21b68/gfx/layers/apz/src/AsyncPanZoomController.cpp#4866

scrollOffsetUpdated gets set to true if we get basically any scroll update, including a NewScrollFrame update that we create for every new scroll frame that just informs apzc the scroll offset is (0,0).

scrollOffsetUpdated being true means RequestContentRepaint gets called a little later. RequestContentRepaint causes a full display port to be set on the content. That is undesirable because we set zero margin display ports (via SetZeroMarginDisplayPortOnAsyncScrollableAncestors) and we don't want to expand them to full display ports.

This bug is to fix the regression caused by bug 1662013. Two other bugs also regressed this (bug 1627012 and bug 1667475), and we need to fix all of them to fix the problem. Bug 1687886 is filed for the regression from bug 1667475. Bug 1687926 is filed for the regression from bug 1627012.

Before https://hg.mozilla.org/integration/autoland/rev/b78646d59e32 we only set scrollOffsetUpdated to true if GetScrollOffsetUpdated() was set to true on the metrics, and it didn't get set to true for new scroll frames.

Differential Revision: https://phabricator.services.mozilla.com/D102587
2021-02-02 04:24:08 +00:00
Timothy Nikkel
26aa295c1e Bug 1687926. Don't request a repaint and set a display port if it's the first time for an azpc getting metrics always via the visualScrollOffsetUpdated path. r=botond
https://searchfox.org/mozilla-central/rev/2c06b16a0c15ae340a0532e319cbf89ef9d21b68/gfx/layers/apz/src/AsyncPanZoomController.cpp#5034

That RequestContentRepaint call gets executed every time isDefault is true (and ignoreVisualUpdate is false), ie whenever the azpc gets metrics for the first time. RequestContentRepaint causes a full display port to be set on the content. That is undesirable because we set zero margin display ports (via SetZeroMarginDisplayPortOnAsyncScrollableAncestors) and we don't want to expand them to full display ports

This bug is to fix the regression caused by bug 1627012. Two other bugs also regressed this (bug 1662013 and bug 1667475), and we need to fix all of them to fix the problem. Bug 1687886 is filed for the regression from bug 1667475. Bug 1687927 is filed for the regression from bug 1662013.

https://hg.mozilla.org/integration/autoland/rev/47328d6c1b40 made us request a repaint any time we have default metrics because we might get a new visual scroll offset, but if our visual scroll offset doesn't change we shouldn't need to do anything.

Differential Revision: https://phabricator.services.mozilla.com/D102586
2021-02-02 04:33:28 +00:00
Andreea Pavel
fc3ef5c379 Backed out changeset 3a23af510b99 (bug 1687927) for build bustages at FrameMetrics.cpp on a CLOSED TREE 2021-02-02 06:20:11 +02:00
Timothy Nikkel
3d86f18bc1 Bug 1687927. Don't request a repaint for a scroll update of type NewScrollFrame that doesn't change the scroll offset. r=botond
https://searchfox.org/mozilla-central/rev/2c06b16a0c15ae340a0532e319cbf89ef9d21b68/gfx/layers/apz/src/AsyncPanZoomController.cpp#4866

scrollOffsetUpdated gets set to true if we get basically any scroll update, including a NewScrollFrame update that we create for every new scroll frame that just informs apzc the scroll offset is (0,0).

scrollOffsetUpdated being true means RequestContentRepaint gets called a little later. RequestContentRepaint causes a full display port to be set on the content. That is undesirable because we set zero margin display ports (via SetZeroMarginDisplayPortOnAsyncScrollableAncestors) and we don't want to expand them to full display ports.

This bug is to fix the regression caused by bug 1662013. Two other bugs also regressed this (bug 1627012 and bug 1667475), and we need to fix all of them to fix the problem. Bug 1687886 is filed for the regression from bug 1667475. Bug 1687926 is filed for the regression from bug 1627012.

Before https://hg.mozilla.org/integration/autoland/rev/b78646d59e32 we only set scrollOffsetUpdated to true if GetScrollOffsetUpdated() was set to true on the metrics, and it didn't get set to true for new scroll frames.

Differential Revision: https://phabricator.services.mozilla.com/D102587
2021-02-02 04:00:58 +00:00
Kartikaya Gupta
91ed16414f Bug 1688475 - Remove waitForApzFlushedRepaints. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D103126
2021-02-01 23:52:56 +00:00
Kartikaya Gupta
6bb36e5f4f Bug 1688475 - Remove usage of waitForApzFlushedRepaints from helper_scrollto_tap.html. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D103120
2021-01-31 17:38:03 +00:00
Kartikaya Gupta
fa7efa2413 Bug 1688475 - Remove usage of waitForApzFlushedRepaints from helper_key_scroll.html. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D103119
2021-01-31 17:38:01 +00:00
Kartikaya Gupta
0b54389c7f Bug 1688475 - Remove usage of waitForApzFlushedRepaints from helper_bug1669625.html. r=botond
This test has some tricky timing requirements so I mostly left the
callback-style alone in the main part of the test. The setTimeout/
rAF callbacks run at a specific time, whereas converting them to
promises would change that to "run no sooner than ..." which in this
is undesirable.

Differential Revision: https://phabricator.services.mozilla.com/D103118
2021-01-31 17:37:59 +00:00
Kartikaya Gupta
a047004d0d Bug 1688475 - Trivial replacement of some waitForApzFlushedRepaints callers. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D103117
2021-01-31 17:37:56 +00:00
Hiroyuki Ikezoe
529337778c Bug 1687067 - Build OverscrollHandoffChain by walking up hit testing tree instead of APZC tree. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D103601
2021-02-01 23:25:17 +00:00
Timothy Nikkel
8a6332429a Bug 1687886. Don't request a repaint and set a display port if it's the first time for an azpc getting metrics always. r=botond
https://searchfox.org/mozilla-central/rev/2c06b16a0c15ae340a0532e319cbf89ef9d21b68/gfx/layers/apz/src/AsyncPanZoomController.cpp#4741

That RequestContentRepaint call gets executed every time isDefault is true, ie whenever the azpc gets metrics for the first time. RequestContentRepaint causes a full display port to be set on the content. That is undesirable because we set zero margin display ports (via SetZeroMarginDisplayPortOnAsyncScrollableAncestors) and we don't want to expand them to full display ports.

This bug is to fix the regression caused by bug 1667475. Two other bugs also regressed this (bug 1662013 and bug 1627012), and we need to fix all of them to fix the problem. Bug 1687926 and bug 1687927 are filed to fix those.

See https://phabricator.services.mozilla.com/D91479#inline-517695 for the rationale for the original change.

Differential Revision: https://phabricator.services.mozilla.com/D102529
2021-02-01 11:15:04 +00:00
Emilio Cobos Álvarez
49e1237f27 Bug 1689098 - Make inputs, selects, and button actually have the same block-axis padding as claimed by our forms.css comments. r=dholbert
Combobox select has the block-axis padding in the comboboxcontrol frame.
Moving it fixes bug 1560824 and should be better, so will do that there.

1px block axis padding on buttons matches Chrome too, so shouldn't be a
problem compat-wise.

Differential Revision: https://phabricator.services.mozilla.com/D103244
2021-01-28 07:08:34 +00:00
Cameron McCormack
b77842bf22 Bug 1687868 - Annotate fuzziness in reftest with the non-native theme enabled. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D102884
2021-01-26 10:38:14 +00:00
Florian Quèze
f447ef94de Bug 1688300 - Add 'Runnable' profiler markers showing when runnables are executed and a 'Task' label frame showing which tasks are started by TaskController, r=bas,gerald.
Differential Revision: https://phabricator.services.mozilla.com/D102803
2021-01-26 08:57:19 +00:00
Kartikaya Gupta
43111fe2a7 Bug 1686687 - Move runContinuation out of apz_test_utils.js and into the single remaining test that uses it. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D102862
2021-01-26 02:03:35 +00:00
Kartikaya Gupta
51a7aed234 Bug 1686687 - Simplify injectScript and callers. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D102860
2021-01-25 23:08:06 +00:00
Noemi Erli
a99af52366 Backed out changeset 6495f98f94e0 (bug 1687868) for causing reftest failures CLOSED TREE 2021-01-26 03:53:49 +02:00
Timothy Nikkel
7f3dabf54f Bug 1687872. Actually remove FrameMetrics::mDisplayPortMargins. r=botond
They are unused and were meant to be removed in https://hg.mozilla.org/mozilla-central/rev/600c18995b01 bug 1667475.

Differential Revision: https://phabricator.services.mozilla.com/D102528
2021-01-23 06:29:31 +00:00
Noemi Erli
9e597fb16e Backed out changeset 0d66f4dd10b6 (bug 1687872) for causing reftest failures CLOSED TREE 2021-01-26 03:31:59 +02:00
Timothy Nikkel
2812c1639a Bug 1687872. Actually remove FrameMetrics::mDisplayPortMargins. r=botond
They are unused and were meant to be removed in https://hg.mozilla.org/mozilla-central/rev/600c18995b01 bug 1667475.

Differential Revision: https://phabricator.services.mozilla.com/D102528
2021-01-23 06:29:31 +00:00
Cameron McCormack
15ed3bf857 Bug 1687868 - Annotate fuzziness in reftest with the non-native theme enabled. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D102884
2021-01-25 22:56:12 +00:00
sotaro
33ed380ddf Bug 1688144 - Add more error logs to WebRenderBridgeParent::UpdateResources() r=nical,aosmond
It seems better to add more error logs to WebRenderBridgeParent::UpdateResources().

Differential Revision: https://phabricator.services.mozilla.com/D102691
2021-01-22 12:42:28 +00:00
Edgar Chen
48c01f0a8b Bug 1688105 - Part 2: Get rid of dom.w3c_pointer_events.enabled; r=smaug
Depends on D102668

Differential Revision: https://phabricator.services.mozilla.com/D102669
2021-01-25 16:22:44 +00:00
Mats Palmgren
b41a2b9d21 Bug 1687239 part 2 - Remove plugin support from layout/. r=emilio
Note that there's still a little plugin related code in
widget/ and gfx/ etc after this.  That can be removed
once we remove plugin support from dom/ etc.
The removal from layout/ should be pretty complete though.

Differential Revision: https://phabricator.services.mozilla.com/D102140
2021-01-25 11:53:49 +00:00
sotaro
dc800277dd Bug 1687252 - Avoid crash on headless mode r=nical
On headless mode, widget is HeadlessWidget instead of nsWindow.

Differential Revision: https://phabricator.services.mozilla.com/D102384
2021-01-20 22:03:23 +00:00
sotaro
aeb51e51a6 Bug 1687427 - Update display list when ExternalCompositing is changed r=mattwoodrow
When when TexutureHost's SupportsExternalCompositing is changed, display list needs to be updated.

Differential Revision: https://phabricator.services.mozilla.com/D102264
2021-01-19 21:42:57 +00:00