Commit Graph

10071 Commits

Author SHA1 Message Date
Daniel Holbert
5ec19daf90 Bug 1558849: Use sans-serif font in reftest ruby-inlinize-blocks-002.html to reduce likelihood of fuzziness. r=jfkthame
We're seeing occasional fuzzy-mismatch failures with a single pixel differing,
where an antialiased "a" serif overlaps an adjacent table border.  Hopefully a
sans-serif font will reduce the likelihood of this fuzziness.

Differential Revision: https://phabricator.services.mozilla.com/D35266

--HG--
extra : moz-landing-system : lando
2019-06-18 22:03:01 +00:00
Brindusan Cristian
3f9e2ec379 Backed out changeset 64b2f8306217 (bug 1536871) for dt failures at browser_fontinspector.js. CLOSED TREE 2019-06-14 00:14:16 +03:00
Emilio Cobos Álvarez
7d1f93b8c6 Bug 1536871 - Make 'line-height: normal' return the 'normal' keyword from getComputedStyle() on Nightly and Early Beta, for now. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D25119

--HG--
extra : moz-landing-system : lando
2019-06-13 18:30:07 +00:00
Kartikaya Gupta
032ebfa3e8 Bug 1559032 - Adjust fuzz for 395107-5.html on geckoview. r=gbrown
Depends on D34896

Differential Revision: https://phabricator.services.mozilla.com/D34897

--HG--
extra : moz-landing-system : lando
2019-06-13 15:26:09 +00:00
Kartikaya Gupta
50738de8c3 Bug 1559023 - Adjust fuzz for form-valid-and-barred-remove-barred.html on geckoview. r=gbrown
Depends on D34895

Differential Revision: https://phabricator.services.mozilla.com/D34896

--HG--
extra : moz-landing-system : lando
2019-06-13 15:27:08 +00:00
Kartikaya Gupta
4c8f4be8cd Bug 1559001 - Adjust fuzz for 395107-3.html on geckoview. r=gbrown
Depends on D34894

Differential Revision: https://phabricator.services.mozilla.com/D34895

--HG--
extra : moz-landing-system : lando
2019-06-13 15:26:38 +00:00
Kartikaya Gupta
f1799b531a Bug 1558894 - Adjust fuzz for 315920-11.html on geckoview. r=gbrown
Differential Revision: https://phabricator.services.mozilla.com/D34894

--HG--
extra : moz-landing-system : lando
2019-06-13 15:27:32 +00:00
Glenn Watson
e22f19cf52 Bug 1558106 - Support picture caching for multiple scroll roots. r=kvark
This patch implements the majority of the planned picture caching
improvements. It supports most of the functionality required to
(as a follow up) support OS compositor integration. It also improves
on the robustness and functionality of the previous picture caching
implementation.

There are some expected temporary performance regressions in
some cases (such as content that is constantly invalidating) and
during initial page render when many render targets must be drawn
to. These performance regressions will be resolved in follow up
commits by supporting multi-resolution tiles.

The scene is split into a number of slices, determined by the scroll
root of each primitive, which can be found by the primitive's
spatial node indices. If a scene contains too many slices, then
picture caching is disabled on the page, to avoid excessive texture
memory usage, and rendering falls back to rasterizing each frame.

The specific changes in this patch are:
    * Support tile caches for multiple scroll roots, allowing the
      entire page (including fixed divs and the main UI bar) to be
      cached in most cases, in addition to the main content.
    * Remove requirement to read tiles back from the framebuffer.
      Instead, they are drawn into the picture cache target tiles,
      and blitted to the screen. This is slightly slower than the
      existing picture caching when content is constantly changing,
      however this cost will disappear / become irrelevant when
      the OS compositor integration work is complete.
    * Switch picture cache render targets to be nearest sampled (they
      are always rendered 1:1) and support depth buffer targets.
    * Make use of the external scroll offset support to allow removal
      of the primitive correlation hacks in the previous picture
      caching implementation. Also allows storing of primitive
      dependencies in picture space rather than world space, which
      reduces floating point inaccuracies.
    * Determine if each tile and picture cache can be considered
      opaque. This is used to determine whether subpixel AA text
      rendering is available on a slice, and for rendering optimizations
      related to disabling blending and/or tile clears.
    * Use the clip chain instance results from the recent visibility pass
      work to determine clip chain dependencies. This results in fewer
      clip item dependencies in tiles, which is faster to check validity
      and reduces redundant invalidations.
    * Remove extra overhead during batching related to batch lists,
      and region iteration, as they are no longer required.
    * Support PrimitiveVisibilityMask during batching. This allows a
      single traversal of a picture (surface) root during batching to
      efficiently construct multiple alpha batcher objects (typically
      one per invalida tile).
    * Picture caching is now handled implicitly by WR, depending on
      the content of the scene. There is no requirement for client
      code to manually select which stacking context should be cached.
    * Simplify how clip chain / transform dependencies are tracked by
      picture cache tiles.
    * Support pushing / popping enclosing clip chain roots without
      the need for a stacking context / picture in some cases. This
      simplifies the logic to split the scene into multiple slices.

The main remaining work in this area is (a) extend the code to
optionally provide each slice as an input to the OS compositor
rather than drawing the tiles in WR, and (b) support multi-resolution
tiles so that we reduce the draw call, batching and render target
overhead in cases where much of the page content is changing.

Differential Revision: https://phabricator.services.mozilla.com/D34319

--HG--
extra : moz-landing-system : lando
2019-06-13 04:43:56 +00:00
Kartikaya Gupta
2537eda1c2 Bug 1558834 - Adjust fuzz for 315920-7a.html on geckoview. r=gbrown
Note that the geckoview annotation will override the previous Android
annotation, but I verified that on geckoview debug the test seems to
pass so overriding the Android&&debug annotation should be ok.

Depends on D34727

Differential Revision: https://phabricator.services.mozilla.com/D34728

--HG--
extra : moz-landing-system : lando
2019-06-12 15:34:30 +00:00
Kartikaya Gupta
bb51ce8530 Bug 1558712 - Adjust fuzz for frame-scrolling-attr-2.html on geckoview. r=gbrown
Depends on D34725

Differential Revision: https://phabricator.services.mozilla.com/D34727

--HG--
extra : moz-landing-system : lando
2019-06-12 15:34:57 +00:00
Kartikaya Gupta
25cb12eaba Bug 1558645 - Adjust fuzz for selector-read-write-type-change-001.html on geckoview. r=gbrown
Depends on D34724

Differential Revision: https://phabricator.services.mozilla.com/D34725

--HG--
extra : moz-landing-system : lando
2019-06-12 15:35:54 +00:00
Kartikaya Gupta
93e64d8483 Bug 1558660 - Adjust fuzz for bugs/391994-1.html on geckoview. r=gbrown
Differential Revision: https://phabricator.services.mozilla.com/D34724

--HG--
extra : moz-landing-system : lando
2019-06-12 15:36:32 +00:00
Kartikaya Gupta
9671e837c3 Bug 1558607 - Allow smaller fuzz for reftest on GeckoView. r=gbrown
Differential Revision: https://phabricator.services.mozilla.com/D34604

--HG--
extra : moz-landing-system : lando
2019-06-11 21:20:22 +00:00
Kartikaya Gupta
d202cea0f0 Bug 1501582 - Increase position-dynamic-changes to a blanket fuzz. r=gbrown
The fuzziness in the position-dynamic-changes reftests seems nondeterministic.
The fuzziness annotations in the previous patch were what I got after a few
iterations of do-a-try-push-and-update-annotations, but there are still more
failures showing up in subsequent try pushes. I visually checked all the
failures and they are all just fuzzy in different places, but intermittent.
This patch updates the fuzziness annotations on these tests to the maximum
that I encountered on any test, which is (2, 1382).

I'm keeping this as a separate patch because I think it might be valuable
in version control history to have the actual numbers seen on try which
are in the previous patch.

Depends on D34538

Differential Revision: https://phabricator.services.mozilla.com/D34539

--HG--
extra : moz-landing-system : lando
2019-06-11 16:13:41 +00:00
Kartikaya Gupta
97d708b2a2 Bug 1501582 - Mark geckoview failures. r=gbrown
There are a number of failures, for which I've filed separate bugs.
And then a lot of fuzziness. I manually inspected the reftest analyzer
results on try pushes to distinguish failures vs fuzziness.

Depends on D34537

Differential Revision: https://phabricator.services.mozilla.com/D34538

--HG--
extra : moz-landing-system : lando
2019-06-11 16:12:03 +00:00
Botond Ballo
844bbdc53b Bug 1554790 - Add a reftest-resolution attribute. r=kats,hiro
Differential Revision: https://phabricator.services.mozilla.com/D32774

--HG--
extra : moz-landing-system : lando
2019-06-11 02:22:02 +00:00
Jonathan Kew
870189af7d Bug 1552121 - Reftest for suppression of auto-hyphenation in words with internal capitals. r=mats
Differential Revision: https://phabricator.services.mozilla.com/D33956

--HG--
extra : moz-landing-system : lando
2019-06-10 15:00:29 +00:00
Mihai Alexandru Michis
6c1bc67848 Backed out 3 changesets (bug 1557291, bug 1552121) for causing reftest failures in hyphenation-caps-1.html
Backed out changeset 3dd86c6f8468 (bug 1552121)
Backed out changeset c333e3fc63ca (bug 1552121)
Backed out changeset 0b09ba0356f8 (bug 1557291)
2019-06-10 14:47:58 +03:00
Jonathan Kew
4ccbc22e38 Bug 1552121 - Reftest for suppression of auto-hyphenation in words with internal capitals. r=mats
Differential Revision: https://phabricator.services.mozilla.com/D33956

--HG--
extra : moz-landing-system : lando
2019-06-10 09:38:47 +00:00
Emilio Cobos Álvarez
67c30d05d2 Bug 1557212 - Use cbindgen for gradients. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D33901

--HG--
extra : moz-landing-system : lando
2019-06-07 14:13:17 +00:00
violet
5dc50b71d1 Bug 1556713 - Transform dirtyRect down to <image> r=longsonr
aDirtyRect in PaintSVG() is in outer <svg> coordinate. Image painting
API needs dirty rect in image coordinate. We need to transform it.

Differential Revision: https://phabricator.services.mozilla.com/D33813

--HG--
extra : source : d055d72f5e77f8ffd30331ed093800e87da8151a
2019-06-06 14:54:40 +00:00
Daniel Varga
7a937f7212 Backed out changeset d055d72f5e77 (bug 1556713) for reftest failure at builds/worker/workspace/build/tests/reftest/tests/layout/reftests/position-relative/table-separate-1.html
--HG--
extra : rebase_source : 788c539876d4ecfbd8b83fe08f13076429849dbf
2019-06-07 12:05:00 +03:00
violet
fbc30b61cd Bug 1556713 - Transform dirtyRect down to <image> r=longsonr
aDirtyRect in PaintSVG() is in outer <svg> coordinate. Image painting
API needs dirty rect in image coordinate. We need to transform it.

Differential Revision: https://phabricator.services.mozilla.com/D33813

--HG--
extra : moz-landing-system : lando
2019-06-06 14:54:40 +00:00
Miko Mynttinen
6f5e91c151 Bug 1553828 - Compute intermediate bounds for transform items that do not extend 3D context r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D33724

--HG--
extra : moz-landing-system : lando
2019-06-05 20:04:08 +00:00
Noemi Erli
e6c999f792 Backed out 2 changesets (bug 1554790) for failures in reftest-resolution.html
Backed out changeset 01f72d6cc13b (bug 1554790)
Backed out changeset 3a41c4ed8bf3 (bug 1554790)
2019-06-05 23:24:26 +03:00
Daniel Holbert
df03876416 Bug 1556855 part 2: Update tests to assume that 'layout.css.prefixes.webkit' is already true. r=mats
(The pref is about to be removed, but even before its removal, it defaults to
'true' so these tests don't need to bother setting/checking it.)

Differential Revision: https://phabricator.services.mozilla.com/D33805

--HG--
extra : moz-landing-system : lando
2019-06-05 18:22:39 +00:00
Botond Ballo
cd7512d74d Bug 1554790 - Add a reftest-resolution attribute. r=kats,hiro
Differential Revision: https://phabricator.services.mozilla.com/D32774

--HG--
extra : moz-landing-system : lando
2019-06-05 01:53:45 +00:00
Jonathan Kew
d816e90844 Bug 1556991 - Remove the pref controlling WOFF2 support; it's always enabled. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D33777

--HG--
extra : moz-landing-system : lando
2019-06-05 13:47:26 +00:00
Olli Pettay
9057f12178 Bug 1556414, mark document having bidi also when bidi is only in shadow DOM, r=edgar
Differential Revision: https://phabricator.services.mozilla.com/D33625

--HG--
extra : moz-landing-system : lando
2019-06-05 12:03:29 +00:00
Daniel Holbert
d51924423e Bug 1473859: Change expectation for reftest unit-vh-vw-overflow-auto.html. rs=emilio
The "-auto" and "-scroll" variants of this test used to be expected to mismatch
("!="), but our behavior changed with stylo such that they started matching, so
it was marked as "fails !=".  But now we've decided that the post-stylo
matching behvavior is actually correct, so this patch is changing the manifest
line to "==" so that the expectation is that they match.
2019-06-04 18:08:41 -04:00
Emilio Cobos Álvarez
1e7b303431 Bug 1539469 - Make all input elements display: inline-block, for compat with other UAs. r=mats
See https://github.com/whatwg/html/issues/4082 for the data and some comments
from Boris and David.

I didn't look into fixing the font-inflation reftests, see bug 1540176 for that.

Differential Revision: https://phabricator.services.mozilla.com/D25566

--HG--
extra : moz-landing-system : lando
2019-06-04 15:39:47 +00:00
Mats Palmgren
0ba61eca7b Bug 1552357 - Improve intrinsic sizing of inlines. r=jfkthame
This is primarily to fix sizing of 'box-decoration-break:clone' inlines,
but also some 'slice' edge cases by recognizing more break opportunities,
and to improve sizing when BIDI-continuations are involved.

Differential Revision: https://phabricator.services.mozilla.com/D32915

--HG--
extra : rebase_source : 45a76e55e3eb5ac41fd60b11eb2acce24c6a1dd1
extra : amend_source : d8980854573522ddf761f0cf036aaa4ee0d96cac
2019-05-29 01:25:12 +02:00
Jonathan Kew
ca3651796b Bug 1553889 - Apply the AAT 'trak' table to macOS fonts regardless of whether we shaped using CoreText or HarfBuzz. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D32447

--HG--
extra : moz-landing-system : lando
2019-05-28 17:05:25 +00:00
Coroiu Cristina
4ddb74ac0b Backed out changeset a53e28d4e10e (bug 1553889) for reftest failures at layout/reftests/forms/input/file/dynamic-max-width.html 2019-05-28 14:52:42 +03:00
Jonathan Kew
5432231319 Bug 1553889 - Apply the AAT 'trak' table to macOS fonts regardless of whether we shaped using CoreText or HarfBuzz. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D32447

--HG--
extra : moz-landing-system : lando
2019-05-28 09:53:11 +00:00
Joel Maher
edd5fd6be2 Bug 1544460 - fix reftest annotations and enable for osx 10.14. r=jfkthame,kats
fix reftest annotations and enable for osx 10.14.

Differential Revision: https://phabricator.services.mozilla.com/D32463

--HG--
extra : moz-landing-system : lando
2019-05-24 18:01:02 +00:00
violet
13e131d652 Bug 1383650 - Support geometry property for SVG image element r=longsonr
The only different part is to resolve intrinsic image size. This patch
implements explicit requirements of the spec, but an edge case is tricky.
It's not clear per spec what the intrinsic image size is for an SVG
without explicit width/height, something like:

<svg>
  <image href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'><rect width='40' height='90' fill='red' /></svg>"/>
</svg>

Chrome treats the intrinsic size of the href svg as the default size of
a replaced element (300x150), our image/VectorImage.cpp doesn't resolve
size in this case.

We can handle this particular case in some seperate bug if necessary, I think.

Differential Revision: https://phabricator.services.mozilla.com/D32415

--HG--
extra : moz-landing-system : lando
2019-05-24 12:40:12 +00:00
Daniel Holbert
0f84d86e05 Bug 1552287 part 2: [css-contain] Adjust various reflow & baseline methods so that layout-contained frames behave as if they have no baseline. r=TYLin
We previously (in bug 1491235) adjusted some utility code to make
layout-contained frames behave as if they have no baseline.

But that's not sufficient. To make frames fully report lack-of-a-baseline,
we now do the following for layout-contained frames, as of this patch:

 (a) We now leave the ReflowOutput outparam's BlockStartAscent member at its
     default value (which is what we do for frames without a baseline like
     e.g. nsCheckboxRadioFrame and nsHTMLCanvasFrame). And if the parent cares
     about the baseline, it'll then ask directly, using a baseline getter.

 (b) We now return 'false' in more implementations of bool-returning
     baseline-getter-methods (where 'false' indicates 'no baseline').

 (c) We now return the margin-box-bottom edge, in the nscoord-returning
     'GetLogicalBaseline()' getter method. (We typically do this by deferring
     to the inherited method, which ultimately comes from nsFrame's
     implementation). It's appropriate to use the margin-box-bottom edge when
     there's no baseline, per the definition of 'vertical-align: baseline',
     here: https://drafts.csswg.org/css2/visudet.html#propdef-vertical-align

Depends on D32182

Differential Revision: https://phabricator.services.mozilla.com/D32183

--HG--
extra : moz-landing-system : lando
2019-05-24 04:46:17 +00:00
Daniel Holbert
c016e21c54 Bug 1552287 part 1: [css-contain] Fix some CSS layout-containment web-platform-tests to make their assumptions more valid. r=TYLin
In particular:

- In contain-layout-suppress-baseline-002.html, the test currently indirectly
  relies on the 50px-tall-canvas being the tallest thing in each flex
  container. This isn't robustly true (and in fact on windows, the textarea is
  taller at 50.8px tall). So I'm adjusting this test so that it no longer has a
  hardcoded flex container size and no longer depends on this.

- In contain-layout-baseline-005.html and its reference case, we need to
  explicitly specify 'vertical-align:baseline' to test baseline-alignment,
  because some of its tested form controls have other UA-stylesheet-provided
  default values of 'vertical-align'.
  (e.g. <select multiple> defaults to 'vertical-align:text-bottom")

- Also: in that same test, we need to reduce the width of the an <input>
  textfield -- otherwise, it and the other elements on its line may not fit and
  may linewrap, which prevents us from effectively testing baseline-alignment
  on the linewrapped element.

- In contain-layout-button-001.html, the expectation was not correct. Before
  this patch, the test expects that a layout-contained button will have the
  same baseline as an empty button, and that's an invalid expectation. An empty
  button uses a point inside of its content-box as its baseline, whereas a
  layout-contained element *has no baseline*, which means that it does
  'vertical-align:baseline' alignment by aligning its own margin-bottom edge
  with the parent's baseline, per
  https://drafts.csswg.org/css2/visudet.html#propdef-vertical-align
  So, I'm amending the test to have this expectation and updating its meta tags
  to reference the updated expectation and with a reference to that spec text.

Firefox fails the amended contain-layout-button-001.html test, so this patch
adds a .ini file to reflect that failure.  The next patch in this series will
fix our implementation to make us pass the test, and will remove the .ini file.

Chrome also fails the amended contain-layout-button-001.html tests, and I filed
https://bugs.chromium.org/p/chromium/issues/detail?id=965740 on them with an
explanation.

Differential Revision: https://phabricator.services.mozilla.com/D32182

--HG--
extra : moz-landing-system : lando
2019-05-24 04:46:07 +00:00
Andreea Pavel
9ea3c5f4bf Backed out 2 changesets (bug 1552287) for failing contain-layout-suppress-baseline-002.html on a CLOSED TREE
Backed out changeset 815c6657d164 (bug 1552287)
Backed out changeset 888c32d2a32e (bug 1552287)
2019-05-24 03:34:03 +03:00
Daniel Holbert
b15f05575d Bug 1552287 part 2: [css-contain] Adjust various reflow & baseline methods so that layout-contained frames behave as if they have no baseline. r=TYLin
We previously (in bug 1491235) adjusted some utility code to make
layout-contained frames behave as if they have no baseline.

But that's not sufficient. To make frames fully report lack-of-a-baseline,
we now do the following for layout-contained frames, as of this patch:

 (a) We now leave the ReflowOutput outparam's BlockStartAscent member at its
     default value (which is what we do for frames without a baseline like
     e.g. nsCheckboxRadioFrame and nsHTMLCanvasFrame). And if the parent cares
     about the baseline, it'll then ask directly, using a baseline getter.

 (b) We now return 'false' in more implementations of bool-returning
     baseline-getter-methods (where 'false' indicates 'no baseline').

 (c) We now return the margin-box-bottom edge, in the nscoord-returning
     'GetLogicalBaseline()' getter method. (We typically do this by deferring
     to the inherited method, which ultimately comes from nsFrame's
     implementation). It's appropriate to use the margin-box-bottom edge when
     there's no baseline, per the definition of 'vertical-align: baseline',
     here: https://drafts.csswg.org/css2/visudet.html#propdef-vertical-align

Depends on D32182

Differential Revision: https://phabricator.services.mozilla.com/D32183

--HG--
extra : moz-landing-system : lando
2019-05-23 21:41:35 +00:00
Hiroyuki Ikezoe
d243910c35 Bug 1550105 - Implement the parser for scale values in viewport meta tag as what the spec defines. r=botond
The relevant definition in the spec;
 https://drafts.csswg.org/css-device-adapt/#min-scale-max-scale

Before this change, if both of initial-scale and maximum-scale are negative,
both values are clamped to 0.25. Whereas with this change, negative scale
values are treated as if it's not specified so that initial-scale value is
automatically calculated based on the layout viewport size.
negative-initial-and-maximum-scale.html is a test case for the case.

Also with this change, initial-scale values are going to be clamped to the
range [0.25, 10] during parsing it so that initial-scale-0.html and
initial-scale-100.html need to be modified, now the former is scaled by 0.25x,
the latter is scaled by 10x.
(Before this change, initial-scale=0 and initial-scale=100 were treated as
 invalid scale values in nsViewportInfo::ConstrainViewportValues[1])

[1] https://searchfox.org/mozilla-central/rev/6c9f60f8cc064a1005cd8141ecd526578ae9da7a/dom/base/nsViewportInfo.cpp#15,19

Differential Revision: https://phabricator.services.mozilla.com/D32098

--HG--
extra : moz-landing-system : lando
2019-05-23 06:35:52 +00:00
Glenn Watson
0f8cee5dd5 Bug 1552984 - Refactor parts of the WR batching and flattening code, to support future picture caching improvements. r=kvark
This patch contains two isolated changes related to upcoming picture
caching improvements. Specifically:

 * Determine the blit reason for stacking contexts with clips
   earlier, during scene building. This simplifies the code and
   allows better detection of redundant stacking contexts.
 * Centralize the code for pushing batch instances into a small
   number of places. This will simplify the switch to adding
   a single primitive to multiple batch lists, in the case of
   dirty regions with different batchers.

Differential Revision: https://phabricator.services.mozilla.com/D31898

--HG--
extra : moz-landing-system : lando
2019-05-22 14:57:10 +00:00
Miko Mynttinen
a89d7cedff Bug 1552789 - Check NS_FRAME_FORCE_DISPLAY_LIST_DESCEND_INTO flag for every line r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D31865

--HG--
extra : moz-landing-system : lando
2019-05-20 22:54:18 +00:00
violet
f30d87431e Bug 1383650 - Add reftest for rect, circle, ellipse and foreignObject r=longsonr
Differential Revision: https://phabricator.services.mozilla.com/D30807

--HG--
extra : moz-landing-system : lando
2019-05-16 13:21:22 +00:00
Matt Woodrow
42c9b79f0b Bug 1544995 - Always update overflow areas up to the preserve-3d root. r=dbaron
We don't store post-transform overflow areas for frames within preserve-3d, but we do store pre-transform overflow areas.
Rather than just recomputing the changed overflow for the root, we should recompute overflows for all ancestors up to the 3d root.

Differential Revision: https://phabricator.services.mozilla.com/D31213

--HG--
extra : moz-landing-system : lando
2019-05-19 22:39:58 +00:00
Matt Woodrow
dfc3175e1c Bug 1409114 - Part 10: Make sure we build display items for table parts where only the normal position is visible, since we may need to create background items for ancestors at that position. r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D29447

--HG--
extra : moz-landing-system : lando
2019-05-20 23:16:39 +00:00
Matt Woodrow
9f39c7b608 Bug 1409114 - Part 8: Create column and column group background display items as part of the cell's BuildDisplayList. r=dbaron
This is the main performance improvement, and means that we no longer have to iterate all the cells for each column.

It has a couple of behaviour changes:

The first is that we no longer apply stacking context effects (like opacity) to column and column group backgrounds.
I believe this is correct as per both CSS2.1 Appendix E, and css-tables-3 (quoted in nsTableColFrame::BuildDisplayList).
This matches the behaviour of blink and WebKit.

We also previously created items in column,row ordering, whereas now they will be in row,column. In cases where two cells
overlap (using rowspan and colspan to extend multiple neighbours in to the same place) this can render backgrounds in a
different order, but the new behaviour matches blink and WebKit.

Differential Revision: https://phabricator.services.mozilla.com/D29280

--HG--
extra : moz-landing-system : lando
2019-05-20 23:16:09 +00:00
Matt Woodrow
8bf47621c6 Bug 1409114 - Part 6: Store column and column group backgrounds separately, and then append then before the rest of the table contents. r=dbaron
This also changes behaviour a bit, previously we interleaved column and column group backgrounds. where we now put all the column group backgrounds behind all columns.
I believe this is the correct ordering as per CSS2.2 Appendix E.

Column backgrounds can overlap when using 'span', and we now render this in a different order, but this matches what other browsers do.

Differential Revision: https://phabricator.services.mozilla.com/D29278

--HG--
extra : moz-landing-system : lando
2019-05-20 23:15:39 +00:00
Jonathan Kew
e0b346b916 Bug 1359240 - Reftest for SVG-in-OT font using gzip-compressed SVG glyph documents. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D31108

--HG--
extra : moz-landing-system : lando
2019-05-20 21:01:28 +00:00