Commit Graph

984 Commits

Author SHA1 Message Date
Matt Woodrow
7b46c20b8f Bug 1303897 - Part 1: Use TextureForwarder for Image::GetTextureClient. r=nical 2016-09-23 09:43:11 +12:00
Matt Woodrow
3b09690780 Bug 1299908 - Make sure we set the correct AGR to reference frame offset when flattening layers. r=mstange 2016-09-08 15:39:04 +12:00
Michael Layzell
c987b38274 Bug 1018486 - Part 4: Changes in layout/, r=bz
MozReview-Commit-ID: BsaKGHsoqOq
2016-09-07 10:50:40 -04:00
cku
8d6ec306f8 Bug 1295094 - Part 13. nsDisplayFilter painting. r=mstange
MozReview-Commit-ID: LyCUb4NacaO
2016-09-01 11:14:00 +08:00
cku
35ee6e24a3 Bug 1295094 - Part 9. Implement nsDisplayMask. r=mstange
MozReview-Commit-ID: CBszApBehRE
2016-08-10 03:02:45 +08:00
Markus Stange
1eac2083e2 Bug 1298209 - Remove unused mIsPerspectiveItem. r=mattwoodrow
MozReview-Commit-ID: 7KPw4wnihFZ
2016-08-23 01:17:22 -04:00
Markus Stange
e10fe92264 Bug 1298209 - Remove unused mIsCaret. r=mattwoodrow
MozReview-Commit-ID: 1AyqgYyGJX4
2016-08-23 01:17:03 -04:00
Milan Sreckovic
e871a21d1e Bug 1296731: Add parameter to GetAlignedStride and check for overflow. r=bas
MozReview-Commit-ID: 5Ptm0bxwKdG
2016-08-25 13:57:39 -04:00
Matt Woodrow
4afe7d0bce Bug 1296793 - Don't assume that layer flattening was 100% successful and treat all layers as opaque. r=tnikkel 2016-08-25 14:25:57 +12:00
Kan-Ru Chen
a9b19d0584 Bug 1297276 - Rename mfbt/unused.h to mfbt/Unused.h for consistency. r=froydnj
The patch is generated from following command:

  rgrep -l unused.h|xargs sed -i -e s,mozilla/unused.h,mozilla/Unused.h,

MozReview-Commit-ID: AtLcWApZfES
2016-08-24 14:47:04 +08:00
Sotaro Ikeda
40161f348c Bug 1289829 - Change mask SurfaceSize calculation r=mattwoodrow 2016-08-18 02:19:55 -07:00
Jonathan Chan
23ccd0531f Bug 1293739 - Part 1: Rename nsCSSProperty to nsCSSPropertyID. r=dholbert
This patch is generated by the following commands (note: if you're running
using OS X's sed, which accepts slightly different flags, you'll have to
specify an actual backup suffix in -i, or use gsed from Homebrew):

  hg stat -c \
  | cut -c 3-  \
  | tr '\n' '\0' \
  | xargs -0 -P 8 gsed --follow-symlinks 's/\bnsCSSProperty\b/nsCSSPropertyID/g' -i''

Then:

  hg mv layout/style/nsCSSProperty.h layout/style/nsCSSPropertyID.h

... and finally, manually renaming nsCSSProperty in the include guard in
nsCSSProperty.h.

MozReview-Commit-ID: ZV6jyvmLfA
2016-08-09 16:28:19 -07:00
Joel Maher
3c7139eb79 backout 4e8a67e61102 (bug 1289829) for performance regression
MozReview-Commit-ID: HELRLZmHY7n
2016-08-15 11:54:43 -04:00
Timothy Nikkel
007bfb5976 Bug 1294133. Null check animated geometry root. r=mattwoodrow 2016-08-11 00:52:56 -05:00
Matt Woodrow
75d4a848c5 Bug 1237102 - Make sure we don't generate invalidations for children of opacity:0 frames, even when plugins are present. r=tnikkel 2016-08-10 15:15:28 +12:00
Hiroyuki Ikezoe
19ecbfb0d6 Bug 1292441 - Part 1: Avoid crashes when 'reftest-opaque-layer' is specified against an element having an display item which is not assigned to a PaintedLayer. r=mstange
MozReview-Commit-ID: HISvrzIwUZ2
2016-08-08 09:41:50 +09:00
Markus Stange
948dc0b523 Bug 1259872 - Don't cull all layers under an opaque layer that covers the container if that layer has a scrolled clip. r=mattwoodrow
MozReview-Commit-ID: Abmm28HiLqR
2016-08-04 22:40:56 -04:00
Markus Stange
07440559c6 Bug 1012752 - Snap scrolled area to layer pixels. r=tnikkel
We want the maximum scroll position to be aligned with layer pixels. That way
we don't have to re-rasterize the scrolled contents once scrolling hits the
edge of the scrollable area.

Here's how we determine the maximum scroll position: We get the scroll port
rect, snapped to layer pixels. Then we get the scrolled rect and also snap
that to layer pixels. The maximum scroll position is set to the difference
between right/bottom edges of these rectangles.
Now the scrollable area is computed by adding this maximum scroll position
to the unsnapped scroll port size.
The underlying idea here is: Pretend we have overflow:visible so that the
scrolled contents start at (0, 0) relative to the scroll port and spill over
the scroll port edges. When these contents are rendered, their rendering is
snapped to layer pixels. We want those exact pixels to be accessible by
scrolling.

This way of computing the snapped scrollable area ensures that, if you scroll
to the maximum scroll position, the right/bottom edges of the rendered
scrolled contents line up exactly with the right/bottom edges of the scroll
port. The scrolled contents are neither cut off nor are they moved too far.
(This is something that no other browser engine gets completely right, see the
testcase in bug 1012752.)

There are also a few disadvantages to this solution. We snap to layer pixels,
and the size of a layer pixel can depend on the zoom level, the document
resolution, the current screen's scale factor, and CSS transforms. The snap
origin is the position of the reference frame. So a change to any of these
things can influence the scrollable area and the maximum scroll position.
This patch does not make us adjust the current scroll position in the event
that the maximum scroll position changes such that the current scroll position
would be out of range, unless there's a reflow of the scrolled contents. This
means that we can sometimes render a slightly inconsistent state where the
current scroll position exceeds the maximum scroll position. We can fix this
once it turns out to be a problem; I doubt that it will be a problem because
none of the other browsers seems to prevent this problem either.

The size of the scrollable area is exposed through the DOM properties
scrollWidth and scrollHeight. At the moment, these are integer properties, so
their value is rounded to the nearest CSS pixel. Before this patch, the
returned value would always be within 0.5 CSS pixels of the value that layout
computed for the content's scrollable overflow based on the CSS styles of the
contents.
Now that scrollWidth and scrollHeight also depend on pixel snapping, their
values can deviate by up to one layer pixel from what the page might expect
based on the styles of the contents. This change requires a few changes to
existing tests.
The fact that scrollWidth and scrollHeight can change based on the position of
the scrollable element and the zoom level / resolution may surprise some web
pages. However, this also seems to happen in Edge. Edge seems to always round
scrollWidth and scrollHeight upwards, possibly to their equivalent of layout
device pixels.

MozReview-Commit-ID: 3LFV7Lio4tG
2016-08-04 23:51:58 -04:00
Markus Stange
5e1e3fb4d7 Bug 1292395 - Tweak this assertion message. r=mattwoodrow
MozReview-Commit-ID: AARqrxI1Qwn
2016-08-04 22:00:04 -04:00
Carsten "Tomcat" Book
7cba3e99b0 Merge mozilla-central to mozilla-inbound 2016-08-04 16:07:29 +02:00
Botond Ballo
37120a6f50 Bug 1287075 - Back out bug 1273250, part 4 for regressing the rendering of the Australis submenus. r=mstange
MozReview-Commit-ID: 1m8lVoIX3qT
2016-08-03 13:48:10 -04:00
Sotaro Ikeda
6c581b47de Bug 1289829 - Change mask SurfaceSize calculation r=mattwoodrow 2016-08-04 06:09:25 -07:00
Carsten "Tomcat" Book
dcac771c21 Backed out changeset 5b940f1bf535 (bug 1289829) for reftest failures 2016-08-04 09:58:10 +02:00
Sotaro Ikeda
e7cd6e1a1e Bug 1289829 - Change mask SurfaceSize calculation r=mattwoodrow 2016-08-03 19:00:19 -07:00
Nicolas Silva
3766bcc94a Bug 1284837 - Disallow implicit conversions from float to integer when creating IntPoint and IntSize objects. r=botond 2016-07-26 16:48:30 +02:00
Botond Ballo
54a6afcc58 Bug 1285619 - Call ResetLayerStateForRecycling() when recycling an image or color layer. r=mstange
MozReview-Commit-ID: GD4NRCoJXWf
2016-07-08 17:25:09 -04:00
Botond Ballo
ec176fc06b Bug 1285619 - Call ResetLayerStateForRecycling() when recycling an OwnLayer. r=mstange
MozReview-Commit-ID: 66J6wBcrYDQ
2016-07-08 17:24:48 -04:00
Botond Ballo
511e230007 Bug 1285619 - Introduce a ResetLayerStateForRecycling() helper function. r=mstange
MozReview-Commit-ID: DLktq4PYNba
2016-07-08 16:30:47 -04:00
Matt Woodrow
dc6aadd7ec Bug 1217803 - Always build a mask layer if we have rounded corners, regardless of the visible region since this might change on the compositor. r=mstange 2016-07-25 14:41:25 +12:00
Kartikaya Gupta
68edabd58a Bug 1286957 - Because combining touch-action areas into the event regions is fraught with peril, dump them into the dispatch-to-content region. r=tnikkel
MozReview-Commit-ID: FOyCEFP3Hw6
2016-07-20 19:02:09 -04:00
Brad Werth
69ccb7e3db Bug 1243559 - Removes static casts from calls to FrameProperties::Get, ::Set, and ::Remove, and forces callers to use the type associated with the property. r=dbaron 2016-06-21 13:17:11 -07:00
Phil Ringnalda
ae1f6b874d Back out changeset 0bb00282a4c2 (bug 1243559) for widespread SVG assertion failures
CLOSED TREE
2016-06-22 18:45:08 -07:00
Brad Werth
665cd94da6 Bug 1243559 - Removes static casts from calls to FrameProperties::Get, ::Set, and ::Remove, and forces callers to use the type associated with the property. r=dbaron 2016-06-21 13:17:11 -07:00
Jonathan Watt
9c5b8de022 Bug 1279451 - Remove a lot of unnecessary includes of nsAutoPtr.h. rs=sparky 2016-06-07 21:10:18 +01:00
Nicholas Nethercote
a41e57a9b1 Bug 1276824 (part 1) - Rename gfxContext::ForDrawTarget{,WithTransform}(). r=milan.
The new names Create{,PreservingTransform}OrNull() better communicate that
these functions (a) do object creation, and (b) are fallible.
2016-06-07 09:39:56 +10:00
Kartikaya Gupta
684a33e791 Bug 1108052 - Remove empty event regions display items because they only slow things down and can add extraneous layers. r=mstange
MozReview-Commit-ID: JkXGiudjBpe
2016-06-03 10:20:38 -04:00
Markus Stange
1306d88d10 Bug 1272801 - Remove unused aForceOwnLayer argument. r=mattwoodrow
MozReview-Commit-ID: JytuAlukyy8
2016-06-02 16:44:32 -04:00
Markus Stange
0ecc6c3a60 Bug 1153694 - Don't let nsDisplayFixedPosition cause unnecessary layerization around itself. r=mattwoodrow
MozReview-Commit-ID: 66q3PkOdvTe
2016-06-02 20:55:02 -04:00
Jamie Nicol
cd0b448cac Bug 1274528 - Don't enforce layers.max-active when layerizing items with different AGRs. r=mstange
This reverts bug 1231818, as it caused problems with async scrolling on
pages with too many active layers.

MozReview-Commit-ID: 8eGjn4fzWFb
2016-05-27 16:29:19 +01:00
Botond Ballo
9c5832b18e Bug 1273250 - Simplify logic for determining whether a display item should be fixed to thew viewport. r=mstange
MozReview-Commit-ID: 3tXhaBnNa0K
2016-05-16 19:49:49 -04:00
Botond Ballo
60f8c66ad8 Bug 1273250 - Set a layer clip rather than a scroll clip for fixed background layers if the clip moves with the layer. r=mstange
This patch also removes the earlier workaround added in bug 1272525.

MozReview-Commit-ID: HR2wF2BGsKl
2016-05-16 17:20:23 -04:00
Botond Ballo
c6e111ddc3 Bug 1273250 - Expand the visible rect of fixed background display items instead of special-casing them in FrameLayerBuilder. r=mstange
MozReview-Commit-ID: DT3Mh8ordzQ
2016-05-16 17:14:29 -04:00
Kan-Ru Chen
61c6c69c00 Bug 1271931 - Make DisplayItem::IsUniform to return Maybe<nscolor>. r=tnikkel
Maybe<nscolor> ensures that correct value is returned and also makes the
error checking clearer than using a out param.

MozReview-Commit-ID: 39uHIFCZzqn
2016-05-19 16:07:52 +08:00
Matt Woodrow
bf56f1a52a Bug 1141468 - Clean up prerendering code in nsDisplayTransform to be easier to follow. r=mstange 2016-05-18 15:12:44 +12:00
Matt Woodrow
40f381ecb5 Bug 1141468 - Don't attempt to modify prerender state (for will-change) in nsDisplayTransform since it's already too late. r=BenWa,mstange 2016-05-18 15:12:14 +12:00
Kartikaya Gupta
293850fcb3 Bug 1271432 - Optimization to avoid recomputing the same Matrix over and over. r=tnikkel
MozReview-Commit-ID: 28lV5ZRswxu
2016-05-17 11:05:46 -04:00
Kartikaya Gupta
564a901e6f Bug 1271432 - When combining event regions across layers, don't expand the regions that shouldn't be expanded. r=tnikkel
MozReview-Commit-ID: 6GlYiJAm7rO
2016-05-17 11:05:46 -04:00
Botond Ballo
14f8a3e5ce Bug 1272525 - Set a layer clip rather than a scroll clip for fixed background layers if not using a widget layer manager. r=mstange
MozReview-Commit-ID: 2fJyQXSLzsU
2016-05-16 14:15:48 -04:00
Botond Ballo
a8eb3b8312 Bug 1267438 - Remove the (no longer used) isClipFixed=false annotation. r=mstange
MozReview-Commit-ID: LicG7zFHnX3
2016-05-04 20:07:42 -04:00
Botond Ballo
04d4b26790 Bug 1267438 - For fixed backgrounds, use the scrolled clip rather than the isClipFixed=false annotation. r=mstange
MozReview-Commit-ID: 9STe7ypglpP
2016-05-06 19:02:26 -04:00