Граф коммитов

62066 Коммитов

Автор SHA1 Сообщение Дата
Glenn Watson 9a83835d67 Bug 1749380 - Part 1 - Improve how WR handles bounding rects for off-screen surfaces r=gfx-reviewers
This patch introduces a number of subtle but important changes
to how we deal with off-screen surfaces. The overall goals are:

 - Improve rendering correctness in a number of edge cases.
 - Begin reducing complexity related to surfaces, scaling
   factors, surface size adjustments and clipping.
 - Improve CPU performance by removing some per-primitive work.
 - Simplify implementation of future SVG and CSS filters by
   having explicit support for picture rects + inflation regions.
 - Lay the groundwork for caching child picture surfaces,
   reduction of per-primitive work during visibility pass,
   simplifying picture code.

Unfortunately, the nature of the changes make it impossible to
split up in to small isolated patches. Details below:

* Introduce `LocalRectKind` concept. This allows us to separate
  out the bounding rect of the surface (a group of primitives
  backed by a texture) from the bounding rect of the picture
  compositing that surface (e.g. a drop-shadow which draws the
  surface once at the local origin and once at a specific offset
  + blur-radius). This fixes a number of correctness bugs we have
  related to culling, clipping, invalidation regions of complex
  primitives such as drop-shadows and blur filters. Importantly,
  it makes it simpler to implement (or fix) SVG filter chains,
  backdrop-filter implementations.

* Establish raster roots for all off-screen surfaces. Every off-screen
  surface uses the spatial node of the enclosing stacking context as
  a coordinate system root, ensuring that each off-screen surface is
  drawn in a 2D coordinate system, with appropriate scaling factors
  applied to ensure high quality rendering. The primary goal is to make
  it possible to correctly inflate and clip off-screen surfaces, removing
  some correctness issues we currently have with complex filters interacting
  with transforms. The initial work here doesn't reduce complexity a huge
  amount, but will allow us to simplify large parts of the picture/surface
  handling code in future, as well as simplify a number of shaders that
  currently must handle arbitrarily complex transform matrices. This will
  also allow us to simplify the implementation of features such as
  mix-blend-mode and backdrop-filter, which rely on readback and UV mapping
  from the parent surface.

* Remove concepts of `estimated` and `precise` local rects for pictures. This
  is both a performance optimization and a code simplification. Instead, we
  only determine the estimated local rect during bounding rect propagation,
  and rely on the clipping regions from the tile dirty regions to reduce which
  parts of the picture we allocate if drawing to an off-screen surface. This
  removes some per-primitive work during the visibility pass, and also means
  we can rely on the final picture bounding rect from the start of the visibility
  pass. This also removes much of the complexity in `take_context` where we
  previously determined surface scale factors and device pixel ratio - instead
  these can be determined earlier during `propagate_bounding_rects`.

* Remove some complexity in `update_prim_visibility`. This is still recursive,
  but follow up patches will aim to remove this recursion and integrate this
  pass with the picture graph (similar to how `propagate_bounding_rects` works).

* Remove `PictureOptions` struct. Instead, store `inflate_if_required` with
  the Blur filter enum, which is the only place that uses it.

* Remove `root_scaling_factor` from text runs - this is handled implicitly
  by the surface device-pixel scale.

* Skip calling `update_clip_task` for pass-through pictures (since they have
  no defined local rect).

* Improve scaling factors used for determining the render task cache size for
  complex line decorations.

Differential Revision: https://phabricator.services.mozilla.com/D137569
2022-02-23 20:49:26 +00:00
Shane Caraveo 256cdcb8e1 Bug 1756827 validate add_task properties r=jmaher,rpl
Differential Revision: https://phabricator.services.mozilla.com/D139495
2022-02-23 18:22:32 +00:00
Kash Shampur 3bd2b256cf Bug 1756212 - Disable netflix temporarily due to perma on macOS r=perftest-reviewers,sparky
Differential Revision: https://phabricator.services.mozilla.com/D139406
2022-02-23 18:21:22 +00:00
Jeff Muizelaar adafdb308e Bug 1756197. Avoid clipping if we're just going to fill the path. r=gfx-reviewers,nical
This avoids having to rasterize the path twice. Once for the clip path and once for
the fill. It will also give us correct antialiasing on the edges.

Differential Revision: https://phabricator.services.mozilla.com/D139137
2022-02-23 16:19:07 +00:00
Kash Shampur 39f08c877a Bug 1754782 - Run benchmark and mobile performance tests against mozilla-release r=perftest-reviewers,sparky
Differential Revision: https://phabricator.services.mozilla.com/D138570
2022-02-23 14:32:52 +00:00
Iulian Moraru d560dc397b Backed out changeset f3359063687e (bug 1754955) for causing multiple wpt failures. CLOSED TREE 2022-02-23 07:12:23 +02:00
Benjamin VanderSloot 298f7fa8ba Bug 1754955 - Enable dFPI for web platform test in Nightly, r=pbz
Differential Revision: https://phabricator.services.mozilla.com/D139393
2022-02-23 01:10:07 +00:00
Andrew Osmond 2b3173f0d2 Bug 1756687 - Fix OffscreenCanvas::ConvertToBlob and WPT tests. r=gfx-reviewers,bradwerth
We should throw when the OffscreenCanvas is empty, and we should ignore
the quality parameter for image encoders that do not support it.

Differential Revision: https://phabricator.services.mozilla.com/D139425
2022-02-22 22:52:40 +00:00
Andrew Osmond 5f8b07ff0f Bug 1756186 - Fix Canvas2D CreatePattern and DrawImage with no context OffscreenCanvas. r=lsalzman
This patch ensures we return an empty surface as per the spec when
the OffscreenCanvas passed into CreatePattern and DrawImage has no
context bound to it.

Differential Revision: https://phabricator.services.mozilla.com/D139127
2022-02-22 21:16:16 +00:00
Iulian Moraru 1122860dcd Backed out changeset 5af6bcf27934 (bug 1754955) for causing wpt failures on partitioned-service-worker-claim.tentative.https.html. CLOSED TREE 2022-02-22 20:23:05 +02:00
Benjamin VanderSloot a99d868f10 Bug 1754955 - Enable dFPI for web platform test in Nightly, r=pbz
Differential Revision: https://phabricator.services.mozilla.com/D139393
2022-02-22 16:35:43 +00:00
Thomas Wisniewski 63a894804d Bug 1756051 - add more site intervention tests; r=denschub
Differential Revision: https://phabricator.services.mozilla.com/D139080
2022-02-22 15:59:02 +00:00
Jens Stutte c429e98c17 Bug 1425175: Re-enable skip-waiting-using-registration.https.html on linux and windows. r=dom-worker-reviewers,janv
Differential Revision: https://phabricator.services.mozilla.com/D139383
2022-02-22 15:11:29 +00:00
Sebastian Hengst 8673dcf418 Bug 1725906 - adjust expectation for midi-reporting.https.html on Android
This bug enabled WebMidi and Android expectations have to be different like for
tests in the webmidi folder.
2022-02-22 12:17:52 +01:00
Andreea Pavel a71024830b Bug 1746958 - disable sw.https.window.html on win10_2004 to reduce failure rate r=aryx DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D139348
2022-02-22 09:19:10 +00:00
Gabriele Svelto 75390b7d30 Bug 1752906 - Enable WebMIDI r=bholley
This also adjusts our mochitests so that they know we're exposing the WebMIDI
objects publicly, modifies the way permissions are granted and adjusts our
web platform tests to account for known failures.

Differential Revision: https://phabricator.services.mozilla.com/D137486
2022-02-21 21:11:12 +00:00
Andreu Botella fc71dac9e3 Bug 1751656 - Test non-USV filenames in form submission. r=smaug
Spec issue: https://github.com/whatwg/html/issues/7413

Differential Revision: https://phabricator.services.mozilla.com/D137284
2022-02-21 16:00:51 +00:00
Nicolas Silva a7f5f3a538 Bug 1754829 - Detect when an SVG path is a Rectangle. r=gfx-reviewers,mstange
This patch doesn't attempt to cache the result. I don't know if it will cause regressions in practice.

Differential Revision: https://phabricator.services.mozilla.com/D138465
2022-02-21 13:35:44 +00:00
Norisz Fay 1f8b510aef Merge mozilla-central to autoland. CLOSED TREE 2022-02-21 11:45:54 +02:00
Norisz Fay e580b1098c Merge autoland to mozilla-central. a=merge 2022-02-21 11:39:24 +02:00
Norisz Fay 44a6c895e2 Backed out 3 changesets (bug 1749380) for causing webrender crashes a=backout DONTBUILD
Backed out changeset 1762adb371d4 (bug 1749380)
Backed out changeset 2b42abbdb0df (bug 1749380)
Backed out changeset 9fa6f71111d0 (bug 1749380)
2022-02-21 11:35:49 +02:00
Alex Ionescu 4f07163ef9 Bug 1749967 - Automated recording for android r=perftest-reviewers,sparky
Differential Revision: https://phabricator.services.mozilla.com/D135891
2022-02-21 07:32:13 +00:00
Masayuki Nakano 9874524dd5 Bug 1755104 - Make `EditorEventListener::Focus` check whether the event target still has focus even after flushing the pending things r=m_kato
When the `focus` event listener of editors which is in the system group runs,
a preceding `focus` event listener may have already blurred the focused element,
but it may have not been applied to the DOM tree yet.  In this case, checking
whether the editor still has focus or has already blurred without flushing the
pending things does not make sense.  Therefore, this patch makes the `Focus`
do it first.

Note that this patch adds 3 crash tests, but only the `<textarea>` case crashes
without this patch.  The others are only for detecting new regressions.

Differential Revision: https://phabricator.services.mozilla.com/D139089
2022-02-21 01:04:43 +00:00
Glenn Watson 4ef4327873 Bug 1749380 - Part 1 - Improve how WR handles bounding rects for off-screen surfaces r=gfx-reviewers
This patch introduces a number of subtle but important changes
to how we deal with off-screen surfaces. The overall goals are:

 - Improve rendering correctness in a number of edge cases.
 - Begin reducing complexity related to surfaces, scaling
   factors, surface size adjustments and clipping.
 - Improve CPU performance by removing some per-primitive work.
 - Simplify implementation of future SVG and CSS filters by
   having explicit support for picture rects + inflation regions.
 - Lay the groundwork for caching child picture surfaces,
   reduction of per-primitive work during visibility pass,
   simplifying picture code.

Unfortunately, the nature of the changes make it impossible to
split up in to small isolated patches. Details below:

* Introduce `LocalRectKind` concept. This allows us to separate
  out the bounding rect of the surface (a group of primitives
  backed by a texture) from the bounding rect of the picture
  compositing that surface (e.g. a drop-shadow which draws the
  surface once at the local origin and once at a specific offset
  + blur-radius). This fixes a number of correctness bugs we have
  related to culling, clipping, invalidation regions of complex
  primitives such as drop-shadows and blur filters. Importantly,
  it makes it simpler to implement (or fix) SVG filter chains,
  backdrop-filter implementations.

* Establish raster roots for all off-screen surfaces. Every off-screen
  surface uses the spatial node of the enclosing stacking context as
  a coordinate system root, ensuring that each off-screen surface is
  drawn in a 2D coordinate system, with appropriate scaling factors
  applied to ensure high quality rendering. The primary goal is to make
  it possible to correctly inflate and clip off-screen surfaces, removing
  some correctness issues we currently have with complex filters interacting
  with transforms. The initial work here doesn't reduce complexity a huge
  amount, but will allow us to simplify large parts of the picture/surface
  handling code in future, as well as simplify a number of shaders that
  currently must handle arbitrarily complex transform matrices. This will
  also allow us to simplify the implementation of features such as
  mix-blend-mode and backdrop-filter, which rely on readback and UV mapping
  from the parent surface.

* Remove concepts of `estimated` and `precise` local rects for pictures. This
  is both a performance optimization and a code simplification. Instead, we
  only determine the estimated local rect during bounding rect propagation,
  and rely on the clipping regions from the tile dirty regions to reduce which
  parts of the picture we allocate if drawing to an off-screen surface. This
  removes some per-primitive work during the visibility pass, and also means
  we can rely on the final picture bounding rect from the start of the visibility
  pass. This also removes much of the complexity in `take_context` where we
  previously determined surface scale factors and device pixel ratio - instead
  these can be determined earlier during `propagate_bounding_rects`.

* Remove some complexity in `update_prim_visibility`. This is still recursive,
  but follow up patches will aim to remove this recursion and integrate this
  pass with the picture graph (similar to how `propagate_bounding_rects` works).

* Remove `PictureOptions` struct. Instead, store `inflate_if_required` with
  the Blur filter enum, which is the only place that uses it.

* Remove `root_scaling_factor` from text runs - this is handled implicitly
  by the surface device-pixel scale.

* Skip calling `update_clip_task` for pass-through pictures (since they have
  no defined local rect).

* Improve scaling factors used for determining the render task cache size for
  complex line decorations.

Differential Revision: https://phabricator.services.mozilla.com/D137569
2022-02-20 18:56:54 +00:00
Shane Caraveo 028c447051 Bug 1753308 fix extension startup in tests, remove delayed startup pref r=rpl,robwu
Differential Revision: https://phabricator.services.mozilla.com/D137699
2022-02-19 15:52:26 +00:00
Ting-Yu Lin 9d246f9175 Bug 1693616 - Add wpt reftest and crashtests for box-decoration-break:clone. r=dholbert
The hang during reflow is fixed by bug 1754598.

`firefox-bug1693616-001-crash.html` and `firefox-bug1693616-002-crash.html` are
adapted from bug 1693616 testcase 4 and 5, respectively.

WARNING: All the tests added in patch can hang the Firefox builds without the
patch in bug 1754598.

Differential Revision: https://phabricator.services.mozilla.com/D138968
2022-02-19 02:15:56 +00:00
Ting-Yu Lin 5338d4d3a8 Bug 1754598 Part 2 - Fix block frame's block-size and reflow status in ComputeFinalBSize(). r=dholbert
The code at the end of ComputeFinalBSize() does not handle
"box-decoration-break:clone" and the cases where the block frame's reflow status
can change from incomplete to complete. This patch is an attempt to fix all the
possible scenarios.

Differential Revision: https://phabricator.services.mozilla.com/D138967
2022-02-19 02:15:56 +00:00
Marian-Vasile Laza 25f243e178 Backed out 2 changesets (bug 1756197) for causing reftest failures on clip-path-polygon-013.html. CLOSED TREE
Backed out changeset 63f54f50c32d (bug 1756197)
Backed out changeset 0886d48d6a83 (bug 1756197)
2022-02-19 03:18:39 +02:00
Tom Schuster 8d966fc0ff Bug 1756188 - Fix JS streams WPT failures. r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D139160
2022-02-18 22:20:18 +00:00
Jeff Muizelaar fe9ff9b4dd Bug 1756197. Avoid clipping if we're just going to fill the path. r=gfx-reviewers,nical
This avoids having to rasterize the path twice. Once for the clip path and once for
the fill. It will also give us correct antialiasing on the edges.

Differential Revision: https://phabricator.services.mozilla.com/D139137
2022-02-18 22:04:43 +00:00
Marian-Vasile Laza 3a6e4dd015 Backed out changeset 89189f198494 (bug 1756188) for causing wpt failures on patched-global.any.sharedworker.html. CLOSED TREE 2022-02-19 00:05:33 +02:00
Tom Schuster cf835d3cee Bug 1756188 - Fix JS streams WPT failures. r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D139160
2022-02-18 21:16:18 +00:00
Narcis Beleuzu 145cf11df1 Backed out changeset 465b14796810 (bug 1752906) for wpt failures on idlharness.https.window.html . CLOSED TREE 2022-02-18 22:29:59 +02:00
Gabriele Svelto c5431a3251 Bug 1752906 - Enable WebMIDI r=bholley
This also adjusts our mochitests so that they know we're exposing the WebMIDI
objects publicly, modifies the way permissions are granted and adjusts our
web platform tests to account for known failures.

Differential Revision: https://phabricator.services.mozilla.com/D137486
2022-02-18 19:04:09 +00:00
Henrik Skupin 1f65295971 Bug 1725622 - [mozdevice-rust] Add support for pulling a directory from the device. r=webdriver-reviewers,jgraham
Differential Revision: https://phabricator.services.mozilla.com/D137786
2022-02-18 17:23:27 +00:00
Henrik Skupin f65019441a Bug 1725622 - [mozdevice-rust] Add support for listing directories. r=webdriver-reviewers,jgraham
Differential Revision: https://phabricator.services.mozilla.com/D131012
2022-02-18 17:23:26 +00:00
Henrik Skupin 7140d991f8 Bug 1725622 - [mozdevice-rust] Add support for pulling files from the device. r=webdriver-reviewers,jgraham
Differential Revision: https://phabricator.services.mozilla.com/D131011
2022-02-18 17:23:26 +00:00
Henrik Skupin 229d0f4f35 Bug 1725622 - [mozdevice-rust] Use external storage directory as root for unit tests. r=webdriver-reviewers,jgraham
Differential Revision: https://phabricator.services.mozilla.com/D137785
2022-02-18 17:23:26 +00:00
Mitchell Hentges 8d5bcd86f6 Bug 1732795: Resolve upcoming pytest deprecations r=webdriver-reviewers,ahal,whimboo
Following the pytest "deprecations and removals" docs [1], this patch:
* Replaces `@pytest.yield_fixture` with `@pytest.fixture`.
* Replaces `.funcargnames` with `.fixturenames`.
* Uses `Pathlib` parameter instead of the `py.path.local` one in
  associated `pytest_*` hooks.
* Replaces `--strict` with `--strict-markers`

[1] https://docs.pytest.org/en/latest/deprecations.html

Differential Revision: https://phabricator.services.mozilla.com/D138815
2022-02-18 14:27:18 +00:00
Tom Schuster 7e06e476d4 Bug 1734241 - Implement ReadableStream.pipeTo. r=smaug,mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D135448
2022-02-18 10:30:15 +00:00
Iulian Moraru 9807ab4555 Backed out changeset 21d7dfa0dfee (bug 1734241) for causing bp-hybrid bustages on ReadableStreamPipeTo.cpp. CLOSED TREE 2022-02-18 02:51:13 +02:00
Tom Schuster df8616f118 Bug 1734241 - Implement ReadableStream.pipeTo. r=smaug,mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D135448
2022-02-17 21:49:43 +00:00
Sam Foster bcf56dfb63 Bug 1721229 - Remove the WebPayments UI code from the tree. r=MattN,desktop-theme-reviewers,edenchuang,dao
* Remove the contents of the browser/components/payments directory
* Excepting the nsIPaymentUIService implementation and its component registration - to allow the /feature-policy/payment-allowed-by-feature-policy* tests to continue to run and pass
* Update docs index to remove the web payments UI source docs
* Remove residual rules from browser CSS
* Remove references from the static analysis tests

Differential Revision: https://phabricator.services.mozilla.com/D127329
2022-02-17 20:32:13 +00:00
mcheang 9e18125789 Bug 1755996 - Add pref for removal of search engine infobar. r=Standard8
Differential Revision: https://phabricator.services.mozilla.com/D139044
2022-02-17 20:17:23 +00:00
Sergey Galich 2924bdb35f Bug 1653486 - Replace all non-user-facing references to "master" password. r=dimi,tgiles,preferences-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D138113
2022-02-17 17:29:57 +00:00
Cristian Tuns da203d126f Backed out changeset a0cf41898cf6 (bug 1754829) for causing hybrid bustages on SVGPathSegUtils.cpp CLOSED TREE 2022-02-17 11:59:24 -05:00
Mitchell Hentges e8a78d6118 Bug 1755088: Replace all usages of unittest deprecated aliases r=webdriver-reviewers,ahal,whimboo
There's some unittest-related functions that we heavily lean on
that are deprecated:
https://docs.python.org/3/library/unittest.html#deprecated-aliases

This is a big find-and-replace that was restricted based on files that
matched the pattern `*test*.py` and that weren't in any of the paths
listed in `tools/rewriting/ThirdPartyPaths.txt`.

Differential Revision: https://phabricator.services.mozilla.com/D138608
2022-02-17 15:21:41 +00:00
Nicolas Silva b0e5f60303 Bug 1754829 - Detect when an SVG path is a Rectangle. r=gfx-reviewers,mstange
This patch doesn't attempt to cache the result. I don't know if it will cause regressions in practice.

Differential Revision: https://phabricator.services.mozilla.com/D138465
2022-02-17 13:53:43 +00:00
Henri Sivonen 2fd5af8ef4 Bug 1736570 - Avoid DocumentChannel for nsParser-created initial about:blank replacement. r=nika,smaug
Differential Revision: https://phabricator.services.mozilla.com/D135106
2022-02-17 13:27:15 +00:00
Tim Huang 88e2bf4f4b Bug 1754814 - Enable dFPI for mochitets on Nightly. r=anti-tracking-reviewers,bvandersloot
Differential Revision: https://phabricator.services.mozilla.com/D138521
2022-02-17 12:16:36 +00:00