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

73519 Коммитов

Автор SHA1 Сообщение Дата
longsonr cc4f307539 Bug 1651404 - Move nsSVGDisplayableFrame and nsISVGSVGFrame to the mozilla namespace r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D82945
2020-07-09 18:34:54 +00:00
Daniel Holbert ca4338e8bb Bug 1651785: Move IsAnyAtomEqual template functions into SVGOuterSVGFrame.cpp (at the top), since that's the only file where they're used. r=krourke
Differential Revision: https://phabricator.services.mozilla.com/D82980
2020-07-09 20:10:12 +00:00
Emilio Cobos Álvarez 8be683efd5 Bug 1648839 - Evaluate changes in all media queries, then fire change events. r=jwatt
This ensures that you can't observe an inconsistent state while we go
through the list.

It should also be marginally better as we don't build an array with all
the media queries unconditionally.

Differential Revision: https://phabricator.services.mozilla.com/D82260
2020-07-10 01:21:53 +00:00
Emilio Cobos Álvarez 9ec63950e7 Bug 1648839 - Fix two issues with notifications for media feature value changes. r=nordzilla
We need to notify unconditionally because even if we didn't have
stylesheets, we could have responsive content which needs to change
source.

We need to notify the document even if the pres shell is not
initialized, as it might be our last chance to notify the responsive
content. This happens for printing, and makes my srcset test fail.

MANUAL PUSH: Somehow phabricator still thinks it needs review, even
though it was accepted.

Differential Revision: https://phabricator.services.mozilla.com/D81778
2020-07-10 03:18:50 +02:00
sefeng de3bbd2feb Bug 1651089 - Use transform instead of translate to position dialog r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D82538
2020-07-09 19:46:44 +00:00
Kris Maglione 6a39211860 Bug 1464542: Part 3b - Add existing Services.jsm registrations to the new services cache. r=mccr8,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D81419
2020-07-09 21:42:25 +00:00
Csoregi Natalia b355fcc4bf Backed out 6 changesets (bug 1464542) for xpcshell failures on test_Services.js. CLOSED TREE
Backed out changeset b50af9005851 (bug 1464542)
Backed out changeset 9d3a0ea2cf65 (bug 1464542)
Backed out changeset 71c3475fcbc2 (bug 1464542)
Backed out changeset 51ff93220a95 (bug 1464542)
Backed out changeset e84de1547c09 (bug 1464542)
Backed out changeset bbecc16d08eb (bug 1464542)
2020-07-09 23:19:26 +03:00
Ting-Yu Lin ffcfb6dcec Bug 1651171 - Convert NS_SUBTREE_DIRTY to an inline method of nsIFrame. r=jfkthame
This is a straightforward conversion except that
`NS_SUBTREE_DIRTY(this)` can be written terser as `IsSubtreeDirty()`.

Differential Revision: https://phabricator.services.mozilla.com/D82811
2020-07-09 18:29:15 +00:00
Kris Maglione d09458dc51 Bug 1464542: Part 3b - Add existing Services.jsm registrations to the new services cache. r=mccr8,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D81419
2020-07-09 17:59:16 +00:00
Kartikaya Gupta 0cf65adf2b Bug 1651050 - Add a logging module for code that sets displayports. r=tnikkel
This is useful for debugging purposes.

Depends on D82778

Differential Revision: https://phabricator.services.mozilla.com/D82779
2020-07-09 10:10:28 +00:00
Kartikaya Gupta aa7d787c6e Bug 1651050 - Change how the zoomable flag is used in scrollframes. r=tnikkel
If the root scrollframe has the zoomable flag set, it automatically returns
true from WantAsyncScroll which makes it the "primary" scrollframe, and
automatically gets a displayport. However, this can be undesirable in cases
where the root scrollframe is not actually scrollable (i.e. document content
doesn't overflow) because we don't actually need that displayport on the root
scrollframe and instead want it on a scrollframe that is actually scrollable.

This patch removes the behaviour of WantAsyncScroll returning true for such
scrollframes, but maintains the layerization changes needed to support zooming.
This reduces the set of differences between running with apz.allow_zooming on
and off, which in turn eliminates a bunch of test failures when that pref is
enabled.

Depends on D82777

Differential Revision: https://phabricator.services.mozilla.com/D82778
2020-07-09 10:39:59 +00:00
Daisuke Akatsuka 7ad61c2671 Bug 1625930: Fire StyleSheetApplicableStateChanged event explicitly if the stylesheet is getten from the cache. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81305
2020-07-08 15:13:03 +00:00
Hiroyuki Ikezoe 2e4ceac41e Bug 1525561 - Rename nsPresContext::GetToplevelContentDocumentPresContext to GetInProcessRootContentDocumentPresContext. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D82812
2020-07-09 01:58:59 +00:00
longsonr 6f5803e27f Bug 1651289 - Move remaining SVG concrete frame classes to the mozilla namespace r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D82650
2020-07-09 01:33:33 +00:00
Cameron McCormack c7b8a0ec83 Bug 1650715 - Make image-orientation apply to all CSS images associated with an element. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D82471
2020-07-08 23:51:15 +00:00
Miko Mynttinen f51fb1062d Bug 1641769 - Compute visibility of nsDisplayPerspective children r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D82720
2020-07-08 21:30:30 +00:00
Emilio Cobos Álvarez c3f3931f8c Bug 1645773 - Make sure to reflow when author specified borders / backgrounds are changed if we're themed. r=jfkthame
As author-specified-background/border changes can change the effective
border and padding of form controls.

Differential Revision: https://phabricator.services.mozilla.com/D82689
2020-07-08 15:13:27 +00:00
Bogdan Tara 75881e8400 Backed out 6 changesets (bug 1625930) for test_eventemitter_basic.js failures CLOSED TREE
Backed out changeset 30a3da9f613c (bug 1625930)
Backed out changeset d4e4c3ddcc43 (bug 1625930)
Backed out changeset 0133d9c58323 (bug 1625930)
Backed out changeset 1c9cf53f2a89 (bug 1625930)
Backed out changeset f63839eff636 (bug 1625930)
Backed out changeset a6bef105a2c2 (bug 1625930)
2020-07-08 18:08:27 +03:00
Daisuke Akatsuka 2e741db198 Bug 1625930: Fire StyleSheetApplicableStateChanged event explicitly if the stylesheet is getten from the cache. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81305
2020-07-08 14:05:42 +00:00
Ting-Yu Lin 1ae545bdca Bug 1651202 Part 5 - Remove mState field from frame tree output. r=heycam
Per discussion on matrix, printing mState in hex format is
indecipherable. Remove it to reduce the rate of wrapping of a long line.

Differential Revision: https://phabricator.services.mozilla.com/D82606
2020-07-08 01:03:56 +00:00
Ting-Yu Lin 16b7f80e1e Bug 1651202 Part 4 - Remove DebugListFrameTree in nsIFrame.cpp. r=heycam
This is equivalent to `aFrame->DumpFrameTreeLimited()` or `ftl` gdb /
lldb command. It appears only in nsIFrame.cpp, I doubt it's actually
used by developers.

Differential Revision: https://phabricator.services.mozilla.com/D82605
2020-07-08 01:03:33 +00:00
Ting-Yu Lin 8dd11ff135 Bug 1651202 Part 3 - Rewrite container frame's frame tree output. r=heycam
This affects the output of flex, grid, fieldset, etc.

Given a snippet like the following.

```
<fieldset style="position: relative; display: flex">
  <div style="position: absolute">
```

Currently, the frame tree output looks as if the AbsoluteList is under
the FieldSet, but it's actually under the FlexContainer.

```
FieldSet(fieldset)(8)@7f4ae9e73508 ... <
  FlexContainer(fieldset)(8)@7f4ae9e735c0 ... <
    Placeholder(div)(1)@7f4ae9e73738
  >
  AbsoluteList 7f4ae9dcb8c0 <
    Block(div)(1)@7f4ae9e73670 ... <
    >
  >
>
```

After this patch, the frame tree looks like:

```
FieldSet(fieldset)(8)@7f4ae9e73508 ... <
  FlexContainer(fieldset)(8)@7f4ae9e735c0 ... <
    Placeholder(div)(1)@7f4ae9e73738
    AbsoluteList 7f4ae9dcb8c0 <
      Block(div)(1)@7f4ae9e73670 ... <
      >
    >
  >
>
```

Another minor difference is that for a empty container, the end angle
bracket is now on its own line, which is consistent with an empty block
frame's output.

This old output

```
FlexContainer(div)(4)@7f4ae9e73390<>
```

becomes

```
FlexContainer(div)(4)@7f4ae9e73390<
>
```

Differential Revision: https://phabricator.services.mozilla.com/D82604
2020-07-08 05:39:57 +00:00
Ting-Yu Lin 4ecda7f556 Bug 1651202 Part 2 - Minor format tweaks for block frame's frame tree output. r=heycam
Make the following tweak so that they are consistent with others.

* Add a space before the open angle bracket. This is at the end of
`Block(div)(1)@7f10e25de5d0 ... <`

* Tweak nsLineBox format.
`line 7f10e25de808: count=1` becomes `line@7f10e25de808 count=1`.

* Tweak child list format.
`AbsoluteList 0x7f10e3c7e560` becomes `AbsoluteList@7f10e3c7e560`

Differential Revision: https://phabricator.services.mozilla.com/D82603
2020-07-08 05:37:39 +00:00
Ting-Yu Lin 358c2f9ef1 Bug 1651202 Part 1 - Extract nsBlockFrame's printing child lists logic to a helper methods. r=heycam
`ListChildLists` lives in nsContainerFrame because I'm going to use it
to improve nsContainerFrame::List() in a later patch.

Differential Revision: https://phabricator.services.mozilla.com/D82602
2020-07-08 00:59:02 +00:00
Daniel Holbert 9542b75d5b Bug 1492538 part 2: Cache flex items' content-box sizes after reflowing them, & skip subsequent reflow if the size matches and the item's subtree isn't dirty. r=TYLin
Note: This optimization saves us from doing an extra unnecessary reflow in the
mochitest test_bug1505254.html, so I'm adjusting that test to remove its
magical "+1" fudge-factor in its expectations (and the corresponding
explanatory comment).  Similarly, I'm dropping the assertion-count for
crashtest 1488762-1.html because we now do a little bit less reflow work (and
hence assert a little bit less) in that test.

Depends on D78821

Differential Revision: https://phabricator.services.mozilla.com/D78822
2020-07-08 04:12:55 +00:00
Daniel Holbert 1f4f582846 Bug 1492538 part 1: Remove unnecessary special-casing on constrained-BSize check in FlexItem::NeedsFinalReflow. r=TYLin
Note: this patch doesn't change behavior of current mozilla-central - it's just reordering some logic, basically.

Background/explanation: in current mozilla-central, we intentionally force a
"final reflow" for flex items (i.e. we return true from NeedsFinalReflow) if we
see that there's a constrained AvailableBSize (i.e. if we're fragmenting).  However, the
logic to do that is buried within a basically-unrelated "if
(HadMeasuringReflow())" special case.

This patch pulls that check out of this unrelated special-case, so that we
detect the constrained AvailableBSize earlier and return earlier (indicating
more eagerly/up-front that we need a final reflow).

This patch is necessary because a later patch in this queue will add additional
special cases to FlexItem::NeedsFinalReflow, which will aim to make us *skip*
the final reflow in more cases.  But for now, we want this
contrained-AvailableBSize check to "dominate" and eagerly force a reflow,
regardless of that soon-to-be-added logic.

Differential Revision: https://phabricator.services.mozilla.com/D78821
2020-07-07 21:58:44 +00:00
Hiroyuki Ikezoe 8a563af888 Bug 1649663 - Migrate reftest-paged reftests in layout/reftests/backgrounds/ into wpt. r=TYLin
Differential Revision: https://phabricator.services.mozilla.com/D81807
2020-07-02 04:01:33 +00:00
longsonr 058049a793 Bug 1649739 - Move SVG paint server and clipPath classes to the mozilla namespace r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D81858
2020-07-07 13:49:30 +00:00
Csoregi Natalia fe1354b164 Backed out changeset 4ed5a0e27c05 (bug 1647732) for font related wpt failures. CLOSED TREE 2020-07-07 12:31:27 +03:00
Liang-Heng Chen e69b3bc58b Bug 1647732 - isolate font cache; r=baku,jfkthame,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D82034
2020-07-07 07:49:38 +00:00
Kagami Sascha Rosylight f6d17b63b5 Bug 1630704 - Part 28: Remove nsFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81865
2020-07-06 22:38:11 +00:00
Kagami Sascha Rosylight 1afcf4d621 Bug 1630704 - Part 27: Remove nsFrame from inheritance chain r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81864
2020-07-06 22:29:42 +00:00
Kagami Sascha Rosylight 49e9528422 Bug 1630704 - Part 26: Move ReflowInput import to nsIFrame.h r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81845
2020-07-06 20:31:51 +00:00
Kagami Sascha Rosylight 9bfce76b8d Bug 1630704 - Part 25: Construct nsIFrame from NS_NewEmptyFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81844
2020-07-06 20:13:05 +00:00
Kartikaya Gupta 14464b938b Bug 1650488 - Don't build an async zoom container if a document is in fullscreen. r=botond
When a document has a fullscreen element, zooming is disabled, so we don't need
to build the async zoom container. But also, fullscreen is implemented via
hoisting the fullscreen element out of the normal layout flow, and making it
position:fixed. If the nsDisplayAsyncZoom display item is still in the display
list, it has a clip that doesn't account for fullscreen-ness, but still wraps
the nsDisplayPositionFixed items that are rendering the fullscreen elements.
This can result in hit-testing failing on those fullscreen items, because the
nsDisplayAsyncZoom item incorrectly clips away hit-test points. Instead, a
simple solution here is to just skip building the nsDisplayAsyncZoom item
entirely when in a fullscreen state.

Differential Revision: https://phabricator.services.mozilla.com/D82422
2020-07-06 20:31:00 +00:00
Ting-Yu Lin 089db3ebdb Bug 1650245 Part 3 - Remove CLANG_CRASH_BUG define in CSSOrderAwareFrameIterator.h. r=dholbert
Our minimum version requirements for clang is 5.0 per
https://groups.google.com/forum/#!msg/mozilla.dev.platform/ygj-1MDVB4M/CLxE_7OcBAAJ

Differential Revision: https://phabricator.services.mozilla.com/D82119
2020-07-03 16:57:00 +00:00
Ting-Yu Lin bd9d7f8048 Bug 1650245 Part 2 - Use nsTArray::StableSort() in CSSOrderAwareFrameIteratorT. r=dholbert,sg
nsTArray::StableSort() requires the Comparator to be a class/struct with
Equals() and LessThan() members, or a tri-state function like strcmp.
This patch adapts the original comparators to tri-state functions to
fulfill this contract.

Using StableSort() can also avoid the array bound checking in the array
iterator as described in bug 1147091 comment 8.

Change the include to <limits> because std::stable_sort is removed but
we still use std::numeric_limits.

Differential Revision: https://phabricator.services.mozilla.com/D82118
2020-07-06 17:11:24 +00:00
Ting-Yu Lin b88227c0a6 Bug 1650245 Part 1 - Move begin() and end() into private section in CSSOrderAwareFrameIterator. r=dholbert
Both methods are implementation details specific to this iterator, not
public interfaces that can be cooperated with C++ standard library, so
move them into private section.

Differential Revision: https://phabricator.services.mozilla.com/D82117
2020-07-03 16:55:04 +00:00
longsonr 357287af64 Bug 588684 - Mark objectBoundingBox-and-fePointLight reftests passing on linux r=dholbert
We can mark this fuzzy if necessary but it does seem OK now

Differential Revision: https://phabricator.services.mozilla.com/D82376
2020-07-06 18:33:24 +00:00
Geoff Brown 734bc97c35 Bug 1650410 - Tolerate psutil import failure in android reftests; r=bc
Differential Revision: https://phabricator.services.mozilla.com/D82242
2020-07-06 14:05:50 +00:00
Hiroyuki Ikezoe d32459e2c0 Bug 1650686 - Drop layout.viewport_contains_no_contents_area. r=botond
I suppose it's been well tested on Fenix.

Differential Revision: https://phabricator.services.mozilla.com/D82305
2020-07-06 09:53:34 +00:00
Hiroyuki Ikezoe 43877bd8b5 Bug 1647186 - Apply the cumulative resolution smaller than 1.0 to the root frame size for the partial pre-render. r=botond
So that we can reasonably expand the pre-render region on mobile environments.

Differential Revision: https://phabricator.services.mozilla.com/D81961
2020-07-05 23:17:02 +00:00
Hiroyuki Ikezoe 6daee7f230 Bug 1324591 - Disable partial pre-render for frames in position:sticky subtree. r=botond
Depends on D75732

Differential Revision: https://phabricator.services.mozilla.com/D77774
2020-07-05 11:45:59 +00:00
Hiroyuki Ikezoe 4205879729 Bug 1324591 - Report janked animations to the main-thread and update them on the main-thread. r=botond,boris
The machinery to report janked animations is;

1) Store the partial pre-rendered animation id and the Animation object in a
   hashtable in LayerManager
2) Store the animation id in the Animation object as well
3) When we detect jank, we send the animation id to the main-thread via an IPC
   call
4) Find the Animation object with the id in the hashtable and update the
   Animaiton
5) Whenever the partial pre-rendered Animation stop running on the compositor
   i.e. the Animation finished normally, the Animation's target element is
   changed, etc. etc., remove the Animation from the hashtable

Depends on D75731

Differential Revision: https://phabricator.services.mozilla.com/D75732
2020-07-05 11:45:01 +00:00
Hiroyuki Ikezoe 85030f4af6 Bug 1324591 - Jank if we are trying to composite area which is outside of the the partial prerender rect on non WebRender. r=botond,jrmuizel
Depends on D81481

Differential Revision: https://phabricator.services.mozilla.com/D75731
2020-07-05 11:44:18 +00:00
Hiroyuki Ikezoe ec49c6a9a8 Bug 1324591 - Inform the partial prerender rect, the overflowed SideBits, the scroll id of the nearest scrollable frame and its rectable to the compositor. r=botond
nsDisplayTransform doesn't have enough room to store the partial prerender rect
and the overflowed SideBits unfortunately (it will exceed 512 bytes limit [1]).
So we get the partial prerender rect and calculate the overflowed SideBits just
before we send transform animation information to the compositor.

[1] https://searchfox.org/mozilla-central/rev/fa52bedc4b401c12251513fa1c9df1753a29abb2/layout/painting/nsDisplayList.cpp#7318

Depends on D81480

Differential Revision: https://phabricator.services.mozilla.com/D75730
2020-07-05 11:43:33 +00:00
Hiroyuki Ikezoe 7115e973a0 Bug 1324591 - Add nsLayoutUtils::IsInPositionFixedSubtree. r=TYLin
Depends on D75729

Differential Revision: https://phabricator.services.mozilla.com/D81480
2020-07-05 11:43:20 +00:00
Hiroyuki Ikezoe cb8a5d8210 Bug 1324591 - Store PrerenderDecision in nsDisplayTransform. r=botond
Depends on D75728

Differential Revision: https://phabricator.services.mozilla.com/D75729
2020-07-05 11:43:07 +00:00
Narcis Beleuzu a1826f59a6 Backed out changeset 290c0c7b9864 (bug 1647186) for reftest failure on partial-prerender-expansion-with-resolution-2.html 2020-07-05 14:38:53 +03:00
Brindusan Cristian 7f75410fd7 Backed out 9 changesets (bug 1324591) for linux build bustages on central on nsDisplayList.h.
Backed out changeset 75966ee1fe65 (bug 1324591)
Backed out changeset d6a01c6bc40e (bug 1324591)
Backed out changeset fef36ff2ea3d (bug 1324591)
Backed out changeset 4a4ae4bd95d1 (bug 1324591)
Backed out changeset 732804c83add (bug 1324591)
Backed out changeset 84657a3522fb (bug 1324591)
Backed out changeset e6c74ba41007 (bug 1324591)
Backed out changeset 8e6d4e9f5aa0 (bug 1324591)
Backed out changeset 6bc284863aff (bug 1324591)
2020-07-05 13:45:35 +03:00
Hiroyuki Ikezoe 4215f9a916 Bug 1647186 - Apply the cumulative resolution smaller than 1.0 to the root frame size for the partial pre-render. r=botond
So that we can reasonably expand the pre-render region on mobile environments.

Differential Revision: https://phabricator.services.mozilla.com/D81961
2020-07-05 09:57:36 +00:00
Hiroyuki Ikezoe c86c19bd64 Bug 1324591 - Disable partial pre-render for frames in position:sticky subtree. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D77774
2020-07-05 02:21:09 +00:00
Hiroyuki Ikezoe 92208a9c28 Bug 1324591 - Report janked animations to the main-thread and update them on the main-thread. r=botond,boris
The machinery to report janked animations is;

1) Store the partial pre-rendered animation id and the Animation object in a
   hashtable in LayerManager
2) Store the animation id in the Animation object as well
3) When we detect jank, we send the animation id to the main-thread via an IPC
   call
4) Find the Animation object with the id in the hashtable and update the
   Animaiton
5) Whenever the partial pre-rendered Animation stop running on the compositor
   i.e. the Animation finished normally, the Animation's target element is
   changed, etc. etc., remove the Animation from the hashtable

Differential Revision: https://phabricator.services.mozilla.com/D75732
2020-07-05 02:21:01 +00:00
Hiroyuki Ikezoe c350cb04ad Bug 1324591 - Jank if we are trying to composite area which is outside of the the partial prerender rect on non WebRender. r=botond,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D75731
2020-07-05 02:20:23 +00:00
Hiroyuki Ikezoe a32c79b20d Bug 1324591 - Inform the partial prerender rect, the overflowed SideBits, the scroll id of the nearest scrollable frame and its rectable to the compositor. r=botond
nsDisplayTransform doesn't have enough room to store the partial prerender rect
and the overflowed SideBits unfortunately (it will exceed 512 bytes limit [1]).
So we get the partial prerender rect and calculate the overflowed SideBits just
before we send transform animation information to the compositor.

[1] https://searchfox.org/mozilla-central/rev/fa52bedc4b401c12251513fa1c9df1753a29abb2/layout/painting/nsDisplayList.cpp#7318

Differential Revision: https://phabricator.services.mozilla.com/D75730
2020-07-05 02:19:38 +00:00
Hiroyuki Ikezoe 72b361cf0b Bug 1324591 - Add nsLayoutUtils::IsInPositionFixedSubtree. r=TYLin
Differential Revision: https://phabricator.services.mozilla.com/D81480
2020-07-05 02:19:25 +00:00
Hiroyuki Ikezoe 235542b661 Bug 1324591 - Store PrerenderDecision in nsDisplayTransform. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D75729
2020-07-05 02:19:07 +00:00
Sylvestre Ledru caf785c695 Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D82178
2020-07-04 09:38:43 +00:00
Hiroyuki Ikezoe 10242eeaf4 Bug 1646629 - Set updateCanvasPending explicitly when reftest-wait was removed and take a snapshot of the whole screen if reftest-no-flush is specified. r=mattwoodrow,tnikkel
That's because we no longer fire MozAfterPaint event for changes by
animations on the compositor.

Differential Revision: https://phabricator.services.mozilla.com/D80157
2020-07-04 08:01:40 +00:00
Kartikaya Gupta bc6c7c9f34 Bug 1650081 - Use scrollbar-width:none instead of overflow:hidden to hide scrollbars. r=botond
Instead of using overflow:hidden on the body to hide the scrollbar, this
patch sets scrollbar-width:none on the html element. In some cases
overflow:hidden is set on non-root scrollers (i.e. div elements); in those
cases it is replaced by overflow:scroll;scrollbar-width:none to get an
equivalent effect.

One test had a pre-existing visible scrollbar on a nested scrollframe, but
which started failing with a small fuzz difference. I left the scrollbar as-is
and added an annotation to the reftest.list file.

Note that this only updates the tests that use reftest-async-scroll as those
were the cases that were easily detectable, and causing problems with the
apz.allow_zooming=true pref.

Differential Revision: https://phabricator.services.mozilla.com/D82032
2020-07-03 19:50:11 +00:00
Mihai Alexandru Michis fb3212f7cc Backed out changeset bd58cdafe3c9 (bug 1650081) for causing failures in offscreen-prerendered-active-opacity.html
CLOSED TREE
2020-07-03 22:30:50 +03:00
Kartikaya Gupta 3bc44b4a60 Bug 1650081 - Use scrollbar-width:none instead of overflow:hidden to hide scrollbars. r=botond
Instead of using overflow:hidden on the body to hide the scrollbar, this
patch sets scrollbar-width:none on the html element. In some cases
overflow:hidden is set on non-root scrollers (i.e. div elements); in those
cases it is replaced by overflow:scroll;scrollbar-width:none to get an
equivalent effect.

One test had a pre-existing visible scrollbar on a nested scrollframe, but
which started failing with a small fuzz difference. I left the scrollbar as-is
and added an annotation to the reftest.list file.

Note that this only updates the tests that use reftest-async-scroll as those
were the cases that were easily detectable, and causing problems with the
apz.allow_zooming=true pref.

Differential Revision: https://phabricator.services.mozilla.com/D82032
2020-07-03 16:07:51 +00:00
Kartikaya Gupta 77b4f9fdf9 Bug 1644567 - Use a more appropriate check when reading the visual viewport offset. r=botond
Instead of checking for the visual viewport *size* being set, we check for
the *offset* being set. This makes more sense becuase we're going to be
reading the offset, not the size.

Depends on D81740

Differential Revision: https://phabricator.services.mozilla.com/D81741
2020-07-03 15:55:56 +00:00
Kartikaya Gupta c9225cd3ec Bug 1644567 - Move towards setting the visual viewport offset on all presShells. r=botond
Depends on D81739

Differential Revision: https://phabricator.services.mozilla.com/D81740
2020-07-03 15:55:23 +00:00
Kartikaya Gupta 4a1b02c5c5 Bug 1644567 - Add another case to the test for scroll restoration during frame reconstruction. r=botond
This adds another case to this test, which is specifically intended to bypass
any short-circuit resulting from the clamped scroll offset being the same as
the scrollframe's existing scroll offset. The pre-existing case in the tests
shortens the scrollframe to be non-scrollable, so the clamped mRestorePos for
the scrollframe is 0, which is the same as the default scroll position of the
reconstructed scrollframe. The new case ensures the clamped mRestorePos is
greater than zero, to verify that scroll restoration works as intended in that
scenario as well.

Differential Revision: https://phabricator.services.mozilla.com/D81739
2020-07-03 16:09:58 +00:00
Kagami Sascha Rosylight fc8e03a55d Bug 1649931 - Part 4: Make GetLineNumber() non-static r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81955
2020-07-03 10:47:06 +00:00
Kagami Sascha Rosylight f92968ee05 Bug 1649931 - Part 3: Add nsIFrameEnumerator::Traverse() r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81954
2020-07-03 00:48:59 +00:00
Kagami Sascha Rosylight a76fa900a0 Bug 1649931 - Part 2: Add nsIFrame::Is[]AtLineEdge() r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81953
2020-07-03 00:55:19 +00:00
Kagami Sascha Rosylight 0b3072d2e5 Bug 1649931 - Part 1: Remove the first parameter of GetFirst/LastLeaf() r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81952
2020-07-02 03:07:39 +00:00
Edgar Chen dc0bf3f975 Bug 1648630 - Part 3: Propagate layers id to touch event properly for Fission; r=kats
Differential Revision: https://phabricator.services.mozilla.com/D81869
2020-07-03 07:45:35 +00:00
Edgar Chen 71ad0b0850 Bug 1648630 - Part 2: Use EvictTouches to evict old touches; r=kats
Differential Revision: https://phabricator.services.mozilla.com/D81825
2020-07-02 19:27:51 +00:00
Emilio Cobos Álvarez d8785e5e8d Bug 1648064 - Fix usage of printsettings in printpreview_helper. r=jwatt
For some reason that I don't want to dig into after a whole day of
debugging, nsDocumentViewer::GetGlobalPrintSettings always returns a new
object. Make sure to get a hand on the initial settings objects and use
that. That way we can remove the XXX comment, and use the print
settings as expected, which is useful because I'm going to add a test
whose reference is using background-color, and I need to change the
settings for us to print backgrounds.

Differential Revision: https://phabricator.services.mozilla.com/D81776
2020-07-02 22:49:55 +00:00
Nicolas Silva d13fd85fc1 Bug 1647156 - Improve the displayport snapping logic. r=kats
Aligning the displayport position in large increments can cause issues when the displayport is small enough to be smaller than the alignment itself. The risk is higher for small frames with no displayport margin as the alignment might have previously be rounded up to 512. Luckily not having margins is an indication that we aren't trying hard to benefit from APZ and a large alignment isn't benefiting us. This patch takes that into consideration and defaults to small alignements when there is no margins. The alignment is also rounded to a multiple of 256 instead of 512 to further reduce the likelihood of running into issues with small displayports.

Differential Revision: https://phabricator.services.mozilla.com/D80614
2020-07-02 16:14:51 +00:00
Henri Sivonen 356e90f2b6 Bug 1647301 - Remove forceCharset from nsIContentViewer. r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D80470
2020-07-02 06:23:24 +00:00
Haik Aftandilian b6be654b88 Bug 1648881 - Right click submenus opening on the wrong screen r=spohl
Apply the fix for bug 1592416 to submenus.

This adds the NSWindowCollectionBehaviorMoveToActiveSpace behavior to
submenu popups so that they override the "Assign To" space setting and display
on the active space. And, when mutiple displays are in use, recreates the
submenu widget each time it is displayed.

Differential Revision: https://phabricator.services.mozilla.com/D81812
2020-07-01 14:20:40 +00:00
Ting-Yu Lin e5c44b1c36 Bug 1648577 - Fix a condition that checks whether to create a new FlexLine with break-after. r=dholbert
It's incorrect to use childFrame's next sibling to check whether we have
more children since we iterate the children with respect to the CSS
'order' property.

Rather than creating a new flex line immediately, we keep a boolean when
a flex item requested "break-after", and create a new flex in the next
iteration.

Differential Revision: https://phabricator.services.mozilla.com/D81283
2020-07-01 18:18:00 +00:00
Simon Giesecke 9364b353d4 Bug 1648010 - Remove NS_NAMED_LITERAL_CSTRING and NS_NAMED_LITERAL_STRING macros. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80631
2020-07-01 08:42:31 +00:00
Simon Giesecke cd8b8939b9 Bug 1648010 - Replace uses of NS_LITERAL_STRING/NS_LITERAL_CSTRING macros by _ns literals. r=geckoview-reviewers,jgilbert,agi,hsivonen,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80860
2020-07-01 08:29:29 +00:00
Ting-Yu Lin 3fca243aa4 Bug 1645549 Part 2 - Find the first non-anonymous-box's content node when sorting frame list. r=dholbert
When sorting frames in DOM order, we need to be careful to avoid using
an anonymous flex item's content node to make ordering decisions;
otherwise, all such items would incorrectly end up being sorted to the
front of the list. We need to dig through it to find the content node
that was wrapped in the anonymous wrapper, and use that content node for
sorting/ordering.

Differential Revision: https://phabricator.services.mozilla.com/D81001
2020-07-01 02:38:57 +00:00
Ting-Yu Lin cd61c7d575 Bug 1645549 Part 1 - Move GetFirstNonAnonBoxDescendant() to nsContainerFrame. r=dholbert
Also, rename it to GetFirstNonAnonBoxInSubtree() to reflect its
functionality more precisely that it can return the argument aFrame
itself.

Differential Revision: https://phabricator.services.mozilla.com/D81000
2020-07-01 02:33:11 +00:00
Emilio Cobos Álvarez 3b9c28af7a Bug 1256980 - Make z-index only apply to positioned and grid / flex item frames. r=miko,hiro
Differential Revision: https://phabricator.services.mozilla.com/D81557
2020-06-30 22:51:12 +00:00
Butkovits Atila 3b3450501e Backed out changeset 067f4c0eb51b (bug 1648577) for crashtest failures at nsFlexContainerFrame.cpp. CLOSED TREE 2020-07-01 02:06:42 +03:00
Hiroyuki Ikezoe 12256cfca1 Bug 1645274 - Migrate reftest-paged reftests in layout/reftests/table-overflow into wpt. r=TYLin
Note that on Chrome table-row-pagination-001-print.html doesn't generate the
second page at least in the print preview.  The second page is actually just a
blank page, but the height of a table element in the test is `160%` so that
there should be overflowed area from the first page.

It may be possible that it's an optimization in Chrome to reduce paper
consumption, but the second page in the reference, it's also a blank page, is
generated in the print preview, so I suppose it's either a bug or an
inconsistent optimization in Chrome.

Differential Revision: https://phabricator.services.mozilla.com/D81635
2020-06-30 21:58:07 +00:00
Ting-Yu Lin 83358388ac Bug 1648577 - Fix a condition that checks whether to create a new FlexLine with break-after. r=dholbert
It's incorrect to use childFrame's next sibling to check whether we have
more children since we iterate the children with respect to the CSS
'order' property.

Rather than creating a new flex line immediately, we keep a boolean when
a flex item requested "break-after", and create a new flex in the next
iteration.

Differential Revision: https://phabricator.services.mozilla.com/D81283
2020-06-30 21:35:06 +00:00
Zeke Medley 83e9191999 Bug 1506364 - Implement the prefers-contrast media-query. r=morgan,emilio
Differential Revision: https://phabricator.services.mozilla.com/D79553
2020-06-29 17:46:12 +00:00
longsonr c6379dd48c Bug 1649177 - Move SVG filter classes to the mozilla namespace r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D81555
2020-06-30 18:11:50 +00:00
Edgar Chen ccfe08a5ac Bug 1630828 - Handle mouseup properly on Mac when ctrl key is pressed; r=NeilDeakin
Differential Revision: https://phabricator.services.mozilla.com/D71338
2020-06-30 10:47:46 +00:00
Kagami Sascha Rosylight 61ed7a4f20 Bug 1630704 - Move Init/DestroyFrom to nsIFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81616
2020-06-30 09:03:00 +00:00
Kartikaya Gupta 40a788d924 Bug 1647034 - Change how the visual viewport is updated to eliminate spurious reflows. r=tnikkel
There's two code changes in this patch:

- The update to the visual viewport that was happening just before positioning
  the fixed items gets moved to happen after determining the scrollbars for
  the root scrollframe. This moves it a little bit earlier, to basically the
  earliest point at which the visual viewport can actually be computed, since
  it depends on the presence of the root scrollframe's scrollbars.

  More importantly, this change sets the visual viewport without checking to
  see if one was already set, as the old code did. This means every reflow
  of the root scrollframe on a presShell with an MVM will now have a visual
  viewport set. Previously the visual viewport would only get set for the first
  time when the MVM got a load or first-paint event, and then would get updated
  for subsequent reflows. The net effect here is that the visual viewport is
  set earlier, and this can sometimes eliminate extra reflows from after the
  load event, because everything is already in a consistent state.

- The NotifyResizeReflow call to MVM is replaced by a NotifyReflow call that
  runs before every reflow, instead of just on resizes. Note that the
  NotifyReflow also doesn't update the visual viewport like NotifyResizeReflow
  used to do, because that is taken care of by the above-mentioned code change
  to set the visual viewport.

  This is desirable because there are things that run during reflow that attempt
  to read the display size from the MVM, and they were getting a zero size
  for reflows that happened before the first resize or load/first-paint events.
  Now they get a valid display size on every reflow, and so again this allows
  fewer overall reflows as the code converges to a stable state faster.

Together these changes ensure that every reflow has access to up-to-date
properties (display size, mobile viewport size, visual viewport size) from the
MVM. This eliminates unnecessary reflows because of out-of-order computations
based on stale values and such. Therefore the number of reflows goes down,
which is reflected by the changes to the crashtest assertion counts.

Differential Revision: https://phabricator.services.mozilla.com/D81375
2020-06-29 18:39:57 +00:00
Boris Chiou 897e56554c Bug 1638844 - Update fuzzy condition for linux-64-ccov. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D81586
2020-06-29 21:26:07 +00:00
Emilio Cobos Álvarez 182bc24936 Bug 1648939 - Ensure that the widget starts with the correct opacity / transform. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D81554
2020-06-29 20:05:09 +00:00
Kartikaya Gupta a3752f3581 Bug 1648500 - Use the composition size when positioning scrollbars. r=tnikkel
When positioning overlay scrollbars, the code was previously taking the
visual viewport size and scaling it back up to the composition size using
the resolution. This works because overlay scrollbars don't take up any
space, and so the visual viewport size is exactly equal to the composition
size divided by the resolution. However, it's simpler to just use the
composition size because we can get that easily enough. And this fixes the
scrollbar positioning on the very first reflow, before the visual viewport
has been set on the presShell.

Eventually this might make it easier to do this for non-overlay scrollbars
as well, since those do take up layout space, and can't be positioned using
the "VV size multiplied by resolution" quantity, as that doesn't exactly
equal the composition size.

Differential Revision: https://phabricator.services.mozilla.com/D81277
2020-06-29 18:38:58 +00:00
Kartikaya Gupta 9768f4f2ba Bug 1648500 - Don't check for the VV size in TryLayout. r=tnikkel
The TryLayout code uses the composition size to figure out if the
scrollbar is needed or not. It computes something similar to the visual
viewport size (but assuming no scrollbars are taking up space) to do this.
There's no reason this code should be depending on whether or not the
visual viewport size is set in the presShell, so we can just remove the
condition. That way even on the very first reflow, when the visual viewport
will definitely not be set, we can correctly determine if the scrollbars
need to be laid out or not.

Differential Revision: https://phabricator.services.mozilla.com/D81276
2020-06-29 03:33:59 +00:00
Emilio Cobos Álvarez 7649856b1f Bug 1649197 - Remove StyleSheet::UnparentChildren. r=nordzilla
It leaves parent pointers nulled out when it really shouldn't when
cloning shared sheets (if there's another suitable parent, we should use
that instead of nulling out).

Fix the code in StyleSheetInfo::RemoveSheet to handle all cases
(including nulling out when removing the only remaining sheet), and rely
on that instead.

Differential Revision: https://phabricator.services.mozilla.com/D81569
2020-06-29 18:41:20 +00:00
Emilio Cobos Álvarez 67f90f0a9e Bug 1648736 - Don't mark a load as performed on a given document until it has actually finished. r=heycam
Consider the case where we have an expired entry in the cache, and we
load a new document.

We get an speculative load from the HTML parser. That's great, and we
see the entry is expired and actually fired the load.

But then, we actually get to the load that the <link> element performs,
and we see that we've already performed this load, so instead of peeking
the in-progress load, we go ahead and peek the expired "complete" cache
entry, which is not what we want.

By marking a load as performed only once it has finished, we avoid the
complete sheet cache, and glom onto the existing load instead, which is
the correct thing to do.

Differential Revision: https://phabricator.services.mozilla.com/D81318
2020-06-29 17:29:06 +00:00
Razvan Maries be1983c22c Backed out changeset 6b6e6e9ef6a5 (bug 1648736) for reftests failures. CLOSED TREE 2020-06-29 17:13:20 +03:00
Andrea Marchesini 4c6f89824d Bug 1648141 - IPCBlobInputStream to RemoteLazyInputStream - part 8 - mozilla namespace, r=smaug,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D80931
2020-06-29 13:40:27 +00:00
Andrea Marchesini 07f5abb16d Bug 1648141 - IPCBlobInputStream to RemoteLazyInputStream - part 2 - RemoteLazyInputStreamStorage, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D80925
2020-06-29 11:02:50 +00:00
Razvan Maries f7cb24cc7e Backed out 8 changesets (bug 1648141) for build bustages on RemoteLazyInputStreamThread.cpp. CLOSED TREE
Backed out changeset e9b4ca0ee700 (bug 1648141)
Backed out changeset b9bb847cee47 (bug 1648141)
Backed out changeset 11dfce46ec14 (bug 1648141)
Backed out changeset d824d2f67f27 (bug 1648141)
Backed out changeset e5b8292e7095 (bug 1648141)
Backed out changeset c1a3d5fa0c61 (bug 1648141)
Backed out changeset 24fdb83db3cd (bug 1648141)
Backed out changeset 749d894dde52 (bug 1648141)
2020-06-29 13:59:16 +03:00
Emilio Cobos Álvarez fa2b0a4ba3 Bug 1648736 - Don't mark a load as performed on a given document until it has actually finished. r=heycam
Consider the case where we have an expired entry in the cache, and we
load a new document.

We get an speculative load from the HTML parser. That's great, and we
see the entry is expired and actually fired the load.

But then, we actually get to the load that the <link> element performs,
and we see that we've already performed this load, so instead of peeking
the in-progress load, we go ahead and peek the expired "complete" cache
entry, which is not what we want.

By marking a load as performed only once it has finished, we avoid the
complete sheet cache, and glom onto the existing load instead, which is
the correct thing to do.

Differential Revision: https://phabricator.services.mozilla.com/D81318
2020-06-29 10:51:37 +00:00
Andrea Marchesini c71431ab1b Bug 1648141 - IPCBlobInputStream to RemoteLazyInputStream - part 8 - mozilla namespace, r=smaug,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D80931
2020-06-29 10:30:00 +00:00
Andrea Marchesini 54b73ea513 Bug 1648141 - IPCBlobInputStream to RemoteLazyInputStream - part 2 - RemoteLazyInputStreamStorage, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D80925
2020-06-29 10:25:24 +00:00
longsonr 5a4aaccb28 Bug 386713 - Mark text-font-weight-01.svg passing on linux r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D81453
2020-06-28 23:40:18 +00:00
Glenn Watson 1628e0582a Bug 1647862 - Fix panic when casting large rects to i32. r=Bert
In various parts of the picture and mask code, we were casting
the `clipped` rect to i32 (after rounding out). However, this
can cause overflow panics when the origin of the rect is too big.

Instead, treat the origin as f32 (which it was generally being
converted to anyway), and only cast the size part to be i32 as
required. This is safe since we know that the size has been
clipped to the visible screen, so will always be safe to cast
to i32.

Differential Revision: https://phabricator.services.mozilla.com/D80968
2020-06-28 22:00:56 +00:00
Kagami Sascha Rosylight 21f2b48e01 Bug 1647525 - Use HasAnyStateBits() in remaining layout files r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81230
2020-06-28 01:00:19 +00:00
Kagami Sascha Rosylight 3979f83c6e Bug 1647525 - Use HasAnyStateBits() in nsSplitterFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81229
2020-06-27 14:32:34 +00:00
Kagami Sascha Rosylight afef7b8459 Bug 1647525 - Use HasAnyStateBits() in nsPopupSetFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81228
2020-06-27 14:28:32 +00:00
Kagami Sascha Rosylight f54ce89254 Bug 1647525 - Use HasAnyStateBits() in nsBoxFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81227
2020-06-27 14:30:49 +00:00
Kagami Sascha Rosylight e99550a841 Bug 1647525 - Use HasAnyStateBits() in nsBox r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81226
2020-06-27 14:26:27 +00:00
Kagami Sascha Rosylight fe4c508e22 Bug 1647525 - Use HasAnyStateBits() in nsTableFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81225
2020-06-27 14:28:49 +00:00
Kagami Sascha Rosylight 24b9873504 Bug 1647525 - Use HasAnyStateBits() in SVGTextFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81224
2020-06-27 14:22:58 +00:00
Kagami Sascha Rosylight 1922472bfb Bug 1647525 - Use HasAnyStateBits() in SVGObserverUtils r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81223
2020-06-27 14:22:50 +00:00
Kagami Sascha Rosylight f3236784fc Bug 1647525 - Use HasAnyStateBits() in SVGGeometryFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81222
2020-06-27 14:22:02 +00:00
Kagami Sascha Rosylight 52dc835ea9 Bug 1647525 - Use HasAnyStateBits() in nsSVGUtils r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81221
2020-06-27 14:21:39 +00:00
Kagami Sascha Rosylight 1321196011 Bug 1647525 - Use HasAnyStateBits() in nsSVGSwitchFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81220
2020-06-27 14:23:36 +00:00
Kagami Sascha Rosylight a4ae8eced4 Bug 1647525 - Use HasAnyStateBits() in nsSVGOuterSVGFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81219
2020-06-27 14:18:09 +00:00
Kagami Sascha Rosylight 01781c983c Bug 1647525 - Use HasAnyStateBits() in nsSVGIntegrationUtils r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81218
2020-06-27 14:15:47 +00:00
Kagami Sascha Rosylight 73697d6a65 Bug 1647525 - Use HasAnyStateBits() in nsSVGForeignObjectFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81217
2020-06-27 15:53:29 +00:00
Kagami Sascha Rosylight ea355c9152 Bug 1647525 - Use HasAnyStateBits() in nsSVGContainerFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81216
2020-06-27 14:15:42 +00:00
Kagami Sascha Rosylight e6be47e504 Bug 1647525 - Use HasAnyStateBits() in nsFontFaceUtils r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81215
2020-06-27 14:10:40 +00:00
Kagami Sascha Rosylight 0011786c13 Bug 1647525 - Use HasAnyStateBits() in nsDisplayList r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81214
2020-06-27 14:11:08 +00:00
Kagami Sascha Rosylight b6dc482753 Bug 1647525 - Use HasAnyStateBits() in nsCSSRendering r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81213
2020-06-27 14:09:53 +00:00
Kagami Sascha Rosylight c444cc3b4f Bug 1647525 - Use HasAnyStateBits() in nsMathMLContainerFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81212
2020-06-27 14:07:05 +00:00
Kagami Sascha Rosylight aba64a8c07 Bug 1647525 - Use HasAnyStateBits() in ViewportFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81211
2020-06-27 14:09:45 +00:00
Kagami Sascha Rosylight 0c4cbfa46b Bug 1647525 - Use HasAnyStateBits() in ReflowInput r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81210
2020-06-27 14:06:06 +00:00
Kagami Sascha Rosylight 7815996cb8 Bug 1647525 - Use HasAnyStateBits() in nsTextFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81209
2020-06-27 13:17:44 +00:00
Kagami Sascha Rosylight fdd4c54d63 Bug 1647525 - Use HasAnyStateBits() in nsSubDocumentFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81208
2020-06-27 13:17:36 +00:00
Kagami Sascha Rosylight 2cff1c7497 Bug 1647525 - Use HasAnyStateBits() in nsSplittableFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81207
2020-06-27 13:17:29 +00:00
Kagami Sascha Rosylight b601151ba7 Bug 1647525 - Use HasAnyStateBits() in nsPlaceholderFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81206
2020-06-27 13:17:21 +00:00
Kagami Sascha Rosylight 211ea9487d Bug 1647525 - Use HasAnyStateBits() in nsInlineFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81205
2020-06-27 13:17:14 +00:00
Kagami Sascha Rosylight 1732f70ce2 Bug 1647525 - Use HasAnyStateBits() in nsIFrameInlines r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81204
2020-06-27 13:17:06 +00:00
Kagami Sascha Rosylight 8be8aebf9d Bug 1647525 - Use HasAnyStateBits() in nsGridContainerFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81203
2020-06-27 13:17:04 +00:00
Kagami Sascha Rosylight 93819231cb Bug 1647525 - Use HasAnyStateBits() in nsGfxScrollFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81202
2020-06-27 13:16:56 +00:00
Kagami Sascha Rosylight ac5b595f91 Bug 1647525 - Use HasAnyStateBits() in nsFontInflationData r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81201
2020-06-27 13:16:49 +00:00
Kagami Sascha Rosylight 665e5fe0b3 Bug 1647525 - Use HasAnyStateBits() in nsFlexContainerFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81200
2020-06-27 13:16:41 +00:00
Kagami Sascha Rosylight 91d8e0a89a Bug 1647525 - Use HasAnyStateBits() in nsContainerFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81199
2020-06-27 14:07:43 +00:00
Kagami Sascha Rosylight 2bd2a63ded Bug 1647525 - Use HasAnyStateBits() in nsColumnSetFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81198
2020-06-27 13:16:31 +00:00
Kagami Sascha Rosylight ca9abb5ac5 Bug 1647525 - Use HasAnyStateBits() in nsCanvasFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81197
2020-06-27 13:16:23 +00:00
Kagami Sascha Rosylight 12f08ffb68 Bug 1647525 - Use HasAnyStateBits() in nsBulletFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81196
2020-06-27 13:16:21 +00:00
longsonr 71614873fb Bug 1648737 - Move SVGAFrame SVGGFrame SVGGenericContainerFrame SVGInnerSVGFrame SVGMarkerFrame SVGMaskFrame SVGSymbolFrame SVGViewportFrame to the mozilla namespace r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D81310
2020-06-27 05:39:42 +00:00
Mihai Alexandru Michis 20dfc519d1 Backed out changeset 1b8b8756acad (bug 1648737) for causing bustages in SVGMaskFrame.h
CLOSED TREE
2020-06-27 02:24:41 +03:00
Ting-Yu Lin 21e20054e5 Bug 1648824 - Set correct build dependency for FrameClasses.py. r=jwatt
GenerateFrameLists.py uses FrameClasses.py as an input. We should add
FrameClasses.py in 'inputs' arguments so that whenever FrameClasses.py
is changed, the build system re-runs GenerateFrameLists.py.

Differential Revision: https://phabricator.services.mozilla.com/D81371
2020-06-26 21:43:40 +00:00
longsonr 3b9835e5b8 Bug 1648737 - Move SVGAFrame SVGGFrame SVGGenericContainerFrame SVGInnerSVGFrame SVGMarkerFrame SVGMaskFrame SVGSymbolFrame SVGViewportFrame to the mozilla namespace r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D81310
2020-06-26 19:27:08 +00:00
Ting-Yu Lin 675da8e9a4 Bug 1648673 - Remove duplicate CSSOrderAwareFrameIteratorT typedefs in nsGridContainerFrame.h r=dholbert
* It's easier to maintain the type aliases of in one place, i.e.
CSSOrderAwareFrameIterator.h, and the iterator's header itself doesn't
include a lot of headers that add complex dependencies to
nsGridContainerFrame.h.

* Make "jump to definition" functionality in editors work
correctly (rather than just jumping to those declarations.)

Differential Revision: https://phabricator.services.mozilla.com/D81281
2020-06-26 16:51:40 +00:00
Kartikaya Gupta 2876150741 Bug 1648742 - Make the reftest-analyzer render TEST-KNOWN-INTERMITTENT-FAIL screenshots. r=jgraham
Also it will understand TEST-KNOWN-INTERMITTENT-PASS, but not render those by
default since they're passing.

Differential Revision: https://phabricator.services.mozilla.com/D81314
2020-06-26 12:26:57 +00:00
Emilio Cobos Álvarez 7c995807da Bug 1646936 - Generate a single metadata file in the objdir, and feed it to cbindgen. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D80360
2020-06-26 10:41:26 +00:00
Coroiu Cristina 302c2fa31a Backed out changeset 8f948dd74aba (bug 1646936) for SM and Toolchain failures on a CLOSED TREE 2020-06-26 13:08:09 +03:00
Emilio Cobos Álvarez 9c7c03bf30 Bug 1646936 - Generate a single metadata file in the objdir, and feed it to cbindgen. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D80360
2020-06-26 09:37:16 +00:00
Emilio Cobos Álvarez 8ae606c7bf Bug 1648095 - Don't defer the same sheet load twice. r=heycam
When we call into LoadSheet when starting pending loads for a given
loader, it may be the case that the original loader may still not care
about the load. However some other loader will, so we can't defer this.

This was also causing our state to get out of sync, because if this
happened, then we'd fail to account for it in other loaders.

Differential Revision: https://phabricator.services.mozilla.com/D81119
2020-06-26 01:17:40 +00:00
Timothy Nikkel bc9a1824af Bug 1647948. Relax assertion about image aspect ratio to consider that images can go into error state. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D80826
2020-06-25 23:51:22 +00:00
Ting-Yu Lin a826558cef Bug 1648615 - Add hotkeys to dump DOM tree and frame tree in layout debugger. r=emilio
* ctrl+d: Dump DOM tree (content). (Use "d" because "c" is for copy.)
* ctrl+f: Dump frame trees.
* ctrl+p: Dump frame trees in CSS pixels.

On macOS, the modified is cmd instead of ctrl.

Differential Revision: https://phabricator.services.mozilla.com/D81234
2020-06-25 23:59:15 +00:00
longsonr ea442838d3 Bug 1648463 - Move SVGForeignObjectFrame SVGImageFrame and SVGUseFrame to mozilla namespace r=dholbert,jgilbert
stop exposing SVGImageListener as only SVGImageFrame uses it.

Differential Revision: https://phabricator.services.mozilla.com/D81087
2020-06-25 20:42:49 +00:00
Hiroyuki Ikezoe 1320a9622c Bug 1648013 - Migrate reftest-paged reftests in layout/reftests/columns into wpt. r=TYLin
Differential Revision: https://phabricator.services.mozilla.com/D80832
2020-06-25 21:01:34 +00:00
Hiroyuki Ikezoe 2d9e750de3 Bug 1648016 - Migrate reftest-paged reftests in layout/reftests/details-summary into wpt. r=TYLin
Differential Revision: https://phabricator.services.mozilla.com/D80833
2020-06-25 21:01:26 +00:00
Daosheng Mu af1368e7aa Bug 1602072 - Add a gfxInfo flag determine Firefox is embedded by FxR for telemetry. r=thomasmo,chutten,froydnj,jrmuizel,geckoview-reviewers,rbarker,snorp
Differential Revision: https://phabricator.services.mozilla.com/D56233
2020-06-25 17:22:20 +00:00
Kagami Sascha Rosylight 183aa61185 Bug 1647525 - Use HasAnyStateBits() in nsBlockFrame.h r=emilio
Depends on D81106

Differential Revision: https://phabricator.services.mozilla.com/D81107
2020-06-25 14:50:56 +00:00
Kagami Sascha Rosylight 3ae5939e53 Bug 1647525 - Use HasAnyStateBits() in nsBlockFrame.cpp r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81106
2020-06-25 16:12:44 +00:00
Kagami Sascha Rosylight 1eb0cddc4a Bug 1647525 - Use HasAllStateBits in nsBlockFrame.cpp r=emilio
Depends on D81104

Differential Revision: https://phabricator.services.mozilla.com/D81105
2020-06-25 14:48:46 +00:00
Kagami Sascha Rosylight 39f111a1de Bug 1647525 - Use HasAnyStateBits() in nsAbsoluteContainingBlock r=emilio
Depends on D81103

Differential Revision: https://phabricator.services.mozilla.com/D81104
2020-06-25 14:44:44 +00:00
Kagami Sascha Rosylight 64a111025f Bug 1647525 - Use HasAnyStateBits() in BlockReflowInput r=emilio
Depends on D81102

Differential Revision: https://phabricator.services.mozilla.com/D81103
2020-06-25 14:43:26 +00:00
Kagami Sascha Rosylight 1bc00c970c Bug 1647525 - Use HasAnyStateBits() in nsSelectsAreaFrame r=emilio
Depends on D81101

Differential Revision: https://phabricator.services.mozilla.com/D81102
2020-06-25 14:11:10 +00:00
Kagami Sascha Rosylight fc512af910 Bug 1647525 - Use HasAnyStateBits() in nsListControlFrame r=emilio
Depends on D81100

Differential Revision: https://phabricator.services.mozilla.com/D81101
2020-06-25 14:11:03 +00:00
Kagami Sascha Rosylight 987d11319c Bug 1647525 - Use HasAnyStateBits() in nsFieldSetFrame r=emilio
Depends on D81099

Differential Revision: https://phabricator.services.mozilla.com/D81100
2020-06-25 14:10:40 +00:00
Kagami Sascha Rosylight ec26e7ea7d Bug 1647525 - Use HasAnyStateBits() in nsComboboxControlFrame r=emilio
Depends on D81098

Differential Revision: https://phabricator.services.mozilla.com/D81099
2020-06-25 14:10:27 +00:00
Kagami Sascha Rosylight c1fb8f39c5 Bug 1647525 - Use HasAnyStateBits() in RestyleManager r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81098
2020-06-25 14:24:45 +00:00
Kagami Sascha Rosylight 105b257eeb Bug 1647525 - Use HasAnyStateBits() in PresShell r=emilio
Depends on D81096

Differential Revision: https://phabricator.services.mozilla.com/D81097
2020-06-25 14:09:31 +00:00
Kagami Sascha Rosylight 330db08f71 Bug 1647525 - Use HasAnyStateBits() in nsLayoutUtils r=emilio
Depends on D81095

Differential Revision: https://phabricator.services.mozilla.com/D81096
2020-06-25 14:27:15 +00:00
Kagami Sascha Rosylight f99f3caa1e Bug 1647525 - Use HasAnyStateBits() in nsGenConList r=emilio
Depends on D81094

Differential Revision: https://phabricator.services.mozilla.com/D81095
2020-06-25 14:09:00 +00:00
Kagami Sascha Rosylight 70a090ba3a Bug 1647525 - Use HasAnyStateBits() in nsFrameManager r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81094
2020-06-25 15:39:32 +00:00
Kagami Sascha Rosylight 1793f22207 Bug 1647525 - Use HasAnyStateBits() in nsCSSFrameConstructor r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81093
2020-06-25 14:23:35 +00:00
Kagami Sascha Rosylight 8c5c27b442 Bug 1647525 - Use HasAnyStateBits() in nsCaret r=emilio
Depends on D81091

Differential Revision: https://phabricator.services.mozilla.com/D81092
2020-06-25 14:07:45 +00:00
Kagami Sascha Rosylight 874fc4b1a7 Bug 1647525 - Use HasAnyStateBits() in nsBidiPresUtils r=emilio
Depends on D81090

Differential Revision: https://phabricator.services.mozilla.com/D81091
2020-06-25 14:07:33 +00:00
Kagami Sascha Rosylight c6824c2d07 Bug 1647525 - Use HasAnyStateBits() in nsIFrame.h r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81090
2020-06-25 14:06:55 +00:00
Emilio Cobos Álvarez 88f6ea40ee Bug 1647474 - Wait for frame callbacks on the right window. r=kats
Quite obvious in hindsight :(

Differential Revision: https://phabricator.services.mozilla.com/D81128
2020-06-25 16:00:43 +00:00
Kartikaya Gupta fcd82d40d2 Bug 1648451 - Stop resetting the scroll anchor on visual viewport size changes. r=emilio
While it makes sense to do this when the visual viewport offset changes, it
doesn't make as much sense when the visual viewport size changes. The size can
change whenever non-overlay scrollbars are added or removed to the root
scrollframe, which is an operation that seems like it shouldn't interfere with
scroll anchoring at all.

Differential Revision: https://phabricator.services.mozilla.com/D81071
2020-06-25 12:58:50 +00:00
Kartikaya Gupta e3dbdcd341 Bug 1648305 - Use the scrollable rect size for first-paint intrinsic scale calculation. r=hiro
When meta-viewport support is enabled, the call to UpdateResolutionForFirstPaint
from RefreshViewportSize is followed by a call to ShrinkToDispalySizeIfNeeded,
which calls UpdateResolutionForContentSizeChange and uses the scrollable rect
size for the intrinsic scale computation. So the intrinsic scale computation
in UpdateResolutionForFirstPaint causes a transient state where the resolution
and visual viewport size is wrong. It is corrected immediately after, but
changing the visual viewport size like that ends up marking frames dirty for
reflow. Avoiding the transient state avoids those reflows, which is a nice
optimization.

Differential Revision: https://phabricator.services.mozilla.com/D80996
2020-06-25 08:41:24 +00:00
Narcis Beleuzu 16b93d8b26 Backed out changeset c2e266e2f077 (bug 1648013) for reftest failure on column-balancing-paged-001.html . CLOSED TREE 2020-06-25 13:45:10 +03:00
Narcis Beleuzu f8a925a7a9 Backed out changeset 3f21595a6b8e (bug 1648016) for reftest failures on details-page-break-after-1.html . CLOSED TREE 2020-06-25 13:36:59 +03:00
Hiroyuki Ikezoe 634a59dd84 Bug 1648013 - Migrate reftest-paged reftests in layout/reftests/columns into wpt. r=TYLin
Differential Revision: https://phabricator.services.mozilla.com/D80832
2020-06-25 09:41:47 +00:00
Hiroyuki Ikezoe 09828f53be Bug 1648016 - Migrate reftest-paged reftests in layout/reftests/details-summary into wpt. r=TYLin
Differential Revision: https://phabricator.services.mozilla.com/D80833
2020-06-25 09:23:53 +00:00
Delan Azabani 5dc229e516 Bug 1630935 - Add use counter and deprecation warning for STIXGeneral fonts. r=emilio
This patch adds the boolean pref mathml.stixgeneral_operator_stretching.disabled, which defaults to true iff nightly.

When the pref is true, stretched operators won’t be rendered with STIXGeneral, because we only use OpenType MATH tables (in fonts that have them) or the generic Unicode table.

When the pref is false, we continue to support STIXGeneral for stretched operators, but warn the author in devtools and bump the use counter (up to once per page). This only happens when a stretched operator actually uses STIXGeneral: not when we successfully render the operator with some other font earlier in the font-family stack, and not when STIXGeneral isn’t installed.

Differential Revision: https://phabricator.services.mozilla.com/D73833
2020-06-25 04:20:57 +00:00
Lee Salzman 0f03ab076c Bug 1645621 - gracefully downgrade to grayscale font smoothing in WR when necessary. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D80969
2020-06-25 03:01:04 +00:00
Kartikaya Gupta 1098b5e8c3 Bug 1648193 - Additional minor cleanup. r=hiro
Instead of having callers compute the cssToDev and pass it to the zoom/
resolution conversion functions, we can just do it in those functions directly.

Differential Revision: https://phabricator.services.mozilla.com/D80939
2020-06-24 23:48:51 +00:00
Kartikaya Gupta 114f22a931 Bug 1648193 - Split UpdateResolution into three different functions. r=hiro
This is a hard diff to read but fundamentally a pretty simple patch. The old
UpdateResolution function had a giant if condition in the middle conditioned
on the update type. Inside the ViewportSize branch there was a further nested
if conditioned on mIsFirstPaint. The function got split into three, with each
new function holding one of the three main blocks of code, along with a copy
of the stuff before and after the if condition. And then I simplified each
function individually to remove unnecessary variables, add some early-exits
and reduce nesting levels, etc.

Depends on D80937

Differential Revision: https://phabricator.services.mozilla.com/D80938
2020-06-24 23:45:00 +00:00
Kartikaya Gupta 4549c23502 Bug 1648193 - Stop passing things to MVM that it already knows how to compute. r=hiro
This removes the two parameters to ShrinkToDisplaySizeIfNeeded and corresponding
parameters passed to UpdateResolution. The call site in nsGfxScrollFrame
gets the arguments from the MVM itself, so it seems silly to be getting things
from the MVM just to pass it back in. The other call sites are already in theMVM.
This change might be slightly less efficient because it re-computes the viewport
info when the caller might already have it but this isn't a hot code path so
I'm not too concerned.

Differential Revision: https://phabricator.services.mozilla.com/D80937
2020-06-24 22:22:17 +00:00
Emily McDonough 9c4930c11b Bug 1633737 - Fix asserts and array accesses for oversized grid tracks with repeat-auto r=emilio
Handle grid track lists that are too large in CalculateRepeatFillCount. Check
for repeat tracks that begin or end past the maximum track limit in
InitRepeatTracks, and handle the possible size mismatch in nsComputedDOMStyle.

This may result in there being fewer than the maximum number of tracks again
after removing empty tracks in a repeat(auto-fit), but only limiting the track
count after removing empty tracks would leave the number of repeat tracks
unbounded (or require a separate limit on just the repeat track count).

Differential Revision: https://phabricator.services.mozilla.com/D76191
2020-06-24 18:25:08 +00:00
Emilio Cobos Álvarez 2948ee6b8c Bug 1647871 - Remove AutoResizeReflowSquasher. r=kats
After the above, I don't think this is needed anymore, because we
shouldn't be looking at the widget size from layout.

It also shouldn't cause more reflows on desktop at least, because of the
early out in ResizeReflowIgnoreOverride before calling
SimpleResizeReflow().

Differential Revision: https://phabricator.services.mozilla.com/D80731
2020-06-24 13:29:18 +00:00
Emilio Cobos Álvarez 9972401d14 Bug 1647871 - Simplify content viewer composition size code. r=kats,hiro
This should be equivalent because:

 * Content viewer size and widget size should eventually be the same always
   (modulo mid-resize, see bug 1645954).

 * Only the root content document has a widget on android (the puppet widget).

 * Only the root content document has a dynamic toolbar.

 * We were only calling this on the root document, which has no parent pres
   context (at least with e10s). Without e10s we could have a chrome
   prescontext (not sure it that ends up being a parent in the pres context
   chain), but we should never change the resolution of that one, so I think
   aScaleContentViewerSize is just useless.

This avoids having two sources of truth by always checking the content viewer
size without subtracting the dynamic toolbar max size.

Differential Revision: https://phabricator.services.mozilla.com/D80723
2020-06-24 14:46:40 +00:00
longsonr 0a29054e26 Bug 1647101 - Move SVGTextFrame SVGViewFrame SVGFEContainerFrame SVGFEImageFrame SVGFELeafFrame SVGFEUnstyledLeafFrame into the mozilla namespace r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D80383
2020-06-23 22:59:34 +00:00
Emilio Cobos Álvarez 45dcbc2d5c Bug 1645987 - Isolate sheet cache by partitioned principal. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D80678
2020-06-24 06:47:38 +00:00
Ting-Yu Lin 6047332ae6 Bug 1647332 Part 4 - Keep doubling the extra block-size that adds to the estimate column block-size until finding a feasible one. r=heycam
In FindBestBalanceBSize(), suppose we have aUnboundedLastColumn equals
to true, and the measuring reflow of all the columns is feasible. This
setting represents the most common scenario of multi-column layout as
the multi-column footnote on Wikipedia.

We used to use 600 as the extra block-size added to the estimate column
block-size. However, if the first guess of the column block-size, say
G1, is infeasible, the feasible block-size is still bound to the sum of
all columns S. That leaves us a massive range between G1 and S to
search.

We don't want to use a larger fixed extra block-size. Although it can
reduce the possibility of failing the first guess, but for cases where a
smaller extra block-size is sufficient, it increases the search range
and the iteration number before the binary search converges.

Instead, we can spend the first few iterations doubling the extra
block-size E added to the estimate column block-size until we find the
first feasible block-size. This gives us a smaller upper bound S / N +
E, where N is the number of columns.

Differential Revision: https://phabricator.services.mozilla.com/D80571
2020-06-23 18:34:42 +00:00
Ting-Yu Lin 7818447d6c Bug 1647332 Part 3 - Extract the constant 600 app units when estimating balancing column block-size. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D80570
2020-06-23 18:34:40 +00:00
Ting-Yu Lin 777470ec78 Bug 1647332 Part 2 - Output the number of columns in ColumnBalanceData, and replace nsFrameList::GetLength(). r=heycam
The motivation is to replace mFrames.GetLength() in
FindBestBalanceBSize() since it is O(N), where N is the number of
columns.

Also, counting the column number from 1 so that it matches mUsedColCount
without needing to subtract 1 at some places.

Differential Revision: https://phabricator.services.mozilla.com/D80569
2020-06-23 18:34:36 +00:00
Ting-Yu Lin 24871a70de Bug 1647332 Part 1 - Print more information in column set log. r=heycam
* childContentBEnd: this value can be larger than
kidDesiredSize.BSize(wm) if -moz-column-content anonymous blocks has a
child which is overflow-incomplete.

* mLastBSize: last column's block-size is important in column balancing
algorithm because it sets mKnownInfeasibleBSize when a balancing
iteration is feasible.

* The iteration count in column balancing. This is an easy way to
observe column balancing performance.

Differential Revision: https://phabricator.services.mozilla.com/D80568
2020-06-23 18:34:34 +00:00
Timothy Nikkel 67d20a7d63 Bug 1646887. Do a full display list rebuild if scrollbars change to or from being overlay scrollbars. r=miko
accessible/tests/browser/bounds/browser_test_resolution.js started flipping on the pref ui.useOverlayScrollbars in order to run it's test properly.

Changing the pref ui.useOverlayScrollbars is first handled in the look and feel code. A "look-and-feel-changed" notification is sent out. PresShell::Observe receives this and calls nsPresContext::ThemeChanged. This queues a runnable. This will eventually reflow all scrollframes via the call MediaFeatureValuesChangedAllDocuments in nsPresContext::ThemeChangedInternal. But before that can happen we can paint, and |LookAndFeel::GetInt(LookAndFeel::IntID::UseOverlayScrollbars)| will return the new value. Which means ScrollFrameHelper::AppendScrollPartsTo will place the scrollbars at their new position in the display list and nothing has marked the scrollbars as modified so we fail to merge.

Differential Revision: https://phabricator.services.mozilla.com/D80585
2020-06-23 14:48:29 +00:00
manas 14bc521eda Bug 1639893 Part 1 - Partial Imlementation of GetOverflowingChildrenOfElement. r=bradwerth,emilio
Differential Revision: https://phabricator.services.mozilla.com/D80216
2020-06-23 18:51:32 +00:00
Honza Bambas 6018bc4a66 Bug 1603542 - Properly mark CSS preloads as used when processing stylesheet tags or imports, r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D76528
2020-06-23 17:18:47 +00:00
Andrew Osmond a70c654c29 Bug 1550710 - Make vector images enable high quality scaling for embedded raster images. r=tnikkel
We did not pass FLAG_HIGH_QUALITY_SCALING down to the document used to
rasterize the SVG to a surface, resulting in embedded raster images to
not use high quality downscaling.

Differential Revision: https://phabricator.services.mozilla.com/D56422
2020-06-23 12:43:21 +00:00
Kagami Sascha Rosylight 8bbdc8255f Bug 1647525 - Use HasAnyStateBits() in nsIFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D80573
2020-06-23 00:24:04 +00:00
Emilio Cobos Álvarez 3dba84f650 Bug 1645122 - Properly block onload when coalescing loads with other documents. r=heycam
If two loading documents hit the sheet cache and we coalesce the
resource load, there's nothing that prevents the load event on the
second document from firing right now, and there should be.

While at it, also fix the handling of the pending load count, though
it has no correctness impact on the particular test we're fixing here...

We were never decrementing it, which is of course wrong. However it
kinda ended up working because it just causes us to not defer more
loads.

The new assertions and responsibility of the counter should ensure it
stays correct.

Differential Revision: https://phabricator.services.mozilla.com/D80583
2020-06-23 08:27:54 +00:00