Commit Graph

70662 Commits

Author SHA1 Message Date
Nicolas Silva
f35db66138 Bug 1587713 - Avoid layerizing very large blobs due to animated transforms. r=jrmuizel
When blobs were lazily rasterized it was relatively cheap to create very large blob layers. Now that we move to pre-rasetrizing all blob tiles during scene building, large blob layers cause excessive memory allocation and CPU usage.

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

--HG--
extra : moz-landing-system : lando
2019-11-04 14:55:40 +00:00
Jan Horak
3f10c3b905 Bug 1589601 - Return the fallback to primary monitor on Wayland to not break PIP; r=stransky
Differential Revision: https://phabricator.services.mozilla.com/D51600

--HG--
extra : moz-landing-system : lando
2019-11-05 08:14:18 +00:00
Jan de Mooij
96cc0b5247 Bug 1579367 - Initialize XPCJSContext explicitly, after loading user prefs. r=kmag
This way we get the correct values for start-up prefs in the parent process.

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

--HG--
extra : moz-landing-system : lando
2019-11-05 06:29:13 +00:00
Geoff Brown
f7081f87f0 Bug 1575266 - Explicitly close reftest log file before quitting application; r=ahal
A speculative fix for intermittent android reftest failures in which the reftest log file
is incomplete but the missing logging is found in the logcat: I hope that closing the
log file explicitly will ensure logging is flushed before the application quits.

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

--HG--
extra : moz-landing-system : lando
2019-11-04 22:45:48 +00:00
Glenn Watson
99449afeab Bug 1593615 - Update annotations for android fuzziness. r=ktaeleman
Differential Revision: https://phabricator.services.mozilla.com/D51711

--HG--
extra : moz-landing-system : lando
2019-11-04 21:08:27 +00:00
Timothy Nikkel
c6fc2ec62c Bug 1593171. Protect against the same test from calling RecordResult more than once in the reftest harness. r=mattwoodrow
Some crashtests call window.location.reload one or more times. Each time the test document loads we call OnDocumentLoad, and each call of that function can lead to a RecordResult call, either directly or indirectly through WaitForTestEnd and its MakeProgress state machine.

Although the error when this happens ("program error managing timeouts") is confusing I found a couple intermittent instances of this happening in our bugzilla.

However with the fission changes to the reftest harness (which in general make things more async) this is much more common because we keep the tests alive longer before tearing down the test page, giving it more of a chance to happen.

To fix it we pass around the top level test url so it can make its way to RecordResult. This means we can ignore RecordResult calls for previous tests, and ignore the second or more RecordResult call for the current test. We reset the count when we start a new test.

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

--HG--
extra : moz-landing-system : lando
2019-11-04 19:48:58 +00:00
Jonathan Watt
db9b9ed1af Bug 1593793. Move and rename nsPrintData::mBrandName to nsPrintJob::mFallbackDocTitle. r=bobowen
nsPrintData::mBrandName never changes over the lifetime of a Firefox instance.
It is wasteful to have nsPrintData obtain and store it, since we can replace
an nsPrintJob's nsPrintData object multiple times over the lifetime of the
nsPrintJob and nsPrintJob is the only consumer.

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

--HG--
extra : moz-landing-system : lando
2019-11-04 20:02:03 +00:00
Csoregi Natalia
d6c49cdf76 Backed out changeset e75d9dbb4853 (bug 1590550) for reftest failures on contain-paint-clip-001.html . CLOSED TREE 2019-11-04 23:38:56 +02:00
Emilio Cobos Álvarez
eb96434317 Bug 1590550 - Don't do the "simple display list" optimization when we have overflow clips. r=mattwoodrow
The previous code tried to do it, but it did it wrongly, as the overflow clip
comes from the parent, not the child.

Thus when we change a style that influences it, we weren't invalidating the
SIMPLE_DISPLAY_LIST bit, and such.

Make the reftest that caught this fail more reliable.

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

--HG--
extra : moz-landing-system : lando
2019-11-04 19:30:24 +00:00
Emilio Cobos Álvarez
a57fd16889 Bug 1506842 - Always restyle / repaint when a visited query finishes. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D50810

--HG--
extra : moz-landing-system : lando
2019-11-04 16:55:33 +00:00
Alex Catarineu
08a431f34e Bug 1581537 - Avoid several browser language leaks r=smaug
Spoof dom/dom.properties, layout/xmlparser.properties,
layout/MediaDocument.properties to en-US if needed.

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

--HG--
extra : moz-landing-system : lando
2019-11-04 16:56:27 +00:00
Mihai Alexandru Michis
d19c1272ca Backed out changeset 1d87c269da8a (bug 1581537) for causing bc failures in browser_misused_characters_in_strings.js CLOSED TREE
--HG--
extra : rebase_source : b9f2da6650a4213a4a9284d6dbe7ecfd97761501
extra : amend_source : b7ca833a091419a2de5904eccb2d3ce9d0fcd337
2019-11-04 16:06:37 +02:00
Alex Catarineu
ea206b140d Bug 1581537 - Avoid several browser language leaks r=smaug
Spoof dom/dom.properties, layout/xmlparser.properties,
layout/MediaDocument.properties to en-US if needed.

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

--HG--
extra : moz-landing-system : lando
2019-11-04 11:27:59 +00:00
Brian Hackett
c6cedf4eac Bug 1575657 - Always create record/replay checkpoints when painting, r=mstange.
Differential Revision: https://phabricator.services.mozilla.com/D46244

--HG--
extra : moz-landing-system : lando
2019-11-03 12:22:20 +00:00
Masayuki Nakano
129b58687c Bug 1588745 - part 6: Post processing of setting value with TextEditor should be done before dispatching "input" event r=Ehsan
Currently, "input" event is fired when the `AutoScriptBlocker` in `SetValue()`
is deleted.  So, for keeping same behavior, the post processing after calling
`TextEditor` methods should be done before editor dispatches "input" event.

Fortunately, `TextInputListener::OnEditActionHandled()` is a good chance to
do that.  Therefore, this patch makes it notify `TextControlState` and
`AutoTextControlHandlingState`.

Note that ideally, each method of `TextEditor` should return
`NS_ERROR_OUT_OF_MEMORY` coming from
`AutoTextControlHandlingState::OnEditActionHandled()`.  However, it requires
a lot of changes in editor classes, and the case is really rare since editor
does not use fallible allocation.  Therefore, it must be okay to crash in
editor if `OnEditActionHandled()` returns `NS_ERROR_OUT_OF_MEMORY`.

Depends on D51395

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

--HG--
extra : moz-landing-system : lando
2019-11-03 02:50:00 +00:00
Masayuki Nakano
91b4aa6851 Bug 1588745 - part 1: Rename nsTextEditorState to mozilla::TextControlState r=Ehsan
It should be in `mozilla` namespace and it manages not only `TextEditor`,
manages selection, selection controller and callback from editor. so that
I think it stores state of "text control widget". Therefore, I name it to
`TextControlState`.

And cleaning up the cpp file.

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

--HG--
rename : dom/html/nsTextEditorState.cpp => dom/html/TextControlState.cpp
rename : dom/html/nsTextEditorState.h => dom/html/TextControlState.h
extra : moz-landing-system : lando
2019-11-01 20:43:11 +00:00
Glenn Watson
3de743de9b Bug 1592417 - Reduce work done when picture cache tiles are inside the display port but not currently visible. r=nical
Previously, WR needed to update and track dependencies for all
allocated picture cache tiles in the virtual display port. This
means doing extra CPU work (dependency updates) and in some cases,
extra GPU work (larger off-screen child surfaces) than are strictly
required.

With this patch, each tile determines if it is currently visible in
pre_update. If the tile isn't visible, we skip doing dependency
updates until it is on screen again. More importantly, this is
used to reduce the world culling rect for primitive preparation,
which also means large child surfaces only require allocations
large enough to enclose the visible tiles, rather than the
display port.

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

--HG--
extra : moz-landing-system : lando
2019-11-03 03:38:57 +00:00
Sam Mauldin
16993481ab Bug 1592389 - Rename Mozfield / Mozfieldtext to Field and Fieldtext r=emilio
Split off of Bug 1590894
Rename these to support unprefixed version
Also add alias to keep compatibility

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

--HG--
extra : moz-landing-system : lando
2019-11-02 21:28:49 +00:00
Ting-Yu Lin
df35f07d16 Bug 1526268 Part 3 - Disable APZ if AccessibleCaret is in position:fixed subtree or its position is changed. r=botond,mats
In common cases where the caret is in a position:static frame subtree,
the caret's position (relative to canvas frame's custom content
container) should not be changed during scrolling.

However, when the caret is in a position:fixed or "stuck"
position:sticky frame subtree, the caret's position will change during
scrolling. We need to disable APZ to avoid jumpy carets.

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

--HG--
extra : moz-landing-system : lando
2019-11-02 03:05:28 +00:00
Ting-Yu Lin
742cd4bddc Bug 1526268 Part 2 - Fix the logic to detect whether AccessibleCaret's position is changed. r=mats
This is the main patch to fix bug 1526268.

It is wrong to use the cached rects relative to the root
frame (ViewportFrame) to detect whether AccessibleCaret's position is
changed or not, because it doesn't account the root scroll frame's
scroll offset.

The effect is that we always produce "PositionChangedResult::Changed"
when scrolling on position:static elements, but
"PositionChangedResult::NotChanged" on position:fixed elements.

This patch fixes this by using the rect relative to custom content
container, which is the actually rect to set caret's position, to check
whether the position is changed or not.

Note that even with this patch, the caret on "position:fixed" element is
still jumpy during scrolling due to APZ. Part 3 will fixed this.

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

--HG--
extra : moz-landing-system : lando
2019-11-01 22:19:18 +00:00
Ting-Yu Lin
22b2870b5a Bug 1526268 Part 1 - Make AccessibleCaret's #text-overlay and #image children be normal in-flow elements. r=mats
The #text-overlay and #image child divs were "position: absolute" under
the main AccessibleCaret div. However, they don't necessary need to be
position:absolute to achieve the desired layout. We can make them normal
in-flow elements to simplify the frame structure. There should not be
any perceivable change to the user.

Also, AccessibleCaret's position can made more accurate by using float
CSS pixels when converting it from app unit.

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

--HG--
extra : moz-landing-system : lando
2019-11-01 22:16:08 +00:00
Edgar Chen
acd2114113 Bug 1580491 - Use Element::HasNonEmptyAttr in various places; r=bzbarsky
This was done by reviewing the results of
https://searchfox.org/mozilla-central/search?q=%2F*GetAttr%5C(.%2B(%26%26%7C%5C%7C%5C%7C)&case=true&regexp=true
one by one and replacing them with Element::HasNonEmptyAttr if possible.

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

--HG--
extra : moz-landing-system : lando
2019-11-01 15:24:25 +00:00
Jonathan Kew
4114aeff1a Bug 1587385 - Give a better info (not error) message if a webfont is not used because of font-display timeout. r=heycam
This is not an error in the same way as a download failure, and should not be reported as one.
An Info message is sufficient.

Also suppress "unknown" location in messages about @font-face rules, as it is not useful,
pending a proper fix (bug 1450903).

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

--HG--
extra : moz-landing-system : lando
2019-11-01 08:54:05 +00:00
Dan Glastonbury
196b08c653 Bug 1578319: Telemetry for total time spent in layout per Refresh Driver tick. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D44427

--HG--
extra : moz-landing-system : lando
2019-11-01 04:33:48 +00:00
Oriol Brufau
f57eb64b4c Bug 1588760 - Move css-lists reftests into WPT r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D49278

--HG--
rename : layout/reftests/w3c-css/submitted/lists-3/list-style-type-string-001-ref.html => testing/web-platform/tests/css/css-lists/list-style-type-string-001-ref.html
rename : layout/reftests/w3c-css/submitted/lists-3/list-style-type-string-001a.html => testing/web-platform/tests/css/css-lists/list-style-type-string-001a.html
rename : layout/reftests/w3c-css/submitted/lists-3/list-style-type-string-001b.html => testing/web-platform/tests/css/css-lists/list-style-type-string-001b.html
extra : moz-landing-system : lando
2019-11-01 04:27:32 +00:00
Nicholas Nethercote
a518709339 Bug 1587162 - Fix UBSAN complaints about pref callbacks. r=erahm
Lots of these callbacks have a non-`void*` final parameter, which UBSAN
complains about. This commit changes them to have a `void*` parameter.

This requires undoing the machinery added in the first two commits of bug
1473631: `TypePrefChangeFunc` and `PREF_CHANGE_METHOD`. The resulting code is
simpler (which is good) and more boilerplate-y (which is bad) but avoids the
undefined behaviour (which is good).

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

--HG--
extra : moz-landing-system : lando
2019-11-01 02:57:20 +00:00
Boris Chiou
d77411c397 Bug 1429305 - Enable OMTA for motion path and add some tests for it. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D50015

--HG--
extra : moz-landing-system : lando
2019-10-31 21:16:35 +00:00
Boris Chiou
a9e57a5534 Bug 1429305 - Extend compositor properties for motion. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D50014

--HG--
extra : moz-landing-system : lando
2019-10-31 20:07:45 +00:00
Boris Chiou
29378ebb46 Bug 1429305 - Cache gfx path. r=hiro
We cache the path in AnimationInfo for layers, and in
CompsoitorAnimationStorage for web-renderer.

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

--HG--
extra : moz-landing-system : lando
2019-10-31 21:36:39 +00:00
Boris Chiou
d546797708 Bug 1429305 - Add new layer messages for passing motion path info. r=hiro,mattwoodrow
This also includes the implementation of SetAnimatable, FromAnimatable,
and merge the final matrix with motion path.

Besides, we always use PathBuilderSkia for calculating the gfx::Path for
web-renderer.

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

--HG--
extra : moz-landing-system : lando
2019-10-31 20:07:41 +00:00
Boris Chiou
58ba6b888a Bug 1429305 - Use serde to serialize LengthPercentage and StyleRayFunction. r=emilio
We need to pass these two types into the compositor, so we need a better
way to serialize these rust types. We use serde and bincode to
serialize/deserialize them, and use ByteBuf to pass the &[u8] data
through IPC. We define StyleVecU8 for FFI usage only.

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

--HG--
extra : moz-landing-system : lando
2019-10-31 21:35:05 +00:00
Boris Chiou
651635bfca Bug 1429305 - Make PathBuilder as a parameter. r=hiro
On the compositor thread in GPU process (i.e. web-renderer), gfxPlatform() is
not initialized, so we don't have the DrawTarget information.
Fortunately, all we need is to calculate the motion point and direction
vector, so we don't have to care about which backend we use.

Therefore, make PathBuilder as a parameter, so we can just pass a valid
PathBuilder on the compositor thread. For main thread (i.e. content
process), using the original way is fine.

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

--HG--
extra : moz-landing-system : lando
2019-10-31 20:07:31 +00:00
Boris Chiou
7bc51c6333 Bug 1429305 - Refactor for ResolveMotionPath. r=hiro
The current implementation uses nsIFrame to get everything. However, we
want to reuse ResolveMotionPath() on the compositor thread (in the parent
process), so we need to refactor this function to avoid using nsIframe
everywhere.

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

--HG--
extra : moz-landing-system : lando
2019-10-31 20:07:30 +00:00
Boris Chiou
e169694db2 Bug 1429305 - Move motion path utils into a separate file. r=hiro
I'd like to add some new data type for motion path, so it'd be great to
put all of them in an independent file.

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

--HG--
extra : moz-landing-system : lando
2019-10-31 20:07:28 +00:00
Lee Salzman
aa1e343c59 Bug 1592790 - add some more Android WebRender fuzz. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D51290

--HG--
extra : moz-landing-system : lando
2019-10-31 17:15:10 +00:00
Emilio Cobos Álvarez
672ef887fb Bug 1592474 - Report a console warning when we disable scroll anchoring on a scroller. r=dholbert,flod
Depends on D51024

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

--HG--
extra : moz-landing-system : lando
2019-10-31 09:19:21 +00:00
Emilio Cobos Álvarez
f70cc8c005 Bug 1592474 - Add some heuristics to disable scroll anchoring in pathological cases. r=dholbert
The idea of these are not to penalize legit uses of scroll anchoring, and
catching pathological cases fast.

The current algorithm I thought of is just whether the average of all the
consecutive scroll anchoring adjustments is less than a given threshold.

If the average adjustment is close to zero and the user is not scrolling, it
means that we're not making much progress.

It is important that zero adjustments don't get counted, since those are common
during window resizes and don't have side-effects anyway.

Exact number may need tuning, let me know if you want it
nightly-and-early-beta-only for now or something.

Depends on D51038

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

--HG--
extra : moz-landing-system : lando
2019-10-31 09:25:08 +00:00
Emilio Cobos Álvarez
4510f3e34a Bug 1592474 - Share code between ScrollAnchorContainer::{Destroy,InvalidateAnchor}. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D51038

--HG--
extra : moz-landing-system : lando
2019-10-31 09:23:35 +00:00
Daniel Holbert
4a5a069a6f Bug 1503470: Increase fuzzy tolerance level for reftest 'paced-1.svg' on windows. (no review, test-annotation only)
Differential Revision: https://phabricator.services.mozilla.com/D51204

--HG--
extra : moz-landing-system : lando
2019-10-30 23:16:14 +00:00
Lee Salzman
51d4ee6895 Bug 1591996 - more fuzz for Skia m79 update. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D51189

--HG--
extra : moz-landing-system : lando
2019-10-30 21:57:00 +00:00
Lee Salzman
6e3b197012 Bug 1591996 - fuzz for Skia m79 update. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D50827

--HG--
extra : moz-landing-system : lando
2019-10-28 21:42:05 +00:00
Lee Salzman
d7ccbd0261 Bug 1591996 - miscellaneous Gecko fixes for Skia m79 update. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D50825

--HG--
extra : moz-landing-system : lando
2019-10-28 21:42:48 +00:00
Kirk Steuber
9b781e6983 Bug 1448807 - Remove showWindowResizer from browser Custom Element r=NeilDeakin
Differential Revision: https://phabricator.services.mozilla.com/D50274

--HG--
extra : moz-landing-system : lando
2019-10-30 13:46:55 +00:00
Morgan Reschenberg
36e1ff99a9 Bug 1587127: Ensure no backplate is drawn for lines that have only visibility:hidden descendants. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D48725

--HG--
extra : moz-landing-system : lando
2019-10-30 15:45:45 +00:00
Daniel Varga
b747b90cd8 Backed out changeset ec25a8482342 (bug 1592389) for mochitest failure at layout/style/test/test_value_computation.html. On a CLOSED TREE 2019-10-30 10:17:29 +02:00
Sam Mauldin
09a1cf803b Bug 1592389 - Rename Mozfield / Mozfieldtext to Field and Fieldtext r=emilio
Split off of Bug 1590894
Rename these to support unprefixed version
Also add alias to keep compatibility

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

--HG--
extra : moz-landing-system : lando
2019-10-30 05:51:38 +00:00
Nour
7afb8b57b4 Tests for wbr element Bug 584141 r=Ehsan
added tests for Bug 584141 selection across wbr elements

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

--HG--
extra : moz-landing-system : lando
2019-10-29 20:35:23 +00:00
Ting-Yu Lin
fe7aba788d Bug 1590185 Part 3 - Add --paged command line argument to layout debugger. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D49994

--HG--
extra : moz-landing-system : lando
2019-10-29 19:51:44 +00:00
Ting-Yu Lin
0023c0c92d Bug 1590185 Part 2 - Support paged mode layout in layout debugger. r=dbaron
This patch adds a menu item in "Toggle" -> "Paged Mode". If the item is
toggled, after finishing loading the document, the document will be
forced into paged mode.

The print settings in `nsLayoutDebuggingTools::SetPagedMode()` are
similar to `setupPrintMode()` in reftest-content.js.

Remove the hack in nsDocumentViewer::InitInternal() because we don't
want to set a new document when mIsPageMode = false.

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

--HG--
extra : moz-landing-system : lando
2019-10-29 19:51:42 +00:00
Ting-Yu Lin
3f0609ea5d Bug 1590185 Part 1 - Remove obsolete member variables in nsLayoutDebuggingTools. r=heycam
Bug 1566215 Part 3 moved these features to layoutdebug.js.
https://hg.mozilla.org/mozilla-central/rev/f84c119572a1f4d8b20ac05c0bd8cefe4fe70fef

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

--HG--
extra : moz-landing-system : lando
2019-10-29 19:51:33 +00:00