Commit Graph

29153 Commits

Author SHA1 Message Date
sotaro
e32352899f Bug 1438408 - Shutdown RenderThread if it exists r=nical 2018-02-16 09:04:07 +09:00
Noemi Erli
4da94c73be Backed out changeset db673a3d83f9 (bug 1437140) for speedometer crashes on a CLOSED TREE 2018-02-15 20:58:52 +02:00
Josh Matthews
a2d70d4acc Bug 1437140 - Replace some uses of NS_DispatchToMainThread/NS_DispatchToCurrentThread with more specific event targets. r=mystor
--HG--
extra : rebase_source : 9dad34e2a4a25e6c0e0697a9012c24c3f1abeea9
2018-02-12 10:13:28 -05:00
Ryan Hunt
b1c7b1bc2c Don't repaint content we copied from the front buffer when tiling without component alpha (bug 1438321, r=nical)
MozReview-Commit-ID: 5jzCkZFtCvJ
2018-02-14 12:21:45 -06:00
Andrew Osmond
71ec66dad0 Backed out changeset 2ffed9c081fa (bug 1437886) for test bustage on a CLOSED TREE. r=backout 2018-02-15 10:03:42 -05:00
Andrew Osmond
ddb7905e51 Bug 1437886 - Prevent shared surfaces from being used without WebRender. r=nical
Move the initialization of SharedSurfacesParent from the compositor
thread creation to mirror the other WebRender-specific components, such
as the render thread creation. Now it will only be created if WebRender
is in use. Also prevent shared surfaces from being used by the image
frame allocator, even if image.mem.shared is set -- there is no purpose
in allowing this at present. It was causing startup crashes for users
who requested image.mem.shared and/or WebRender via gfx.webrender.all
but did not actually get WebRender at all. Surfaces would get allocated
in the shared memory, try to register themselves with the WR render
thread, and then crash since that thread was never created.
2018-02-15 09:26:05 -05:00
Jonathan Kew
252d458bf8 Bug 1436997 - When variation-font support is enabled, accept new CSS Fonts 4 format-hint strings for variation fonts. r=jwatt 2018-02-15 10:56:42 +00:00
Andreea Pavel
a403fc3f13 Merge mozilla-central to mozilla-inbound. on a CLOSED TREE 2018-02-15 12:37:30 +02:00
Andreea Pavel
74b7ffee40 Merge mozilla-inbound to mozilla-central a=merge
--HG--
rename : js/src/jscompartment.cpp => js/src/vm/JSCompartment.cpp
rename : js/src/jscompartment.h => js/src/vm/JSCompartment.h
rename : js/src/jsscript.cpp => js/src/vm/JSScript.cpp
rename : js/src/jsscript.h => js/src/vm/JSScript.h
extra : amend_source : 9c233cb959c45e401189d089a094f9d141d2b912
2018-02-15 12:24:21 +02:00
Kartikaya Gupta
73cdb9f334 Bug 1437949 - Follow-up to make the GL context current before poking the WR renderer. r=sotaro
MozReview-Commit-ID: DIpnRZcGb3Q
2018-02-15 04:24:13 -05:00
Dorel Luca
0a16fae4da Backed out changeset eedbb054f2ae (bug 1437694) for failing Browser chrome on browser/components/search/test/browser_searchbar_openpopup.js 2018-02-15 06:49:07 +02:00
Botond Ballo
0c2204538e Bug 1437694 - Gracefully recover from hit testing bugs affecting scrollbar dragging. r=kats
The recovery is only enabled for release builds, to avoid papering over
such hit testing bugs. On nightly builds, a diagnostic assert is issued.

MozReview-Commit-ID: Aos0j0jv6Lb

--HG--
extra : rebase_source : 1cb7fa24ed1f3cba7344f52670626bdeb41b51cc
2018-02-12 17:58:36 -05:00
sotaro
71d9e881b1 Bug 1436020 - Disable WebRender profiler UI during readback r=nical 2018-02-15 11:29:40 +09:00
Andrew Osmond
ac545b4747 Bug 1433646 - Allow ContentChild::Recv(Re)InitRendering to fail with the GPU process. r=rhunt
When ContentChild::RecvInitRendering is received, it tries to setup the
IPDL actors related to rendering. If the GPU process crashes before or
during this process, it will fail, and cause the content process to
crash as well. This is unnecessary because the UI process will either
restart the GPU process, or subsume its job into itself, and trigger
ContentChild::RecvReinitRendering. It is a similar case for failures in
ContentChild::RecvReinitRendering.

Since the GPU process crashing should be a recoverable scenario, we now
check if the remote IPDL actor is in the UI or the GPU process. If it is
in the UI process, it will fail/crash as it does today. If it is in the
GPU process, it will wait for the next
ContentChild::RecvReinitRendering.

For failures that are not IPDL related (e.g. failed to get some resource
like spawning a thread), we release assert specifically for those
failures. They are not recoverable.
2018-02-14 18:07:53 -05:00
Dorel Luca
75f385b6d6 Merge mozilla-centra to mozilla-inbound 2018-02-15 00:37:44 +02:00
Dorel Luca
4234703a53 Merge mozilla-inbound to mozilla-central a=merge 2018-02-15 00:23:02 +02:00
Margareta Eliza Balazs
2fd871d8b3 Backed out 4 changesets (bug 1436247) for c2 failures in dom/events/test/test_DataTransferItemList.html on a CLOSED TREE
Backed out changeset 858d629f761d (bug 1436247)
Backed out changeset 4ce2bfe462a0 (bug 1436247)
Backed out changeset 3650631487c7 (bug 1436247)
Backed out changeset c32ead4e3525 (bug 1436247)
2018-02-13 19:56:26 +02:00
Ryan Hunt
28164f62e6 Make FilterNodeSoftware intermediate surface caching thread safe (bug 1436723, r=mstange)
This commit introduces a lock on each FilterNodeSoftware around the cached surface.

This lock must be acquired whenever the cached surface is accessed. Currently this
is when the Filter is invalidated or painted.

When painting we only hold the cache lock when determining if we need to compute
a new surface, and after we have computed that new surface. This allows another
thread that may be painting that filter node at a different rect to not contend
on the cache. This is just theoretical though as DrawTargetTiled doesn't clamp
the source rect of the Filter command to the tile rect.

MozReview-Commit-ID: KFVZ35e1czB

--HG--
extra : rebase_source : a22918df80a24fad216a834a5737249cab570f08
2018-02-09 13:46:04 -06:00
Ryan Hunt
bdc27969fe Restore FilterNodeSoftware intermediate surface caching (bug 1436723, r=mstange)
This is a just a back out of changeset 6882857e1bb5.

MozReview-Commit-ID: 9Z6iEHl3eAy

--HG--
extra : rebase_source : 3d091c72a6e589e702d90ffe6800e131b009604b
2018-02-08 15:21:06 -06:00
Andrew Osmond
94c773742a Bug 1436247 - Part 2. Shutdown idle image decoder threads after the configured timeout. r=tnikkel
The image decoding thread pool can grow to be quite large, up to 32
threads, depending on the number of processors on the system. If the
user is not actively browsing, these threads are occupying resources
which could be reused elsewhere. After the timeout period, it will
release up to half of the threads in the pool.
2018-02-13 06:43:31 -05:00
Brian Birtles
c2a3f67bec Bug 1436659 - Support pending playback rates on compositor animations; r=hiro
MozReview-Commit-ID: 54EiZkv4S7Q

--HG--
extra : rebase_source : 77a13ee696d60ae73227bb902a2d9cc7df4966e2
2018-02-13 15:04:18 +09:00
Brian Birtles
bb7f299f94 Bug 1436659 - Factor out static time calculation methods on Animation; r=hiro
We will re-use these methods to perform various calculations once we introduce
the pending playback rate.

MozReview-Commit-ID: 2HV44TTNxHg

--HG--
extra : rebase_source : 19e32b13c6fee9cfe9993918557f2433aa687e11
2018-02-13 15:04:18 +09:00
sotaro
7758865123 Bug 1437750 - Update debug flags in WebRenderDebugPrefChangeCallback() r=nical 2018-02-13 19:32:34 +09:00
Boris Zbarsky
9bdcffc985 Bug 1436902 part 3. Replace usage of NS_IMPL_ISUPPORTS_INHERITED0 with NS_INLINE_DECL_REFCOUNTING_INHERITED when possible. r=mccr8
The change to RootAccessible.cpp fixes an obvious bug introduced in bug 741707.

The visibility changes in gfx/thebes are because NS_DECL_ISUPPORTS has a
trailing "public:" that those classes were relying on to have public
constructors.

MozReview-Commit-ID: IeB8KIJCGhU
2018-02-12 15:44:40 -05:00
Ciure Andrei
72080bd73c Merge inbound to mozilla-central. a=merge 2018-02-13 00:08:37 +02:00
Ryan Hunt
b796b12ab7 Add 'layers.omtp.dump-capture' for logging DrawTargetCapture (bug 1435938, r=bas)
MozReview-Commit-ID: GCyHRg8Dn6c

--HG--
extra : histedit_source : 297fbbc9defda0accc894fabdc30256a8484b4c4
2018-02-05 22:03:49 -06:00
Ryan Hunt
4a4b48772d Add basic DrawTargetCapture logging ability (bug 1435938, r=bas)
MozReview-Commit-ID: LhbC4mWub6k

--HG--
extra : histedit_source : 3dd4ae3ce007aa326c1d47f018770df1e9b982e1%2C4cf1db87b1cd9e879a90351f086711d24216d7b5
2018-02-05 22:00:45 -06:00
Andrew Osmond
5567686405 Bug 1432375 - Part 2. Images decoded into an SourceSurfaceSharedData should be shared immediately. r=nical 2018-02-12 07:59:58 -05:00
Andrew Osmond
973ae6ebde Bug 1432375 - Part 1. Add ability for SharedSurfacesChild callers besides display list building to share surfaces. r=nical 2018-02-12 07:59:47 -05:00
Jonathan Kew
cf67f1fa00 Bug 1436535 - Attempt intra-family fallback even when the first-matched face was Normal style, as other weights may have a different character repertoire. r=m_kato 2018-02-12 10:20:51 +00:00
Matt Woodrow
cf9c739dc2 Bug 1435643 - Remove no longer needed layer flattening code. r=mstange 2018-02-12 19:03:09 +13:00
Jeff Muizelaar
54461122d4 Bug 1437184. Inline FillAzure() r=bas
There's only one caller so let's just eliminate inline FillAzure into
Fill.

MozReview-Commit-ID: JYpAQMkhEcS

--HG--
extra : rebase_source : 962b046405949d435537a77baea50f631a8aee72
2018-02-10 10:54:54 -05:00
Jamie Nicol
61cdff34c5 Bug 1429508 - Allow created mask surfaces to be clipped to the necessary size when replaying a recording. r=bas
Add a command CreateClippedDrawTarget to DrawTarget, which takes the
max required size and a transform between this draw target and the one
to be created. The created draw target may have its size clipped to
the size of this draw target, transformed to the new target's
space. This means that the new surface will be large enough so
that it is rendered to this draw target correctly, but not necessarily
any larger.

Usually this will just create a draw target of the requested size, for
simplicity. However, when replaying a recorded draw target we do clip
the size to the base draw target's size. This is done using a
DrawTargetTiled, so when applying the mask in PopLayer, we must take
the SourceSurface's offset in to account.

MozReview-Commit-ID: 89ONElphzLu

--HG--
extra : rebase_source : 7eebeb66a2686a7b6f4ade36f3004ebb06abc2fe
2018-02-05 17:59:42 +00:00
Jamie Nicol
4c2f14974a Bug 1429508 - Make SnapshotTiled::GetDataSurface return a surface the size of backed tiles only. r=bas
Fix the DrawTargetTiled::mRect initialization, and expose through the
virtual function GetRect(). Make SnapshotTiled::GetDataSurface()
allocate a surface the size of this rect, rather the XMost and
YMost. Callers of SourceSurface::GetDataSurface() can query
SourceSurface::GetRect() and apply the necessary offset themselves.

MozReview-Commit-ID: C31FGirQ0oK

--HG--
extra : rebase_source : ac31ae3ca0a0b188f9293c4e6898b4e4a65cad0e
2018-02-05 17:50:41 +00:00
Jamie Nicol
190d2c71c5 Bug 1429508 - Mark DrawTarget::GetSize as const. r=jrmuizel
MozReview-Commit-ID: BmhlrQjmIjW

--HG--
extra : rebase_source : 388e5a273140e7996f4943b6f28d23c3d44ccf18
2018-01-23 17:10:11 +00:00
Bogdan Tara
5bbbbe17bc Merge inbound to mozilla-central. a=merge 2018-02-10 11:57:47 +02:00
Kartikaya Gupta
3df53735f9 Bug 1434996 - Update WebRenderLayerManager::SetTransactionIdAllocator to match ClientLayerManager. r=sotaro
Changing the transaction id allocator is now handled better in
ClientLayerManager than before in that it resets the transaction id on
the new allocator to match the old allocator and avoid discontinuities
in the transaction ids. We should apply this behaviour to
WebRenderLayerManager as well, because WebRenderLayerManager was
assuming that any time the allocator changed it would automatically
start the transaction id at 1, which is not the case. In particular,
when navigating to something in the bfcache, we can reuse a pre-existing
refresh driver which might have a transaction id already greater than 1.

MozReview-Commit-ID: 8IUn1Dhnh7c

--HG--
extra : rebase_source : 0e98c96d9636c3a3ee0489ff6b6161bce7677dd7
2018-02-09 13:41:18 -05:00
sotaro
6adc289759 Bug 1436466 - Set dirty in CopyableCanvasRenderer::ClearCachedResources() r=jrmuizel
bug 1379920 changed the way of dirty flag handling. And the dirty flag was not set when CopyableCanvasRenderer::ClearCachedResources() is called. Then ShareableCanvasRenderer::UpdateCompositableClient() did not update canvas.
2018-02-10 08:13:52 +09:00
sotaro
3315d3a267 Bug 1436908 - Fix EGLSurface leak at RenderCompositorANGLE r=nical 2018-02-10 07:45:44 +09:00
Milan Sreckovic
114ff1103a Bug 1432411: Wallpaper over the case where there is no Screen. r=jgilbert
MozReview-Commit-ID: ISeBw7qxGdH

--HG--
extra : rebase_source : b023754299b5e04883c6fa0d0eb4207f71315f90
2018-02-09 13:42:17 -05:00
Kartikaya Gupta
f6bd1624da Bug 1374166 - Use waitUntilApzStable to increase test robustness. r=botond
The important part here is that the test parent page
(test_bug1151663.html) waits for paints to complete before spawning the
helper window. Otherwise, the helper window might think it's done
painting (because it is) and start running the test even though its
layer tree has not been attached to the chrome layer tree. In such a
scenario reading the APZ test data produces an empty tree for the
content layers id and causes the test to fail.

This test was written before we had waitUntilApzStable so sprinkling some
of that into the test makes it more robust in general as well.

MozReview-Commit-ID: J8rqW6dcy23

--HG--
extra : rebase_source : f9e28bd15f355c88649ff1797b1f1205824bf815
2018-02-09 12:29:21 -05:00
Botond Ballo
d6cea6bca1 Bug 1434250 - Use a Box, rather than a Rect, representation for position:sticky inner/outer rects in the Layers API. r=kats
MozReview-Commit-ID: 4LDQ3XmWynx

--HG--
extra : rebase_source : cebe70a08b27d930618f44cb3923d3ede1171724
2018-02-09 15:40:13 -05:00
Botond Ballo
82e944293f Bug 1434250 - Infrastructure for working with Box types in Gecko code. r=kats
MozReview-Commit-ID: 5fbTj6vwOwu

--HG--
extra : rebase_source : d9ed5a4c1e75426b612290050f4863b9bb7adc37
2018-02-07 12:52:37 -05:00
Botond Ballo
8cddf32578 Bug 1434250 - Add a bare-bones Box class. r=bas
A Box is like a Rect but represented as (x1, y1, x2, y2) instead of
(x, y, w, h).

The API is bare-bones at the moment; it can be extended as needed
by future users.

MozReview-Commit-ID: FWv69Y5hP6t

--HG--
extra : rebase_source : 1f717727bc724842a2f6adcba9e6cbbe50059436
2018-02-09 15:40:07 -05:00
Botond Ballo
22b21d37e2 Bug 1425243 - Intersect the clip rect in CompositorOGL::DrawGeometry() with the mask bounds if there is a mask. r=mstange
MozReview-Commit-ID: DlGQOUxUPLm

--HG--
extra : rebase_source : e968a44c64e2b46b7aa76731fd86417b6fd300c9
2018-01-31 18:58:35 -05:00
Botond Ballo
367a708eba Bug 1434846 - APZ mochitest for hit test on scrollbar thumb of scrollframe inside float. r=kats
MozReview-Commit-ID: 7M7gUwAmlIO

--HG--
extra : rebase_source : 9a0fae64942f5a738db156c3fa841964d7dcff5c
2018-02-12 17:03:12 -05:00
Botond Ballo
a72eaf8b7d Bug 1434846 - Factor out some utility functions for testing APZ scrollbar hit testing. r=kats
MozReview-Commit-ID: G6Q4ryQjzyY

--HG--
extra : rebase_source : b4780a65ab63255024c6276866f6e5e77fa08ac5
2018-02-14 16:06:53 -05:00
Dorel Luca
dabf7b41ee Merge mozilla-central to autoland. CLOSED TREE
--HG--
extra : amend_source : 021950f3661e3b1d96e768155c5754b7af039f84
2018-02-15 00:35:45 +02:00
arthur.iakab
4139c1f914 Backed out 14 changesets (bug 1436659) for Eslint failures on devtools/server/actors/animation.js:876:12 on a CLOSED TREE
Backed out changeset a2890507d13a (bug 1436659)
Backed out changeset c653d7a1b3ef (bug 1436659)
Backed out changeset 4ae911f19aee (bug 1436659)
Backed out changeset e9381081ab6a (bug 1436659)
Backed out changeset 7301bfeeb65c (bug 1436659)
Backed out changeset 607dccfa8387 (bug 1436659)
Backed out changeset 8f61bf3de90a (bug 1436659)
Backed out changeset 920aa51ae3a2 (bug 1436659)
Backed out changeset bfa0d1a4bf1c (bug 1436659)
Backed out changeset 467dd218d3d3 (bug 1436659)
Backed out changeset 737ff1676ff0 (bug 1436659)
Backed out changeset 071666b6c7e9 (bug 1436659)
Backed out changeset c2932cd4839f (bug 1436659)
Backed out changeset a9777027b7ad (bug 1436659)

--HG--
rename : testing/web-platform/tests/web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation.html => testing/web-platform/tests/web-animations/interfaces/Animation/playbackRate.html
rename : testing/web-platform/tests/web-animations/timing-model/animations/the-current-time-of-an-animation.html => testing/web-platform/tests/web-animations/timing-model/animations/current-time.html
rename : testing/web-platform/tests/web-animations/timing-model/animations/setting-the-start-time-of-an-animation.html => testing/web-platform/tests/web-animations/timing-model/animations/set-the-animation-start-time.html
rename : testing/web-platform/tests/web-animations/timing-model/animations/setting-the-target-effect-of-an-animation.html => testing/web-platform/tests/web-animations/timing-model/animations/set-the-target-effect-of-an-animation.html
rename : testing/web-platform/tests/web-animations/timing-model/animations/setting-the-timeline-of-an-animation.html => testing/web-platform/tests/web-animations/timing-model/animations/set-the-timeline-of-an-animation.html
2018-02-14 22:40:07 +02:00
Brian Birtles
426e81f838 Bug 1436659 - Support pending playback rates on compositor animations; r=hiro
MozReview-Commit-ID: 54EiZkv4S7Q

--HG--
extra : rebase_source : de9fb42ff6275ef2ff3d3c15eee11726e0fcce03
2018-02-13 15:04:18 +09:00