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

16764 Коммитов

Автор SHA1 Сообщение Дата
Connor Brewster 87793c740b Bug 1573871 - Only create backdrop root containers when needed r=miko,mstange
Differential Revision: https://phabricator.services.mozilla.com/D42002

--HG--
extra : moz-landing-system : lando
2019-08-14 20:50:41 +00:00
Kristen Wright 87723c635c Bug 1573268 - Convert layout.css.outline-style-auto.enabled to static pref. r=njn
Converts layout.css.outline-style-auto.enabled to a static pref and removes nsLayoutUtils::isOutlineStyleAutoEnabled().

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

--HG--
extra : moz-landing-system : lando
2019-08-14 00:26:02 +00:00
kriswright 1774881905 Bug 1573268 - Convert font.size.inflation.lineThreshold to a static pref. r=njn
Converts font.size.inflation.lineThreshold varcache pref to a static pref. Like previous revisions, this retains the member variable in PresShell.

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

--HG--
extra : moz-landing-system : lando
2019-08-13 18:23:54 +00:00
kriswright 2809ff7952 Bug 1573268 - Convert layout.css.ruby.intercharacter.enabled to static pref. r=njn
Converts layout.css.ruby.intercharacter.enabled to a static pref and removes the associated function nsLayoutUtils::IsInterCharacterRubyEnabled(). Also removes the macro INTERCHARACTER_RUBY_ENABLED_PREF_NAME, since it was only being used to add the varcache pref.

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

--HG--
extra : moz-landing-system : lando
2019-08-13 22:52:38 +00:00
kriswright 6c57b2f2a8 Bug 1573268 - Convert layout.animated-image-layers.enabled to static pref. r=njn
Converts layout.animated-image-layers.enabled to a static pref and removes the nsLayoutUtils::AnimatedImageLayersEnabled() function, replacing it with the static pref.

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

--HG--
extra : moz-landing-system : lando
2019-08-13 00:03:38 +00:00
Mats Palmgren c784db904f Bug 1557825 part 1 - Implement 'display:block ruby'. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D40211

--HG--
extra : moz-landing-system : lando
2019-08-14 14:38:31 +00:00
Mats Palmgren 53321dfa54 Bug 1105868 part 4 - Accessibility support for inline list-items. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D39833

--HG--
extra : moz-landing-system : lando
2019-08-14 14:37:16 +00:00
Mats Palmgren be3d9812c0 Bug 1105868 part 2 - Use nsStyleDisplay::DisplayInside() in a few places to prepare for inline list-items. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D39831

--HG--
extra : moz-landing-system : lando
2019-08-14 14:36:53 +00:00
Mats Palmgren 2b20df6bd7 Bug 1105868 part 1 - Use nsStyleDisplay::IsListItem() in a few places to prepare for inline list-items. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D39830

--HG--
extra : moz-landing-system : lando
2019-08-14 14:36:18 +00:00
Mats Palmgren 932139087b Bug 1038294 part 15 - Change a few existing nsStyleDisplay accessors to use DisplayInside()/DisplayOutside(). r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D39767

--HG--
extra : moz-landing-system : lando
2019-08-14 14:35:19 +00:00
Nathan Froyd 87c432d06a Bug 1570982 - remove `CPP_THROW_NEW`; r=glandium
We always define it to the same thing, and we're inconsistent in whether
we use `CPP_THROW_NEW` or `throw()`, so we might as well just use the
standard C++ thing and get rid of some baggage.

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

--HG--
extra : moz-landing-system : lando
2019-08-14 01:32:41 +00:00
Hiroyuki Ikezoe ba1ce0580a Bug 1508177 - Use expanded layout viewport height to tell whether we need to render the vertical overlay scrollbar. r=tnikkel
In the previous commit, we expanded layout viewport height but during reflow
the expanded layout viewport size hasn't reflected in
ScrollReflowInput::mContentsOverflowAreas.ScrollableOverflow(). We explicitly
need to use the expanded height to tell whether we need vertical vertical
scrollbars or not.

Note that the expanded layout viewport height should NOT be used for non-overlay
scrollbars cases since, for example, if the content width is specified by
`width: 100%`, the non-overlay vertical scrollbar narrows down the content's
used width a little bit because of the vertical scrollbar width, which in turn
the minimum scale gets bigger because the content's width became bit narrower,
thus the layout viewport size calculated with the minimum scale gets smaller,
then it results the vertical scrollbar no longer needs to be rendered, thus
the minimum scale gets back to the original value, then the vertical scroll
needs to be rendered again, thus this sequence of processes happens repreatedly.

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

--HG--
extra : moz-landing-system : lando
2019-08-13 22:38:01 +00:00
Hiroyuki Ikezoe a2a3c33989 Bug 1508177 - Expand the minimum scale height even if the expanded area doesn't contain any contents. r=botond
As a result of the expansion, position:fixed elements are attached to the
expanded layout viewport.

The expanded value is used behind a pref which is enabled by default on nightly
initially, and the pref will be fliped in bug 1571599 on other channels.

scrollbars-in-landscape-content.html still fails since the vertical overlay
scrollbar doesn't appear since we are not yet using the expanded value during
reflow to tell whether we need overlay scrollbars or not.  This will be fixed
by the next commit.

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

--HG--
extra : moz-landing-system : lando
2019-08-13 22:37:57 +00:00
Hiroyuki Ikezoe 10f4aacd62 Bug 1508177 - Reftests that check scrollbars are properly appeared by the difference between visual and layout viewports. r=botond,tnikkel
scrollbars-in-landscape-content.html doesn't fail on environments where we don't
use overlay scrollbars because scrollbars for the visual viewport are not
rendered there.

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

--HG--
extra : moz-landing-system : lando
2019-08-13 22:37:54 +00:00
Connor Brewster 04d4ece0af Bug 1178765 - Part 3: Add backdrop-filter display items to Gecko r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D39099

--HG--
extra : moz-landing-system : lando
2019-08-13 22:02:57 +00:00
Charlie Marlow 693746ef3d Bug 1558929: adding from-font support to text-underline-offset and text-decoration-thickness r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D41476

--HG--
extra : moz-landing-system : lando
2019-08-13 17:43:25 +00:00
Brad Werth be668ed4e1 Bug 1523844 Part 1: Rename ResolutionChangeOrigin::MainThreadRestore in anticipation of adding a related enum. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D41625

--HG--
extra : moz-landing-system : lando
2019-08-12 22:21:51 +00:00
Alexis Beingessner 22dbda5b64 Bug 1571738 - Fallback as late as possible for svg/color fonts. r=jrmuizel
Also includes some documentation gardening for TextDrawTarget on what we don't support.

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

--HG--
extra : moz-landing-system : lando
2019-08-12 15:40:26 +00:00
Ting-Yu Lin ebf027e14b Bug 1571849 - In ColumnSetFrame, use mParentReflowInput to get the ColumnSetWrapperFrame's reflow input. r=dbaron
In ColumnSetFrame's reflow methods, mCBReflowInput is equal to
mParentReflowInput in most of the cases.

However, a multicol <button> has the HTMLButtonControl as the outermost
frame, where ColumnSetWrapper is its -moz-button-content anonymous
child. In this case, mCBReflowInput is HTMLButtonControl's reflow input.

To get the correct computedBSize of ColumnSetWrapper, we need to use
mParentReflowInput.

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

--HG--
extra : moz-landing-system : lando
2019-08-12 06:41:51 +00:00
Emilio Cobos Álvarez 6068035edc Bug 1572805 - Use cbindgen for text-emphasis-style. r=boris
I sent https://github.com/eqrion/cbindgen/pull/377 since I got sick of
copy-pasting the private default constructor stuff :)

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

--HG--
extra : moz-landing-system : lando
2019-08-10 18:11:31 +00:00
Daniel Varga 3430859a68 Backed out 2 changesets (bug 1572805) for build-rusttests failure. On a CLOSED TREE
Backed out changeset 849ca4b3f9de (bug 1572805)
Backed out changeset 81b56d76505a (bug 1572805)
2019-08-10 21:07:03 +03:00
Emilio Cobos Álvarez ccd8c3bedc Bug 1572805 - Use cbindgen for text-emphasis-style. r=boris
I sent https://github.com/eqrion/cbindgen/pull/377 since I got sick of
copy-pasting the private default constructor stuff :)

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

--HG--
extra : moz-landing-system : lando
2019-08-10 16:21:15 +00:00
Brendan Dahl b474db77c6 Bug 1551344 - Part 1: Remove XULDocument code. r=smaug,Jamie
All .xul files have been loading as HTMLDocuments for a few weeks now, so
it should be safe to remove the XULDocument implementation.

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

--HG--
extra : moz-landing-system : lando
2019-08-09 19:57:50 +00:00
Ting-Yu Lin e2ec6d3c2d Bug 1572502 - Delete the in-tree FrameIdList.h and FrameTypeList.h. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D41254

--HG--
extra : moz-landing-system : lando
2019-08-09 01:30:56 +00:00
Andrew McCreight 78c8b1ffd6 Bug 1571855 - Disable tautology warning in nsIFrame.h in Clang. r=heycam
ClassID::nsBox_id is zero, so that case is trivial. Disable the
warning in Clang, like it is in GCC. The Clang pragma can't be behind
an #elseif because Clang appears to define __GNUC__, too.

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

--HG--
extra : moz-landing-system : lando
2019-08-08 22:20:01 +00:00
Razvan Maries a025d50160 Merge mozilla-central to autoland. a=merge on a CLOSED TREE
--HG--
extra : rebase_source : b9360eb82974f2add7877b6c9197a1297e0c74af
2019-08-09 02:57:47 +03:00
Razvan Maries cbb99dc4bf Backed out changeset 4c31868ffe1c (bug 1561326) for perma fails on browser_startup_syncIPC.js. a=backout 2019-08-08 22:44:38 +03:00
Brian Grinstead 9dac9754e5 Bug 1561326 - Support CSS min/max width/height for top level windows with root HTML element. r=emilio
Helps support migrating from XUL DOM to an HTML DOM structure. I attempted
to remove the early return when the root element is not a XUL element, but
it appears setting the transparency on a non XUL root is still broken
(test widget/tests/test_mouse_scroll.xul started failing on windows).

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

--HG--
extra : moz-landing-system : lando
2019-08-07 18:20:35 +00:00
Kristen Wright 5855268c8e Bug 1571544 - Convert the two layout.framevisibility.amountscrollbeforeupdate* prefs to static prefs. r=njn
Converts layout.framevisibility.amountscrollbeforeupdatevertical and layout.framevisibility.amountscrollbeforeupdatehorizontal to static prefs.

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

--HG--
extra : moz-landing-system : lando
2019-08-05 23:30:33 +00:00
L. David Baron 99fc596f62 Bug 1547759 - Ensure that we call ApplyRelativePositioning after the frame's new size has been set so it works correctly for RTL. r=jfkthame,dholbert
Differential Revision: https://phabricator.services.mozilla.com/D40568

--HG--
extra : moz-landing-system : lando
2019-08-08 20:04:40 +00:00
L. David Baron b4137c33ae Bug 1547759 - Add a flag to allow FinishReflowChild to handle relative positioning, and convert the caller for which this makes sense. r=jfkthame
Note that this changes the writing mode used for the SetSize call from
the parent's to the child's.  (This controls what position is kept
constant.)  I don't think this changes behavior at all, since there is
(for this caller) a SetRect call just below.

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

--HG--
extra : moz-landing-system : lando
2019-08-05 11:56:05 +00:00
L. David Baron c923b062b3 Bug 1547759 - Pass ReflowInput to FinishReflowChild in almost all cases. r=jfkthame
At first glance, it might look like this would change behavior, since
FinishReflowChild passes aReflowInput to DidReflow, which in turn
notifies aReflowInput's mPercentBSizeObserver.  However, if you examine
how the mPercentBSizeObserver is propagated, it can only be set for the
anonymous block wrapping the children of table cells, the children of
table cells, or additionally a child of a table wrapper frame that has
it set (i.e., a table or its caption, when logically a child of a table
cell).  Since all of the frames for which this is being changed are
either internal table elements that are inside of the table, or are
things that can never be a descendant of a table at all, there should be
no change in behavior.

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

--HG--
extra : moz-landing-system : lando
2019-08-05 11:52:19 +00:00
L. David Baron b4b211d733 Bug 1547759 - Print frame's normal position (when present) in frame dump debugging output. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D40563

--HG--
extra : moz-landing-system : lando
2019-08-05 11:45:55 +00:00
L. David Baron 1488be9417 Bug 1571250 - Convert flags passed to ReflowChild, FinishReflowChild, SyncFrameViewAfterReflow and from GetXULLayoutFlags / GetLayoutFlags into an enum class. r=TYLin
It seems better to convert this before adding a new flag (in bug
1547759) and risking replacing the wrong 0 with a flag.

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

--HG--
extra : moz-landing-system : lando
2019-08-08 19:48:19 +00:00
L. David Baron 85d61d1a95 Bug 1571249 - Remove the IsTableCell() function. r=TYLin
It was made pointless by the previous patch.

This replaces callers that had a frame type for another reason with the
frame type check that IsTableCell did, and callers that needed to call
Type() with an IsTableCellFrame call.

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

--HG--
extra : moz-landing-system : lando
2019-08-08 19:48:12 +00:00
L. David Baron 5afb94be01 Bug 1571249 - Remove BCTableCell as a distinct frame type. r=TYLin
There are two existing callers of IsTableCellFrame that both appear to want to
include BCTableCell frames, but don't.  A patch in bug 1547759 will add a
third that wants the same.

The existing users of frame types all have to work around it being a distinct
type, and none appear to want the distinction.  This removes that complexity.

If any callers want to make the distinction, they could implement QueryFrame
for BCTableCellFrame and use it.  (It's not implemented now, though!)

In a little more detail, prior to this patch (in my debug build, at least):
  * nsQueryFrame::ClassID::nsMathMLmtdFrame_id was 46
  * nsQueryFrame::ClassID::nsTableCellFrame_id was 47
  * nsQueryFrame::ClassID::nsBCTableCellFrame_id was 65
and entries 46 and 47 in sLayoutFrameTypes were
mozilla::LayoutFrameType::TableCell while entry 65 was
mozilla::LayoutFrameType::BCTableCell.

With this patch:
  * nsQueryFrame::ClassID::nsBCTableCellFrame_id is 40
  * nsQueryFrame::ClassID::nsMathMLmtdFrame_id is 41
  * nsQueryFrame::ClassID::nsTableCellFrame_id is 42
and entries 40 through 42 in sLayoutFrameTypes are
mozilla::LayoutFrameType::TableCell.

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

--HG--
extra : moz-landing-system : lando
2019-08-08 19:48:10 +00:00
Ting-Yu Lin 1e717d14b4 Bug 1569252 Part 2 - Let mHasColumnSpanSiblings propagate to all the continuations. r=dbaron
We want mHasColumnSpanSiblings to propagate to all the
continuations (both fixed ones or fluid ones) in nsFrame::Init() so that
we don't need to traverse all the way to FirstInFlow() for the bit in
nsBlockFrame::ComputeFinalBSize().

For the last ColumnSet or the last non-column-span wrapper, we'll need
to unset the bit for them manually after constructing them.

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

--HG--
extra : moz-landing-system : lando
2019-08-07 20:20:25 +00:00
Ting-Yu Lin 86d713320f Bug 1569252 Part 1 - Convert nsIFrame::HasColumnSpanSiblings() property into an nsIFrame bit. r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D40760

--HG--
extra : moz-landing-system : lando
2019-08-07 20:20:18 +00:00
Emilio Cobos Álvarez af948d7634 Bug 1572114 - Don't bother blocking onload for already-complete shape images. r=bradwerth
That way we don't need to re-request a reflow. This code can run from reflow
itself, so requesting a reflow from here can break invariants.

There's the question of whether this code should be running at all for
continuations, but this patch fixes a bug regardless of whether we do that or
not.

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

--HG--
extra : moz-landing-system : lando
2019-08-07 17:17:05 +00:00
Charlie Marlow f8d1049107 Bug 1411922: Part 1: Add rendering support for text-decoration-skip-ink r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D39377

--HG--
extra : moz-landing-system : lando
2019-08-07 17:41:13 +00:00
Emilio Cobos Álvarez c35938887d Bug 1571460 - Set prev-in-flow before calling nsFrame::Init. r=TYLin
Parts of nsFrame::Init or code called by it should be able to rely on the
invariant that, if the frame has the NS_FRAME_OUT_OF_FLOW bit, the first-in-flow
frame has a placeholder property.

Alternatively to this patch, the NS_FRAME_OUT_OF_FLOW frame bit could be
propagated later, as it used to be.

Differential Revision: https://phabricator.services.mozilla.com//D40815
2019-08-07 16:55:34 +02:00
Cosmin Sabou 76e15b4674 Backed out changeset 3f4421e34ab4 (bug 1571460) for assertion failures on nsTextFrame.cpp. CLOSED TREE 2019-08-07 14:57:58 +03:00
Emilio Cobos Álvarez aab2a5c0a2 Bug 1571460 - Set prev-in-flow before calling nsFrame::Init. r=TYLin
Parts of nsFrame::Init or code called by it should be able to rely on the
invariant that, if the frame has the NS_FRAME_OUT_OF_FLOW bit, the first-in-flow
frame has a placeholder property.

Alternatively to this patch, the NS_FRAME_OUT_OF_FLOW frame bit could be
propagated later, as it used to be.

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

--HG--
extra : moz-landing-system : lando
2019-08-07 10:44:54 +00:00
Ting-Yu Lin 9615a105df Bug 1571930 - Convert a MOZ_ASSERT in nsColumnSetFrame::ReflowChildren() to be non-fatal. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D40910

--HG--
extra : moz-landing-system : lando
2019-08-07 01:28:29 +00:00
Boris Chiou e158ad1169 Bug 1339672 - Support multiple track sizes for grid-auto-{columns|rows}. r=emilio,mats
Support `<track-size>+` on the implicit track sizing properties,
grid-auto-columns and grid-auto-rows.

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

--HG--
extra : moz-landing-system : lando
2019-08-06 18:32:16 +00:00
Andreea Pavel bc9193db19 Backed out changeset e9cc17a8f83f (bug 1571855) for build bustages on a CLOSED TREE 2019-08-07 00:23:58 +03:00
Andrew McCreight 92d2ef8571 Bug 1571855 - Disable tautology warning in nsIFrame.h in Clang. r=heycam
ClassID::nsBox_id is zero, so that case is trivial. Disable the
warning in Clang, like it is in GCC. The Clang pragma can't be behind
an #elseif because Clang appears to define __GNUC__, too.

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

--HG--
extra : moz-landing-system : lando
2019-08-06 20:45:35 +00:00
Masayuki Nakano f3fb0d1af8 Bug 1569613 - Add surrogate pair handling API to `nsTextFragment` r=hsivonen
We check surrogate pair at specific index in `nsTextFragement` in a lot of
places.  This requires boundary check of the index so that it can cause
security issue and crash reason with simple mistake, and also it steals
your time to understand the code what it does especially when it's a
part of an `if` condition.

Therefore, this patch adds new API to `nsTextFragment` and makes the all
surrogate pair handlers of `nsTextFragument` use new API.

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

--HG--
extra : moz-landing-system : lando
2019-08-06 05:43:21 +00:00
Emilio Cobos Álvarez bbb4b8dac6 Bug 1519958 - followup: Fix bustage in 32-bit builds and rust unit tests. r=me
CLOSED TREE
2019-08-05 22:53:35 +02:00
Emilio Cobos Álvarez 30fc8c8c4d Bug 1519958 - Improve stack size of grid templates and re-enable style struct size assertions disabled in the previous patch. r=boris
This re-enables the assertion which was disabled on the previous patch by doing
a bit of boxing around.

Differential Revision: https://phabricator.services.mozilla.com/D36599
2019-08-05 22:13:33 +02:00
Emilio Cobos Álvarez 1f3d6c04f2 Bug 1519958 - Refactor grid types to preserve repeat() at computed value time and use cbindgen. r=mats,boris
I'm _really_ sorry for the size of the patch. I tried to do this in two steps
but it was a lot of work and pretty ugly.

This patch makes us use cbindgen for grid-template-{rows,columns}, in order to:

 * Make us preserve repeat() at computed-value time. This is per spec since
   interpolation needs to know about repeat(). Except for subgrid, which did the
   repeat expansion at parse-time and was a bit more annoying (plus it doesn't
   really animate yet so we don't need it to comply with the spec).

 * Tweaks the WPT tests for interpolation to adopt the resolution at:
   https://github.com/w3c/csswg-drafts/issues/3503.

Trade-off here, as this patch stands, is that this change makes us use less
long-living memory, since we expand repeat() during layout, but at the cost of a
bit of CPU time during layout (conditional on the property applying though,
which wasn't the case before). It should be very easy to store a cached version
of the template, should this be too hot (I expect it isn't), or to change the
representation in other ways to optimize grid layout code if it's worth it.

Another trade-off: I've used SmallPointerArray to handle line-name merging,
pointing to the individual arrays in the style data, rather than actually
heap-allocating the merged lists. This would also be pretty easy to change
should we measure and see that it's not worth it.

This patch also opens the gate to potentially improving memory usage in some
other ways, by reference-counting line-name lists for example, though I don't
have data that suggests it is worth it.

In general, this patch makes much easier to tweak the internal representation of
the grid style data structures. Overall, I think it's a win, the amount of magic
going on in that mako code was a bit huge; it took a bit to wrap my head around
it.

This patch comments out the style struct size assertions. They will be
uncommented in a follow-up patch which contains some improvements for this type,
which are worth getting reviewed separately.

Also, this patch doesn't remove as much code as I would've hoped for because of
I tried not to change most of the dom/grid code for inspector, but I think a
fair bit of the nsGridContainerFrame.cpp code that collects information for it
can be simplified / de-copy-pasted to some extent. But that was a pre-existing
problem and this patch is already quite massive.

Differential Revision: https://phabricator.services.mozilla.com/D36598
2019-08-05 22:13:21 +02:00
Ting-Yu Lin 570f61b02d Bug 1571118 - Keep NS_FRAME_FIRST_REFLOW bit in nsBlockFrame::Reflow() until nsFrame::DidReflow(). r=dholbert
This patch lets nsBlockFrame keep its NS_FRAME_FIRST_REFLOW bit a bit
longer, for the full duration of its first reflow, so that in the future
we may add more code to inspect it if needed before nsFrame::DidReflow()
clears it.

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

--HG--
extra : moz-landing-system : lando
2019-08-05 17:54:34 +00:00
Ting-Yu Lin 83d9aa16f4 Bug 1571135 - Remove the preference that controls breaking floats inside columns. r=mats
Differential Revision: https://phabricator.services.mozilla.com/D40587

--HG--
extra : moz-landing-system : lando
2019-08-05 17:39:19 +00:00
L. David Baron 20201d0cc7 Bug 1404868 - Always reflow float placeholders when they move to a different block fragment. r=TYLin
Differential Revision: https://phabricator.services.mozilla.com/D40276

--HG--
extra : moz-landing-system : lando
2019-08-02 21:05:20 +00:00
L. David Baron 956e709378 Bug 1404868 - Record in the reflow input whether we're in a different page/column than before. r=TYLin
This depends on the line state stored in the previous patch, and will be
used in the following patch.

I'm passing this information through the reflow input here, rather than
doing an extra pass over the frame tree in the following patch, because
I believe it's substantially better for memory locality during reflow.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 23:51:21 +00:00
L. David Baron cbd6753ba8 Bug 1404868 - Record when lines are in a different fragment than the one in which they were previously reflowed. r=TYLin
This will be used in the following patch.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 20:44:53 +00:00
Ting-Yu Lin 26c2894a62 Bug 1570726 Part 2 - Don't call UpdateVisibleDescendantsState() when creating a continuation. r=hiro
After moving the logic that carries NS_FRAME_OUT_OF_FLOW bit from the
prev-in-flow into nsFrame::Init() in Part 1,
testing/web-platform/tests/css/css-multicol/float-and-block.html starts
to crash.

In the test, it has a float element that fragments into two columns.
When creating a continuation for the float frame, we have a callstack
looks like nsFrame::Init() -> UpdateVisibleDescendantsState() ->
GetInFlowParent(). Because NS_FRAME_OUT_OF_FLOW is set in
nsFrame::Init(), GetInFlowParent() tries to get
PlaceholderFrameProperty() on its FirstContinuation(), but the first
continuation is not established until the end of
nsCSSFrameConstructor::CreateContinuingFrame().

This being said, we don't need to UpdateVisibleDescendantsState() when
creating continuations because UpdateVisibleDescendantsState() needs to
traverse a stable frame tree, and the animation code only looks at the
primary frames.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 22:16:11 +00:00
Ting-Yu Lin 5afcc71944 Bug 1570726 Part 1 - Move frame state bits carrying from nsCSSFrameConstructor::CreateContinuingFrame() into nsFrame::Init(). r=dholbert
These frame state bits belong to the generic group, and there is
existing logic in nsFrame::Init() for carrying frame state bits. It's
better to consolidate them in one place.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 17:27:56 +00:00
Botond Ballo 9bd8db2016 Bug 1568826 - Restrict the fix for bug 1549625 to cases where we have a zoomable viewport. r=tnikkel
The fix for bug 1549625 is only necessary in cases where the layout and
visual viewports can diverge (currently mobile, and later desktop zooming),
but it has caused regressions in desktop scenarios that don't involve zooming.

While we can get a proper fix in place (tracked in bug 1543485), restricting
the existing fix to zoomable configurations mitigates the regressions.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 20:31:57 +00:00
Masayuki Nakano 765e91b497 Bug 1569902 - part 1: Stop using attribute to consider whether a `<br>` element is an editor bogus node or not r=m_kato,smaug
Editor creates a `<br>` element when it's root element is empty.
Then, it's stored by `TextEditRules::mBogusNode` and used for checking
whether the editor is empty quickly.  However, this `<br>` element has
`mozeditorbogusnode` attribute whose value is `true`.  However, adding or
removing the attribute is not cheap and web apps can refer such illegal
attribute.

Therefore, this patch makes `HTMLBRElement` take a specific flag whether
it's a bogus node or not.  However, this means that this hacky thing will be
exposed outside editor module.  For making what is the bogus node clearer,
this patch calls the such `<br>` elements as "padding `<br>` element for
empty editor".  So, this patch also includes a lot of renaming methods and
variables, and modifying related comments.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 05:44:40 +00:00
Ting-Yu Lin b14d39764b Bug 1548100 Part 2 - Fix the block-size of the column-rule by consuming available block-size. r=dbaron
After enabling column-span, ColumnSet becomes an anonymous child under
ColumnSetWrapperFrame. It doesn't need to handle border and padding,
containment, and non-auto block-size. ColumnSet's final block-size is
simply the union of ::-moz-column-content frames' rects.

However, we should extend ColumnSet's block-size to consume the
available block-size if the ColumnSetWrapper's block-size is constrained
so that the column rules are drawn to the block-end edge of the multicol
container.

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

--HG--
rename : testing/web-platform/meta/css/css-multicol/multicol-breaking-000.html.ini => testing/web-platform/meta/css/css-multicol/multicol-rule-nested-balancing-001.html.ini
rename : testing/web-platform/meta/css/css-multicol/multicol-breaking-000.html.ini => testing/web-platform/meta/css/css-multicol/multicol-rule-nested-balancing-002.html.ini
rename : testing/web-platform/meta/css/css-multicol/multicol-breaking-000.html.ini => testing/web-platform/meta/css/css-multicol/multicol-span-all-rule-001.html.ini
extra : moz-landing-system : lando
2019-08-01 22:48:55 +00:00
L. David Baron 0b4a5a5bc8 Bug 1420528 - As with constrained block-size, reflow lines with floats when block-size was *previously* constrained. r=TYLin
On its own (without the previous patch), this fixes bug 1406291.

Combined with the previous patch, this patch fixes this bug (bug
1420528) when column-span is not enabled (today's configuration), and
also fixes 1411799.

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

--HG--
extra : moz-landing-system : lando
2019-08-01 06:57:07 +00:00
L. David Baron 10aa1b483d Bug 1420528 - When a frame that was incomplete doesn't fit, make sure we reflow it again. r=TYLin
This patch fixes bug 1420528 when column-span is enabled, and it also
fixes bug 1468654.

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

--HG--
extra : moz-landing-system : lando
2019-08-01 00:48:05 +00:00
Ciure Andrei 8a5a8ec27a Backed out 2 changesets (bug 1548100) for causing nsColumnSetFrame.cpp perma asertion failures CLOSED TREE
Backed out changeset a06a6a6e1c5e (bug 1548100)
Backed out changeset 03a11c109d07 (bug 1548100)
2019-08-02 00:44:55 +03:00
Ting-Yu Lin e65d961df7 Bug 1548100 Part 2 - Fix the block-size of the column-rule by consuming available block-size. r=dbaron
After enabling column-span, ColumnSet becomes an anonymous child under
ColumnSetWrapperFrame. It doesn't need to handle border and padding,
containment, and non-auto block-size. ColumnSet's final block-size is
simply the union of ::-moz-column-content frames' rects.

However, we should extend ColumnSet's block-size to consume the
available block-size if the ColumnSetWrapper's block-size is constrained
so that the column rules are drawn to the block-end edge of the multicol
container.

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

--HG--
rename : testing/web-platform/meta/css/css-multicol/multicol-breaking-000.html.ini => testing/web-platform/meta/css/css-multicol/multicol-rule-nested-balancing-001.html.ini
rename : testing/web-platform/meta/css/css-multicol/multicol-breaking-000.html.ini => testing/web-platform/meta/css/css-multicol/multicol-rule-nested-balancing-002.html.ini
rename : testing/web-platform/meta/css/css-multicol/multicol-breaking-000.html.ini => testing/web-platform/meta/css/css-multicol/multicol-span-all-rule-001.html.ini
extra : moz-landing-system : lando
2019-08-01 00:03:22 +00:00
Ting-Yu Lin 3fda302369 Bug 1506293 Part 2 - Fix the block-size distribution across column-span split. r=dbaron
In frame construction, a block can be split by column-spans into several
fragments and each of the fragments is chained together by non-fluid
continuations. Later in reflow, each fragment can create its own fluid
continuations due to reasons such as the constraint of its available
block-size.

The main idea of this patch is that we calculate the block's final
block-size by shrinkwrapping the children for every fragment except for
those fluid continuations after the final column-span. To do that, we
need to correctly tag each non-column-span-wrappers
nsIFrame::HasColumnSpanSiblings() except the last one.

We also need to modify nsSplittableFrame::ConsumedBSize() so that it
includes the block-size for both fluid and non-fluid continuations.

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

--HG--
extra : moz-landing-system : lando
2019-07-30 18:03:25 +00:00
Ting-Yu Lin 66429c8cc2 Bug 1506293 Part 1 - Use next-in-flows instead of next-continuations when converting overflow containers. r=dbaron
In the beginning of nsOverflowContinuationTracker::Insert() there is an
assertion MOZ_ASSERT(aOverflowCont->GetPrevInFlow()). Assume this is
correct, we should use next-in-flows instead of next-continuations when
converting overflow containers.

The crashtest is not added because the assertion can also be triggered
in the reftests added in Part 3 without this patch.

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

--HG--
extra : moz-landing-system : lando
2019-07-27 06:13:56 +00:00
Alex Catarineu 536fd2e65f Bug 1561322 - Allow spoofing strings in HTML forms r=baku,Pike
When privacy.spoof_english = 2, we should hide the user's
locale in content. So we use en-US default strings for HTML
form elements, such as a Submit button.

We also force GetLocalizedEllipsis() to always return the
ellipsis used by en-US.

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

--HG--
extra : moz-landing-system : lando
2019-07-24 13:22:22 +00:00
Emilio Cobos Álvarez 79d6827e07 Bug 1456358 - Inhibit RecomputePosition when descendants depend on the out of flow position. r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D38194

--HG--
extra : moz-landing-system : lando
2019-07-29 13:43:29 +00:00
Jonathan Kew 112c636e6e Bug 1437367 - Remove the layout.css.paint-order.enabled pref, this feature is always enabled. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D39340

--HG--
extra : moz-landing-system : lando
2019-07-26 14:07:17 +00:00
Botond Ballo af4d7feac5 Bug 1564071 - Disable paint skipping for scroll frames that contain a sticky element inside a CSS filter. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D37604

--HG--
extra : moz-landing-system : lando
2019-07-26 23:26:55 +00:00
Kannan Vijayan 3fb6190ec6 Bug 1559414 - Rename unaudited pre-fission methods with SameProcess for future audit burndown. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D39378

--HG--
extra : moz-landing-system : lando
2019-07-26 16:48:31 +00:00
Nicholas Nethercote 18fae65f38 Bug 1563139 - Remove StaticPrefs.h. r=glandium
This requires replacing inclusions of it with inclusions of more specific prefs
files.

The exception is that StaticPrefsAll.h, which is equivalent to StaticPrefs.h,
and is used in `Codegen.py` because doing something smarter is tricky and
suitable for a follow-up. As a result, any change to StaticPrefList.yaml will
still trigger recompilation of all the generated DOM bindings files, but that's
still a big improvement over trigger recompilation of every file that uses
static prefs.

Most of the changes in this commit are very boring. The only changes that are
not boring are modules/libpref/*, Codegen.py, and ServoBindings.toml.

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

--HG--
extra : moz-landing-system : lando
2019-07-26 01:10:23 +00:00
L. David Baron 2af9d08603 Bug 1568501 - Search from the end of the line rather than the start, like this code did before bug 1566945. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D39268

--HG--
extra : moz-landing-system : lando
2019-07-25 21:02:40 +00:00
Thomas Nguyen db9e147a01 Bug 1566411 Use ReferrerInfo class in imgLoader.idl r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D38177

--HG--
extra : moz-landing-system : lando
2019-07-25 08:23:32 +00:00
Emilio Cobos Álvarez eb7d8bffd8 Bug 1567237 - Only use scroll range to select scrollable frames to scroll to, don't use scrollbar visibility. r=tnikkel
This is what other browsers do, and it does make sense to me, it's useless to
try to scroll a frame with no scroll range in a given direction.

I think all callers of this function should be treated like this, so this is
more like a RFC / feedback request than a patch per se.

The wheel handling code already checks scroll range, so there's no difference of
behavior in that case, if I'm reading the code right.

There are a few other functions that check the result of
GetPerceivedScrollingDirections(), but I think if we change this we should
change this consistently.

I also think that if we do this we should rename the method to something like
GetAvailableScrollingDirections() or such.

Anyhow, wdyt? I should also add a test for this if we go with this.

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

--HG--
extra : moz-landing-system : lando
2019-07-24 22:33:57 +00:00
Coroiu Cristina 50837746c0 Backed out changeset 2fe42a3dda2c (bug 1567237) for causing leaks on a CLOSED TREE 2019-07-24 20:52:07 +03:00
Emilio Cobos Álvarez 06d6ff95a8 Bug 1567237 - Only use scroll range to select scrollable frames to scroll to, don't use scrollbar visibility. r=tnikkel
This is what other browsers do, and it does make sense to me, it's useless to
try to scroll a frame with no scroll range in a given direction.

I think all callers of this function should be treated like this, so this is
more like a RFC / feedback request than a patch per se.

The wheel handling code already checks scroll range, so there's no difference of
behavior in that case, if I'm reading the code right.

There are a few other functions that check the result of
GetPerceivedScrollingDirections(), but I think if we change this we should
change this consistently.

I also think that if we do this we should rename the method to something like
GetAvailableScrollingDirections() or such.

Anyhow, wdyt? I should also add a test for this if we go with this.

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

--HG--
extra : moz-landing-system : lando
2019-07-24 13:17:11 +00:00
Narcis Beleuzu 2c7f6ec7b6 Backed out 3 changesets (bug 1567237) for ESlint and mochitest failures on test_scroll_space_no_range_overflow_scroll.html . CLOSED TREE
Backed out changeset 72699e27e033 (bug 1567237)
Backed out changeset 90048e3d6eb3 (bug 1567237)
Backed out changeset 5d602a56edc7 (bug 1567237)
2019-07-24 05:49:52 +03:00
Emilio Cobos Álvarez eb563e1090 Bug 1567237 - Only use scroll range to select scrollable frames to scroll to, don't use scrollbar visibility. r=tnikkel
This is what other browsers do, and it does make sense to me, it's useless to
try to scroll a frame with no scroll range in a given direction.

I think all callers of this function should be treated like this, so this is
more like a RFC / feedback request than a patch per se.

The wheel handling code already checks scroll range, so there's no difference of
behavior in that case, if I'm reading the code right.

There are a few other functions that check the result of
GetPerceivedScrollingDirections(), but I think if we change this we should
change this consistently.

I also think that if we do this we should rename the method to something like
GetAvailableScrollingDirections() or such.

Anyhow, wdyt? I should also add a test for this if we go with this.

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

--HG--
extra : moz-landing-system : lando
2019-07-23 22:04:31 +00:00
Dan Glastonbury f804fbbfd9 Bug 1567818 - Convert nsLayoutPhase into enum class. r=heycam
This allows nsLayoutPhase to be fwd declared.

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

--HG--
extra : moz-landing-system : lando
2019-07-23 05:40:49 +00:00
L. David Baron 64f57e5d7f Bug 1300293 - Make nsBidiPresUtils track line boxes separately for the progress of TraverseFrames and ResolveParagraph. r=jfkthame
TraverseFrames gathers a bunch of frames into an array, and then at
forced breaks or the end of the block flushes its array by running
ResolveParagraph.  ResolveParagraph can sometimes cause lines to break,
so lines recorded during TraverseFrames may no longer be accurate during
ResolveParagraph.

It may look like the lines are only needed during ResolveParagraph and
we could handle the one issue in TraverseFrames that deals with
preformatted newlines by restructuring the code a tad.  However, in the
next patch, there will be an additional caller that needs the current
line during TraverseFrames to pass to CreateContinuation, which makes
such a structure less plausible.

This will also make it easier to produce a current line for the call to
SplitInlineAncestors within ResolveParagraph, which will be done in the
patch after the next.

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

--HG--
extra : moz-landing-system : lando
2019-07-22 18:55:56 +00:00
Masayuki Nakano 15fcb38af8 Bug 1548389 - part 10: Make `TextEditor::SetUnmaskRangeInternal()` expand the range if specified offset is middle of a surrogate pair r=m_kato
Unmasking is an optional style of showing password.  Therefore, if callers of
`nsIEditor::Unmask()` specify middle of surrogate pair(s), it may mean that
they want to expand the unmask range from shorter range which does not include
the high and/or low surrogate.  Therefore, one of the surrogates is in unmasked
range, we unmask the surrogate pair.  However, we handle this in a lot of
places, i..e., we have duplicated code.  This can get rid of these duplicates
with making `nsIEditor::Unmask()` expand the range automatically.

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

--HG--
extra : moz-landing-system : lando
2019-07-22 03:56:33 +00:00
Masayuki Nakano 1e6858f9fe Bug 1548389 - part 9: Make ContentEventHandler return masked text r=m_kato
In some cases, other tools may show selected content in their UI.  E.g.,
character palette of macOS.  Therefore, we shouldn't allow them to show
masked password.

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

--HG--
extra : moz-landing-system : lando
2019-07-22 03:56:15 +00:00
Masayuki Nakano 9dc8292d3f Bug 1548389 - part 8: Make `nsTextFrame::PeekOffsetWord()` scan masked text r=jfkthame
Double click, long tap, moving selection with keyboard and deleting text
scan word boundary.  With these changes, the text node has raw password
value even if it's masked visually.  For making safer,
`nsTextFrame::PeekOffsetWord()` should search word boundary in masked text.
Then, we can hide word boundary at masked range, but keep allowing to look
for word boundary only in unmasked range.

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

--HG--
extra : moz-landing-system : lando
2019-07-22 03:55:53 +00:00
Masayuki Nakano 1c2108934c Bug 1548389 - part 6: Add automated tests for new API and rendering of password fields r=m_kato,Jamie
Differential Revision: https://phabricator.services.mozilla.com/D38010

--HG--
extra : moz-landing-system : lando
2019-07-22 03:55:13 +00:00
Masayuki Nakano 5febecd19b Bug 1548389 - part 5: Make `nsTextFrame` and related code treat masking password characters as text-transform r=jfkthame
Anonymous text node in password field has `NS_MAYBE_MASKED` flag and
`TextEditor` managing the node has range of unmasking.  This patch makes
`BuildTextRunsScanner::BuildTextRunForFrames()` treat text frame in
password field as `text-transform` applied.  For recording the unmask range,
this patch creates `nsTransformedCharStyle::mMaskPassword` and treats unmask
range start/end edges as different style boundary.  Therefore,
`nsCaseTransformTextRunFactory::TransformString()` can replace each character
with a password mask character with the information.

Note that we need to kill bidi algorithm in password fields with forms.css
because caret position will tell everybody whether the typing character is
an RTL or an LTR character.

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

--HG--
extra : moz-landing-system : lando
2019-07-22 03:54:50 +00:00
Nicholas Nethercote 7974362afd Bug 1567329 - Append `_AtStartup` to `once` static pref getters. r=erahm
Currently it's completely unclear at use sites that the getters for `once`
static prefs return the pref value from startup, rather than the current pref
value. (Bugs have been caused by this.) This commit improves things by changing
the getter name to make it clear that the pref value obtained is from startup.

This required changing things within libpref so it distinguishes between the
"base id" (`foo_bar`) and the "full id" (`foo_bar` or
`foo_bar_DoNotUseDirectly` or `foo_bar_AtStartup` or
`foo_bar_AtStartup_DoNotUseDirectly`; the name used depends on the `mirror` and
`do_not_use_directly` values in the YAML definition.) The "full id" is used in
most places, while the "base id" is used for the `GetPrefName_*` and
`GetPrefDefault_*` functions.

(This is a nice demonstration of the benefits of the YAML file, BTW. Making
this change with the old code would have involved adding an entry to every
single pref in StaticPrefList.h.)

The patch also rejigs the comment at the top of StaticPrefList.yaml, to clarify
some things.

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

--HG--
extra : moz-landing-system : lando
2019-07-22 02:10:14 +00:00
Emilio Cobos Álvarez 937b1f9834 Bug 1566783 - Don't prevent PresShell::ScrollToAnchor() from working due to scroll anchoring adjustments that happen without the user scrolling. r=dholbert
We were bailing out because scroll anchoring adjustments can make this check
fail:

  * https://searchfox.org/mozilla-central/rev/22b330ecb3edba1536a54887060cbdd09db21c59/layout/base/PresShell.cpp#3194

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

--HG--
extra : moz-landing-system : lando
2019-07-20 15:02:35 +00:00
Emilio Cobos Álvarez cf7beea50e Bug 1561794 - Do not crop display text of themed comboboxes due to padding. r=dbaron
This is a potential fix that I thought it was worth doing rather than
implementing Blink's platform-dependent silliness. This ensures that the display
frame always has enough space to display itself.

Note that it may still get clipped, if there's no room for both the display
frame and the button.

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

--HG--
extra : moz-landing-system : lando
2019-07-20 14:54:33 +00:00
Mihai Alexandru Michis e637325c0e Merge mozilla-central to mozilla-inbound. a=merge
--HG--
extra : amend_source : f93ba2cbe8a0ea251a8c95dd565117a109e25a91
2019-07-20 01:23:23 +03:00
longsonr 15c69a978b Bug 1353164 Part 2 - Change dominant-baseline from reset to inherit r=heycam
--HG--
extra : source : 5c8a0f41b86df61e7a1ef26b64fb355b5a11ab7d
2019-07-19 12:57:54 +01:00
Bogdan Tara e34bf750c9 Backed out changeset 5c8a0f41b86d (bug 1353164) for test_css-properties-db.js failures CLOSED TREE 2019-07-19 16:50:35 +03:00
longsonr 1335355ed5 Bug 1353164 Part 2 - Change dominant-baseline from reset to inherit r=heycam 2019-07-19 12:57:54 +01:00
Charlie Marlow f66a867469 Bug 1567282: renamed text-decoration-width to text-decoration-thickness r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D38586

--HG--
rename : testing/web-platform/meta/css/css-text-decor/text-decoration-width-001.html.ini => testing/web-platform/meta/css/css-text-decor/text-decoration-thickness-001.html.ini
rename : testing/web-platform/meta/css/css-text-decor/text-decoration-width-computed.html.ini => testing/web-platform/meta/css/css-text-decor/text-decoration-thickness-computed.html.ini
rename : testing/web-platform/meta/css/css-text-decor/text-decoration-width-initial.html.ini => testing/web-platform/meta/css/css-text-decor/text-decoration-thickness-initial.html.ini
rename : testing/web-platform/meta/css/css-text-decor/text-decoration-width-invalid.html.ini => testing/web-platform/meta/css/css-text-decor/text-decoration-thickness-invalid.html.ini
rename : testing/web-platform/meta/css/css-text-decor/text-decoration-width-linethrough-001.html.ini => testing/web-platform/meta/css/css-text-decor/text-decoration-thickness-linethrough-001.html.ini
rename : testing/web-platform/meta/css/css-text-decor/text-decoration-width-overline-001.html.ini => testing/web-platform/meta/css/css-text-decor/text-decoration-thickness-overline-001.html.ini
rename : testing/web-platform/meta/css/css-text-decor/text-decoration-width-scroll-001.html.ini => testing/web-platform/meta/css/css-text-decor/text-decoration-thickness-scroll-001.html.ini
rename : testing/web-platform/meta/css/css-text-decor/text-decoration-width-underline-001.html.ini => testing/web-platform/meta/css/css-text-decor/text-decoration-thickness-underline-001.html.ini
rename : testing/web-platform/meta/css/css-text-decor/text-decoration-width-valid.html.ini => testing/web-platform/meta/css/css-text-decor/text-decoration-thickness-valid.html.ini
rename : testing/web-platform/meta/css/css-text-decor/text-decoration-width-vertical-001.html.ini => testing/web-platform/meta/css/css-text-decor/text-decoration-thickness-vertical-001.html.ini
rename : testing/web-platform/meta/css/css-text-decor/text-decoration-width-vertical-002.html.ini => testing/web-platform/meta/css/css-text-decor/text-decoration-thickness-vertical-002.html.ini
rename : testing/web-platform/meta/css/css-typed-om/the-stylepropertymap/properties/text-decoration-width.html.ini => testing/web-platform/meta/css/css-typed-om/the-stylepropertymap/properties/text-decoration-thickness.html.ini
rename : testing/web-platform/tests/css/css-text-decor/reference/text-decoration-width-001-notref.html => testing/web-platform/tests/css/css-text-decor/reference/text-decoration-thickness-001-notref.html
rename : testing/web-platform/tests/css/css-text-decor/reference/text-decoration-width-green-rect-ref.html => testing/web-platform/tests/css/css-text-decor/reference/text-decoration-thickness-green-rect-ref.html
rename : testing/web-platform/tests/css/css-text-decor/reference/text-decoration-width-scroll-001-ref.html => testing/web-platform/tests/css/css-text-decor/reference/text-decoration-thickness-scroll-001-ref.html
rename : testing/web-platform/tests/css/css-text-decor/reference/text-decoration-width-vertical-green-rect-ref.html => testing/web-platform/tests/css/css-text-decor/reference/text-decoration-thickness-vertical-green-rect-ref.html
rename : testing/web-platform/tests/css/css-text-decor/text-decoration-width-001.html => testing/web-platform/tests/css/css-text-decor/text-decoration-thickness-001.html
rename : testing/web-platform/tests/css/css-text-decor/text-decoration-width-computed.html => testing/web-platform/tests/css/css-text-decor/text-decoration-thickness-computed.html
rename : testing/web-platform/tests/css/css-text-decor/text-decoration-width-initial.html => testing/web-platform/tests/css/css-text-decor/text-decoration-thickness-initial.html
rename : testing/web-platform/tests/css/css-text-decor/text-decoration-width-invalid.html => testing/web-platform/tests/css/css-text-decor/text-decoration-thickness-invalid.html
rename : testing/web-platform/tests/css/css-text-decor/text-decoration-width-linethrough-001.html => testing/web-platform/tests/css/css-text-decor/text-decoration-thickness-linethrough-001.html
rename : testing/web-platform/tests/css/css-text-decor/text-decoration-width-overline-001.html => testing/web-platform/tests/css/css-text-decor/text-decoration-thickness-overline-001.html
rename : testing/web-platform/tests/css/css-text-decor/text-decoration-width-scroll-001.html => testing/web-platform/tests/css/css-text-decor/text-decoration-thickness-scroll-001.html
rename : testing/web-platform/tests/css/css-text-decor/text-decoration-width-underline-001.html => testing/web-platform/tests/css/css-text-decor/text-decoration-thickness-underline-001.html
rename : testing/web-platform/tests/css/css-text-decor/text-decoration-width-valid.html => testing/web-platform/tests/css/css-text-decor/text-decoration-thickness-valid.html
rename : testing/web-platform/tests/css/css-text-decor/text-decoration-width-vertical-001.html => testing/web-platform/tests/css/css-text-decor/text-decoration-thickness-vertical-001.html
rename : testing/web-platform/tests/css/css-text-decor/text-decoration-width-vertical-002.html => testing/web-platform/tests/css/css-text-decor/text-decoration-thickness-vertical-002.html
rename : testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-width.html => testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-thickness.html
extra : moz-landing-system : lando
2019-07-19 16:33:08 +00:00
Cameron McCormack 4a4a362599 Bug 1555142 - Don't assert if we don't find a -webkit-line-clamp ellipsis when searching for one to clear. r=dholbert
The line the ellipsis was on may have already been removed.

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

--HG--
extra : moz-landing-system : lando
2019-07-18 16:49:38 +00:00
RuchikaGosain 6b0bf3bb0e Bug 1564555 - Enable some more ESLint rules for layout. r=Standard8,dholbert
Differential Revision: https://phabricator.services.mozilla.com/D38007

--HG--
extra : moz-landing-system : lando
2019-07-18 21:00:21 +00:00
Jonathan Kew b9e6153bb6 Bug 1567098 - Allow line-break after a float placeholder if the line is empty. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D38512

--HG--
extra : moz-landing-system : lando
2019-07-18 18:32:18 +00:00
Brindusan Cristian 6e6b2f7568 Backed out 2 changesets (bug 1554499) for mochitest failures at test_restyles.html.
Backed out changeset 1a6a6a38c987 (bug 1554499)
Backed out changeset 789e5d3fcf18 (bug 1554499)
2019-07-18 21:36:22 +03:00
Alexis Beingessner bf3ef8ab03 Bug 1554499 - Rename PerFrameKey -> PerFrameIndex for most methods r=mattwoodrow
This distinguishes better between the overloaded aspect of the PerFrameKey and the
actual mixed value.

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

--HG--
extra : moz-landing-system : lando
2019-07-17 20:13:20 +00:00
Alexis Beingessner f6d109ce74 Bug 1554499 - change ComputePerFrameKey to be a static method. r=mattwoodrow
This static method is assumed to have the same signature as the type's constructor,
and so we must have an implementation of ComputePerFrameKey for each constructor
a display item provides that is called by MakeDisplayItem. Notably this excludes
the MakeClone constructor for a lot of items.

There is a default varargs implementation on nsDisplayItem which everyone
inherits by default, so types which previously didn't overload this method
still don't need to.

Providing an implementation of ComputePerFrameKey on some display item type
shadows the varargs implementation, so one doesn't need to worry about overloading
one constructor but forgetting about another -- if you do, the compiler will only
see the overload and complain that the signature doesn't match.

One slightly annoying result of this is that display items which previously
inherited an overloaded implementation from a superclass now must provide
their own manual implementations. Although as far as I could tell, all of
those cases had a trivial implementation of key=0 (the super class supported
custom keys but the subclasses didn't make use of it).

In those cases I just hardcoded key=0, but it's possible that it would be
better to call into the superclass' implementation to be more robust to changes.

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

--HG--
extra : moz-landing-system : lando
2019-07-17 20:24:30 +00:00
L. David Baron 67486c5f6d Bug 1566945 - Make nsBlockFrame::AddFrames not search for the line box if it is provided. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D38392

--HG--
extra : moz-landing-system : lando
2019-07-18 05:45:38 +00:00
L. David Baron ab4b067e89 Bug 1566945 - Pass line box through to nsBlockFrame::AddFrames. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D38391

--HG--
extra : moz-landing-system : lando
2019-07-17 23:34:46 +00:00
L. David Baron ff6518fe62 Bug 1566945 - Pass line box through from nsTextFrame::SetLength. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D38390

--HG--
extra : moz-landing-system : lando
2019-07-17 23:34:45 +00:00
L. David Baron ce547cd6f5 Bug 1566945 - Add a parameter to nsContainerFrame::InsertFrames for aPrevFrame's line box. r=dholbert
For now, always pass null, except when passing it through from one
overload to another.

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

--HG--
extra : moz-landing-system : lando
2019-07-17 23:34:45 +00:00
Emilio Cobos Álvarez 24c8f44f2d No bug - Fix -Werror multiline-comment warning in previous scroll anchoring log tweak. sigh
CLOSED TREE
2019-07-18 00:21:17 +02:00
Emilio Cobos Álvarez 77fcf48fbf No bug - tweak scroll anchoring logs. r=npotb 2019-07-18 00:03:47 +02:00
Csoregi Natalia 5c50393ac1 Backed out changeset 05c5e4d30587 (bug 1561794) for multiple failures e.g. test_bug320799.html. CLOSED TREE 2019-07-17 04:24:52 +03:00
Emilio Cobos Álvarez d146066640 Bug 1561794 - Do not to crop display text of themed comboboxes due to padding. r=dbaron
This is a potential fix that I thought it was worth doing rather than
implementing Blink's platform-dependent silliness. This ensures that the display
frame always has enough space to display itself.

Note that it may still get clipped, if there's no room for both the display
frame and the button.

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

--HG--
extra : moz-landing-system : lando
2019-07-16 23:11:42 +00:00
Sylvestre Ledru e77bfc655d Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-07-16 07:33:44 +00:00
Noemi Erli 2f99f5d875 Merge mozilla-central to autoland. a=merge CLOSED TREE 2019-07-16 00:48:17 +03:00
Noemi Erli af897e281a Merge inbound to mozilla-central. a=merge 2019-07-16 00:42:51 +03:00
Emilio Cobos Álvarez 6ef01a0d95 Bug 1554572 - Don't apply scroll anchor adjustments if we're processing an async scroll animation. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D38077

--HG--
extra : moz-landing-system : lando
2019-07-15 17:48:16 +00:00
Emilio Cobos Álvarez 1a121e2e21 Bug 1546027 - Don't apply scroll anchor adjustments if we're restoring our scroll position. r=dholbert
Since scroll position restoration is absolute, and we'll lose it as soon as we
apply any adjustment or do any other sort of scrolling.

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

--HG--
extra : moz-landing-system : lando
2019-07-15 17:46:11 +00:00
Mirko Brodesser 2f40f072ab Bug 1565584: move `nsIContentUtils::ContentIsDescendantOf` to `nsINode::IsInclusiveDescendantOf`. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D37880
2019-07-15 10:02:21 +02:00
Chris Pearce d022cd1e54 Bug 1351924 - Keep separate flags for whether block-size has changed and whether percentages derived from the block-size have changed, and make better decisions about what needs reflow. r=dholbert
This reduces a bit of code complexity, fixes bugs where we weren't
reflowing enough, and optimizes additional cases that we couldn't
optimize in the past.

Co-authored-by: Chris Pearce <cpearce@mozilla.com>
Co-authored-by: L. David Baron <dbaron@dbaron.org>

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

--HG--
extra : moz-landing-system : lando
2019-07-14 01:04:31 +00:00
longsonr 7cf71757bf Bug 1353164 Part 1 - Remove dominant-baseline values that no longer exist r=heycam 2019-07-13 15:35:08 +01:00
L. David Baron 97a432f01b Bug 1564649 - Reflow all columns when a multicol with non-auto block-size balances its columns at a different block-size. r=TYLin
Depends on D37516

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

--HG--
extra : moz-landing-system : lando
2019-07-12 20:24:46 +00:00
L. David Baron e7834460f9 Bug 1564649 - Remove a duplicate variable where we had two variables for the same thing, and a little related cleanup. r=TYLin
Differential Revision: https://phabricator.services.mozilla.com/D37515

--HG--
extra : moz-landing-system : lando
2019-07-12 20:24:41 +00:00
Emilio Cobos Álvarez c9636ae2ea Bug 1486541 - Turn assertion back into a non-fatal assertion. r=jfkthame
It doesn't seem we're going to work on fixing this in the near term.

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

--HG--
extra : moz-landing-system : lando
2019-07-12 22:09:17 +00:00
Emilio Cobos Álvarez f629931392 Bug 1565690 - When inferring an aspect ratio from an image's width and height attribute, only honor it if we don't have the real image aspect-ratio. r=dholbert
Since people like to get wrong attribute values on their images (see the
regressions from bug 1547231).

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

--HG--
extra : moz-landing-system : lando
2019-07-12 21:47:49 +00:00
Emilio Cobos Álvarez 9fa0ebbc44 Bug 1528180 - Don't align scroll offsets to layer pixels when using WebRender. r=tnikkel
This position is only invalidated from FrameLayerBuilder, that's not a very good
signal.

This would get out of sync when using WebRender, and APZ messages will send
sub-pixel scroll positions that will get wrongly adjusted, causing small scroll
offsets which scroll anchoring would incorrectly try to correct, which is the
ultimate cause of the jittering.

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

--HG--
extra : moz-landing-system : lando
2019-07-12 20:04:16 +00:00
Calixte Denizet 7700f1ee15 Bug 1565274: Remove self inclusion from nsPageSequenceFrame.h r=dholbert
nsPageSequenceFrame.h includes itself.

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

--HG--
extra : moz-landing-system : lando
2019-07-11 21:37:27 +00:00
Ting-Yu Lin 57a98efc97 Bug 1565037 Part 5 - Rename aBottomEdgeOfChildren to aBEndEdgeOfChildren in methods' declaration. r=dholbert
Their definitions already use aBEndEdgeOfChildren.

Depends on D37626

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

--HG--
extra : moz-landing-system : lando
2019-07-11 18:43:48 +00:00
Ting-Yu Lin 1d40e7045d Bug 1565037 Part 4 - Rename aContentBSize to aBEndEdgeOfChildren. r=dholbert
As described in https://bugzilla.mozilla.org/show_bug.cgi?id=1562122#c5,
this precomputed argument is not our children's block-size, but is the
block-end edge of children because aState.mBCoord is initialized as our
border-padding block-start in BlockReflowInput's constructor.

I also delete the sentence "The final block-size that is used in
aMetrics will be set ..." because this is the implementation details of
this function, and is likely to become inaccurate after considering the
block split by column-span.

Depends on D37625

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

--HG--
extra : moz-landing-system : lando
2019-07-11 18:43:35 +00:00
Ting-Yu Lin 271347c543 Bug 1565037 Part 3 - Cache our children's reflow status, and use it to guide the morphing into our reflow status. r=dholbert
Because aStatus is also used as an output argument, caching aStatus as
our children's reflow status can and make the logic that morphs aStatus
to our reflow status easier to follow. And this helps the patch I'm
going to add for computing the block-size for column-span split.

Depends on D37624

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

--HG--
extra : moz-landing-system : lando
2019-07-11 18:50:14 +00:00
Ting-Yu Lin b0c5d5ce8d Bug 1565037 Part 2 - Change aStatus to a reference for ComputeFinalBSize(). r=dholbert
We usually use reference to manipulate nsReflowStatus like in Reflow().

The documentation for aStatus needs edit, and is done in next part.

Depends on D37623

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

--HG--
extra : moz-landing-system : lando
2019-07-11 18:43:23 +00:00
Ting-Yu Lin a051547c37 Bug 1565037 Part 1 - Make nsBlockFrame::ComputeFinalBSize() return the final block size. r=dholbert
ComputeFinalBSize() doesn't need to modify the final inline-size, so we
don't need to pass the entire LogicalSize into it.

Also, aReflowInput.AvailableBSize() is used multiple times. Cache it to
shorten some statements.

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

--HG--
extra : moz-landing-system : lando
2019-07-11 18:43:14 +00:00
Boris Zbarsky 374137e8d8 Bug 1565767 part 5. Remove some unnecesary refcounting at nsIContent::GetBaseURI callsites. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D37973

--HG--
extra : moz-landing-system : lando
2019-07-15 18:29:05 +00:00
Kartikaya Gupta 75c7f2f802 Bug 1559389 - Support renderroot attributes on XUL elements that generate nsFlexContainer frames. r=mattwoodrow
Depends on D37504

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

--HG--
extra : moz-landing-system : lando
2019-07-11 00:15:46 +00:00
Brendan Dahl 28dcf95b41 Bug 1557371 - Part 2 - Load all XUL crashtests with chrome privilege. r=dbaron
386947-1.xul, now has one assertion since we take a different code
path with chrome URL's and XBL files. The assertion is triggered since the
binding is invalid.

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

--HG--
extra : moz-landing-system : lando
2019-07-09 19:40:42 +00:00
Boris Zbarsky 5062731c15 Bug 1565688. Remove unused IOService arg from NS_NewURI. r=mayhemer
Differential Revision: https://phabricator.services.mozilla.com/D37968

--HG--
extra : moz-landing-system : lando
2019-07-15 13:39:51 +00:00
Emilio Cobos Álvarez 28801c9e84 Bug 1218456 - Allow navigating when there's no pres context. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D37404
2019-07-09 23:07:29 +02:00
Dorel Luca 9925ca654c Backed out 5 changesets (bug 1218456) for Crashtest failures on dom/l10n/tests/mochitest/dom_localization/test_overlay.html. CLOSED TREE
Backed out changeset 31afe89c2d42 (bug 1218456)
Backed out changeset 8bd57ebc4528 (bug 1218456)
Backed out changeset e5d37afff36a (bug 1218456)
Backed out changeset e3da86278ecf (bug 1218456)
Backed out changeset 343046089f8e (bug 1218456)

--HG--
extra : rebase_source : f092d903c8c80581d187493e036b1875d8668b3d
2019-07-09 22:04:13 +03:00
Emilio Cobos Álvarez d5db3842a0 Bug 1218456 - Allow navigating when there's no pres context. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D37404

--HG--
extra : moz-landing-system : lando
2019-07-09 16:17:27 +00:00
Nicholas Nethercote 4c427b464f Bug 1563996 - Make layout.show_previous_page a static pref. r=bzbarsky
This is a weird pref.

First, it is VarCached into two different global variables, one in
nsSubDocumentFrame.cpp, and the other in nsView.cpp.

Second, the pref is not defined by default. When the VarCache variables are
initialized they are therefore set to the default value provided to the
`AddBoolVarCache()` call, which in both cases is `true`. This semantics isn't
possible with `StaticPrefs`, so the patch defines the pref as true by default.

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

--HG--
extra : moz-landing-system : lando
2019-07-09 07:59:55 +00:00
Hiroyuki Ikezoe 8aa17d97ef Bug 1553012 - Make PresShell::ScrollFrameRectIntoView work in fission world. r=mattwoodrow,nika,tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D36136

--HG--
extra : moz-landing-system : lando
2019-07-09 05:34:27 +00:00
Hiroyuki Ikezoe 901885347c Bug 1562503 - Create GeckoMVMContext and ZoomConstraintsClient only for the root top level document. r=botond
browserElement_ScrollEvent.js is affected by this change. Before this change
the document for iframe mozbrowser was not considered as the root content
document, but after this change, it's considered as the root content document.
Given the nature of iframe mozbrowser, I believe it's the right behavior.

The browser mochitest in this commit fails without this change since
the minimum-scale size is used in the out-of-process iframe so that the visual
viewport size gets 3x bigger than the expected size.

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

--HG--
extra : moz-landing-system : lando
2019-07-08 22:39:31 +00:00
Charlie Marlow 1e64f27aad Bug 1561657: fixed text-underline-offset so that positive lengths represent movement outwards from the text r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D36669

--HG--
extra : moz-landing-system : lando
2019-07-08 20:15:54 +00:00
Charlie Marlow dd89a93a34 Bug 1562704: fixed text-underline-offset for Japanese and Korean text, where underlines appear to the right of text r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D36519

--HG--
extra : moz-landing-system : lando
2019-07-08 20:15:56 +00:00
shindli 3836f557ea Backed out 3 changesets (bug 1561657, bug 1557857, bug 1562704) for causing Wr permafailures in z:/build/build/src/layout/base/nsCSSFrameConstructor.cpp:3962 CLOSED TREE
Backed out changeset 3fd103a9fce8 (bug 1557857)
Backed out changeset c4ffd7ba0442 (bug 1561657)
Backed out changeset 4b67dff062c6 (bug 1562704)
2019-07-08 22:56:35 +03:00
Charlie Marlow 7f1865e5fb Bug 1561657: fixed text-underline-offset so that positive lengths represent movement outwards from the text r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D36669

--HG--
extra : moz-landing-system : lando
2019-07-08 16:07:45 +00:00
Charlie Marlow 2e000d8004 Bug 1562704: fixed text-underline-offset for Japanese and Korean text, where underlines appear to the right of text r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D36519

--HG--
extra : moz-landing-system : lando
2019-07-08 16:07:33 +00:00
Emilio Cobos Álvarez d1a9b44ea6 Bug 1560188 - Fix and improve display list memory reporting. r=mattwoodrow,njn
I missed in bug 1487216 that the pres arena memory reporting assumes that the
entry indices are frame class ids, which means that we're reporting some display
list arena entries as frames, which is obviously wrong.

Cleanup a bit nsPresArena to remove the custom id concept, and report also
individual display item type memory usage.

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

--HG--
extra : moz-landing-system : lando
2019-07-02 02:46:09 +00:00
Sylvestre Ledru 131d0c6a02 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-07-06 08:18:28 +00:00
Emilio Cobos Álvarez 117f562dcb Bug 1563315 - Use cbindgen for fill and stroke r=boris
Differential Revision: https://phabricator.services.mozilla.com/D36807

--HG--
extra : moz-landing-system : lando
2019-07-06 08:31:02 +00:00
alwu 07e34c8bba Bug 1541452 - update cue display when window is resized. r=heycam
When window is resized, the cue would usually be zoomed in or out automatically with the video and keep its relative position to video.

However, if video is being applied the explicit percentage value on its 'width' or 'height', we have to recompute cue's position in this situation, because the width or height of the video would be scaled again after applied the first size scaled which is caused by resizing.

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

--HG--
extra : moz-landing-system : lando
2019-07-06 00:53:20 +00:00
Victor Porof 6a261b9e77 Bug 1561435 - Format layout/, a=automatic-formatting
# ignore-this-changeset

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

--HG--
extra : source : b9cc96337c05dbb9a9f811c63dcc5fd63588d652
2019-07-05 10:50:41 +02:00
Ting-Yu Lin f704cd46d3 Bug 1563370 - Eliminate GetPrevInFlowVirtual() and GetNextInFlowVirtual(). r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D36829

--HG--
extra : moz-landing-system : lando
2019-07-03 21:37:14 +00:00
Charlie Marlow eb50d28bc0 Bug 1559493: Fixed origin from which text-underline-offset is set in vertical writing modes r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D36219

--HG--
extra : moz-landing-system : lando
2019-07-03 21:23:38 +00:00
L. David Baron bb277e6cb2 Bug 1474771 - Revert all changes from bug 1459937 since they are no longer needed. r=dholbert
(The single line that made them active was commented out in the previous patch.)

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

--HG--
extra : moz-landing-system : lando
2019-07-01 21:58:35 +00:00
Gerald Squelart 2f31b3fef4 Bug 1474771 - Propagate NS_FRAME_IS_DIRTY to descendants when marking as dirty rather than during reflow. r=dholbert
This simplifies dealing with frames that are pushed/pulled between
continuations during reflow, allows us to avoid the complexity of the
fix to 1459937, and hopefully fixes some of the regressions from bug
1308876.

This disables the changes from bug 1459937 by commenting out a single
line in ReparentFrameInternal in nsBlockFrame.cpp, but all the added
code will be removed in the following patch.

Co-authored-by: Gerald Squelart <gsquelart@mozilla.com>
Co-authored-by: L. David Baron <dbaron@dbaron.org>

Depends on D36423

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

--HG--
extra : moz-landing-system : lando
2019-07-01 21:56:43 +00:00
Mirko Brodesser 6b67de025f Bug 1562876: rename `Selection::RemoveRange` to `Selection::RemoveRangeAndUnselectFramesAndNotifyListeners`. r=smaug
The name of the corresponding webidl interface of course remains unchanged.

Differential Revision: https://phabricator.services.mozilla.com/D36607
2019-07-03 13:26:14 +02:00
Mirko Brodesser 63b4627d28 Bug 1562876: rename `Selection::AddRange` to `Selection::AddRangeAndSelectFramesAndNotifyListeners`. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D36602
2019-07-03 13:26:13 +02:00
Cameron McCormack 336cad5a55 Bug 1553705 - Make GenerateStateKey() infallible. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D32258

--HG--
extra : moz-landing-system : lando
2019-07-01 07:20:04 +00:00
Ryan Hunt 7975d096de Bug 1561002 - Use buildingRect for remote browser clipping when we don't have anything more precise. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D35677

--HG--
extra : moz-landing-system : lando
2019-06-26 02:50:36 +00:00
Csoregi Natalia 29f8e6aebd Merge inbound to mozilla-central. a=merge 2019-06-29 12:59:53 +03:00
Narcis Beleuzu cc10ed7ce5 Backed out 2 changesets (bug 1553705) for causing Bug1562142 . CLOSED TREE
Backed out changeset fbb26a04ec1f (bug 1553705)
Backed out changeset dd6e7c0970d5 (bug 1553705)
2019-06-29 02:39:01 +03:00
Ting-Yu Lin c5048ca650 Bug 1562122 Part 4 - Return early in the overflow incomplete case, and add an assertion for the bound of final block size. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D36291

--HG--
extra : moz-landing-system : lando
2019-06-28 21:21:15 +00:00
Ting-Yu Lin 1524471e5a Bug 1562122 Part 3 - Delete the duplicate logic computing the final block size. r=dholbert
After the deleted logic

```
aFinalSize.BSize(wm) =
    std::max(aReflowInput.AvailableBSize(), aContentBSize);
```

aStatus changes to incomplete, so it computes the same thing again.

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

--HG--
extra : moz-landing-system : lando
2019-06-28 21:21:06 +00:00
Ting-Yu Lin a57bb370a3 Bug 1562122 Part 2 - Replace effectiveComputedBSize with computedBSizeLeftOver. r=dholbert
No need to call GetEffectiveComputedBSize() twice.

Also, calling aState.ConsumedBSize() instead of using
aState.mConsumedBSize directly because the accessor function caches
mConsumedBSize properly when it is called the first time.

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

--HG--
extra : moz-landing-system : lando
2019-06-28 21:21:03 +00:00
Ting-Yu Lin bf4acb9116 Bug 1562122 Part 1 - Move the logic after ComputeFinalBSize() into ComputeFinalBSize(). r=dholbert
This patch only moves the logic, and rename some variables. More
clean-up follows.

Note in the middle of ComputeFinalBSize(), ShouldAvoidBreakInside() can
do early return under the condition that aStatus is complete. The logic
moved in this patch is executed only when aStatus is *incomplete*, so no
behavior is changed after applying this change.

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

--HG--
extra : moz-landing-system : lando
2019-06-28 21:20:54 +00:00
Hiroyuki Ikezoe cc47e0d6ef Bug 1562105 - Bail out if the style frame for the scrollable frame is null in ScrollFrameHelper::IsSmoothScroll. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D36303

--HG--
extra : moz-landing-system : lando
2019-06-28 16:45:54 +00:00
Daniel Holbert 2bfc73da09 Bug 1476127: Implement 'contain:size' for select elements. r=TYLin
Note that this is an imperfect implementation, in that it doesn't exactly
match the sizing behavior of a truly empty `<select>` element.  I've filed
followup bug 1562057 on that.  However, the behavior that's implemented
here *does* successfully make us ignore a `<select>`'s contents for sizing
purposes, and it's much better than what we do currently (which is pretty
broken via inheriting a partial `contain:size` implementation from our
parent class, nsBlockFrame).

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

--HG--
extra : moz-landing-system : lando
2019-06-28 20:32:13 +00:00
Cosmin Sabou 798a05e2dc Merge mozilla-central to mozilla-inbound. 2019-06-28 19:16:36 +03:00
Emilio Cobos Álvarez b1ca51fe1e Bug 1561738 - Remove nsStyleCoord. r=boris
And move the useful bits of it somewhere else (ServoStyleConstInlines.h for the
inline function definitions, and nsFrame.cpp for the static assertions).

Differential Revision: https://phabricator.services.mozilla.com/D36120
2019-06-28 12:44:44 +02:00
Emilio Cobos Álvarez 0a4d4343b9 Bug 1561738 - Use cbindgen for grid track sizing. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D36118
2019-06-28 12:44:43 +02:00
Cosmin Sabou 2fa2a56685 Backed out 3 changesets (bug 1561738) for causing build bustages on nsGridContainerFrame.cpp CLOSED TREE
Backed out changeset 98f100abc2ba (bug 1561738)
Backed out changeset 9ed20d0fb9ba (bug 1561738)
Backed out changeset 483b1e134ace (bug 1561738)
2019-06-28 13:27:09 +03:00
Emilio Cobos Álvarez e023916761 Bug 1561738 - Remove nsStyleCoord. r=boris
And move the useful bits of it somewhere else (ServoStyleConstInlines.h for the
inline function definitions, and nsFrame.cpp for the static assertions).

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

--HG--
extra : moz-landing-system : lando
2019-06-28 09:46:26 +00:00
Emilio Cobos Álvarez 9d92ed9a07 Bug 1561738 - Use cbindgen for grid track sizing. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D36118

--HG--
extra : moz-landing-system : lando
2019-06-28 09:46:02 +00:00
Jan Henning 689a29b361 Bug 1552781 - Part 3: Make flex/grid items font inflation flow roots, too. r=dbaron
The arguments for the respective container elements apply to their immediate
child items, too: They establish a new formatting context as well and presumably
represent page content that can be considered to be logically separate enough to
warrant individual consideration for font inflation.

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

--HG--
extra : moz-landing-system : lando
2019-06-26 21:12:07 +00:00
Jan Henning d507b88036 Bug 1552781 - Part 2: Flexboxes/grids should be font inflation flow roots. r=dbaron
Our algorithm for dividing a page up into separate font inflation flow roots
seems mostly based on the idea that a new Block Formatting Context (BFC) should
go hand in hand with a font inflation flow root.
Flex containers so far didn't follow that rule, since they technically create a
new *Flex* Formatting Context (FFC) and possibly also because nobody thought
about font inflation when implementing nsFlexContainerFrame.

This leads to all flex containers being counted against the next higher-level
flow root, meaning that a lot of small flex containers can get inflated if their
sum total of text *collectively* exceeds the font inflation threshold.
This alone is likely undesired most of the time, but is then also aggravated by
the fact that our flexbox behaviour under font inflation is somewhat buggy (bug
1142461).

As apart from the different layout rules inside the container, a FFC behaves
very much like a BFC in that it establishes a new formatting context, flex
containers should therefore correspondingly become font inflation flow roots,
too, and therefore be considered individually for font inflation.

As far as I can tell, with this change we'll also match Blink's behaviour in
that regard.

For completeness's sake, we'll make grid containers follow the same principles,
even though hopefully grids on non mobile-friendly pages should hopefully be
somewhat rarer than flexboxes.

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

--HG--
extra : moz-landing-system : lando
2019-06-26 21:11:20 +00:00
Coroiu Cristina 057f20d982 Merge mozilla-central to autoland a=merge on a CLOSED TREE 2019-06-27 12:42:29 +03:00
Coroiu Cristina f91bd38732 Merge inbound to mozilla-central a=merge 2019-06-27 12:36:00 +03:00
Coroiu Cristina aa2d0d75c6 Merge autoland to mozilla-central a=merge 2019-06-27 12:33:50 +03:00
Mihai Alexandru Michis b485399185 Backed out 4 changesets (bug 1554571) for causing failures in minimal-xul.css
Backed out changeset 1cc4e6374b8a (bug 1554571)
Backed out changeset 30728685499e (bug 1554571)
Backed out changeset c14e9c381345 (bug 1554571)
Backed out changeset a2143551d7bc (bug 1554571)

--HG--
extra : rebase_source : 4b4442d96eb40e57b0a9834b4048b11f9be1a964
2019-06-27 07:09:55 +03:00
Csoregi Natalia 5663c7541b Backed out 4 changesets (bug 1488953) for causing Bug 1559690. a=backout
Backed out changeset 6b9cfebe8076 (bug 1488953)
Backed out changeset 6759badeec0e (bug 1488953)
Backed out changeset 5555e12078d3 (bug 1488953)
Backed out changeset 2a638724408b (bug 1488953)
2019-06-27 01:03:50 +03:00
Mihai Alexandru Michis 9f81e46a34 Backed out 2 changesets (bug 1559690) for causing failures in browser_tabCloseSpacer.js CLOSED TREE
Backed out changeset 9f45982e7800 (bug 1559690)
Backed out changeset fdb96c16d976 (bug 1559690)
2019-06-26 21:04:20 +03:00
Nicholas Nethercote faccca25c4 Bug 1561491 - Make general.* static prefs follow the naming convention. r=KrisWright
Differential Revision: https://phabricator.services.mozilla.com/D35974

--HG--
extra : rebase_source : 9a458b930592cd794eae8557553421b0b6e6d66b
2019-06-25 17:07:57 +10:00
Emilio Cobos Álvarez d0e792f24e Bug 1559690 - Actually make scrollport events use the event loop, since using the same scroll event mechanism breaks too much stuff. r=hiro
The issue with using the same mechanism as scroll events is that overflow events
that result from a layout flush from the refresh driver tick don't happen until
the _next_ refresh driver tick. That's bad and causes a few tests that don't
wait enough to fail. I guess the next alternative is what PostDOMEvent uses,
which is just dispatch to the event loop.

This is actually green and also fixes the bug for the same reason.

Differential Revision: https://phabricator.services.mozilla.com/D35769
2019-06-26 14:32:33 +02:00
Emilio Cobos Álvarez d4281c8529 Bug 1559690 - Make scroll port events use the same mechanism as scroll events. r=hiro
This prevents them from being called from layout and is more similar to what
WillPaintObservers did.

Differential Revision: https://phabricator.services.mozilla.com/D35604
2019-06-26 14:32:32 +02:00
Emilio Cobos Álvarez 1542425954 Bug 1559690 - Move scroll event declarations to nsGfxScrollFrame.cpp r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D35603
2019-06-26 14:32:32 +02:00
Nicholas Nethercote 9f0b35cc2a Bug 1560837 - Make APZ static prefs follow the naming convention. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D35633

--HG--
extra : rebase_source : e71193756486b148d479e90b324f73dc35756429
2019-06-24 13:57:06 +10:00
Charlie Marlow b695380455 Bug 1440014: Part 1: Implemented rendering for text-decoration-width CSS property r=jfkthame
reftests will be added later

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

--HG--
extra : moz-landing-system : lando
2019-06-26 21:21:57 +00:00
Cameron McCormack 8538a62557 Bug 1554571 - Part 3: Cache computed styles of scrollbar part anonymous content. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D33123

--HG--
extra : moz-landing-system : lando
2019-06-27 00:25:03 +00:00
Cameron McCormack 60ac348ac5 Bug 1554571 - Part 1: Remove unused argument from Servo_ResolveStyle. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D33121

--HG--
extra : moz-landing-system : lando
2019-06-27 00:24:54 +00:00
Daniel Holbert 3968dbef77 Bug 1555757: Exempt table-wrapper frames from becoming css-containment-promoted reflow roots. r=TYLin
Differential Revision: https://phabricator.services.mozilla.com/D36073

--HG--
extra : moz-landing-system : lando
2019-06-27 00:16:41 +00:00
Emilio Cobos Álvarez fc7fce15f7 Bug 1547231 - Make mapped aspect-ratio get reflected in images. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D29039

--HG--
extra : moz-landing-system : lando
2019-06-26 22:10:08 +00:00
Cameron McCormack 98706be760 Bug 1553705 - Make GenerateStateKey() infallible. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D32258

--HG--
extra : moz-landing-system : lando
2019-06-26 21:44:03 +00:00
Hiroyuki Ikezoe b14c7c928c Bug 1560237 - Don't propagate scroll-behavior from <body>. r=botond
From the CSSOM View spec[1];

 The scroll-behavior property of the HTML body element is not propagated to
 the viewport.

The reason why this change fixes the test case in this commit is that we don't
have two different scrollable frames for <html> and <body> respectively if we
don't propagate scroll-behavior property from <body> to <html> so that we can
properly find the `flow root` of sticky position elements.

In other words, in the case where both of <html> and <body> have properties
that are propagated from <body> but they are different we have two scrollable
frames as a candidate of the 'flow root' for the sticky position element in
the test case, one is the scrollable frame for <html> and the other is the
scrollable frame for <body>.  That means that
nsLayoutUtils::GetNearestScrollableFrame doesn't return what we want in some
places, for example we have a pretty similar issue in case of
overscroll-behavior which is bug 1561107.

Note that the test position-sticky-root-scroller-with-scroll-behavior.html is
almost copy-and-pasted from
/css/css-position/position-sticky-root-scroller.html [2] in wpt, the reason why
we put the test in /css/cssom-view is that there is a handy function to wait
for async scroll completion.

[1] https://drafts.csswg.org/cssom-view/#propdef-scroll-behavior
[2] https://searchfox.org/mozilla-central/rev/928742d3ea30e0eb4a8622d260041564d81a8468/testing/web-platform/tests/css/css-position/position-sticky-root-scroller.html

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

--HG--
extra : moz-landing-system : lando
2019-06-26 20:57:05 +00:00
Hiroyuki Ikezoe a377b45fe1 Bug 1560237 - Rename ScrollFrameHelper::GetFrameForScrollSnap to ScrollFrameHelper::GetFrameForStyle. r=botond
The function will also be used for `scroll-behavior` property in a later patch
in this commit series, so it needs a more reasonable name.

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

--HG--
extra : moz-landing-system : lando
2019-06-26 20:59:14 +00:00
Hiroyuki Ikezoe 0670fe9a3f Bug 1560237 - Introduce nsIScrollableFrame::IsSmoothScroll. r=botond
This is pretty much the same as ScrollStyles::IsSmoothScroll right now,
but in the next commit, we will no longer propagate scroll-behavior on <body> to
the root element so that nsIScrollableFrame::IsSmoothScroll will be changed
to reflect it.

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

--HG--
extra : moz-landing-system : lando
2019-06-26 20:59:01 +00:00
Emilio Cobos Álvarez e86340308c Bug 1559814 - Use the cbindgen representation for grid line properties. r=mats
We clamp earlier (parse time rather than computed value time), but that's the
only behavior change, which I think doesn't really matter.

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

--HG--
extra : moz-landing-system : lando
2019-06-26 21:21:38 +00:00
Mihai Alexandru Michis 0f86a6b30b Backed out 4 changesets (bug 1559814) for causing bustages. CLOSED TREE
Backed out changeset 11ec9de59076 (bug 1559814)
Backed out changeset fec03c5d3661 (bug 1559814)
Backed out changeset 62f9d89fb827 (bug 1559814)
Backed out changeset 362d9435ca4e (bug 1559814)
2019-06-27 00:04:50 +03:00
Emilio Cobos Álvarez f792986565 Bug 1559814 - Use the cbindgen representation for grid line properties. r=mats
We clamp earlier (parse time rather than computed value time), but that's the
only behavior change, which I think doesn't really matter.

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

--HG--
extra : moz-landing-system : lando
2019-06-26 20:33:23 +00:00
Cameron McCormack 9bbe5b00a3 Bug 1554571 - Part 3: Cache computed styles of scrollbar part anonymous content. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D33123

--HG--
extra : moz-landing-system : lando
2019-06-27 07:22:22 +00:00
Cameron McCormack 5bf528676e Bug 1554571 - Part 1: Remove unused argument from Servo_ResolveStyle. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D33121

--HG--
extra : moz-landing-system : lando
2019-06-27 07:22:13 +00:00
Matt Woodrow 8f12c70442 Bug 1558937 - Don't allow duplicate items for printing. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D34775

--HG--
extra : moz-landing-system : lando
2019-06-24 08:00:41 +00:00
Brindusan Cristian 928742d3ea Backed out changeset c872cc627115 (bug 1558937) for reftest failures at 1558937-1.html. 2019-06-24 06:09:11 +03:00
Matt Woodrow e2458a8e7c Bug 1558937 - Don't allow duplicate items for printing. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D34775

--HG--
extra : moz-landing-system : lando
2019-06-24 01:38:37 +00:00
Emilio Cobos Álvarez ef914bd2f8 Bug 1559094 - Restore old behavior for background-size: cover + zero-sized background positioning area. r=dholbert
This restores our previous and per-spec behavior. Comparing only ratios was not
correct in the case one of the dimensions was zero and thus not scaled.

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

--HG--
extra : moz-landing-system : lando
2019-06-23 10:08:16 +00:00
Jeff Muizelaar 0b68652b49 Bug 1539702. Improve CreateClippedDrawTarget API r=jwatt,rhunt
This changes CreateClippedDrawTarget so that instead of taking
a max size and a transform it just takes a user space rect of
the desired bounds.

This change allows the caller to not worry about the computing
a max size based on the current clip. Instead this responsibility
is lowered into the specific backends.

The main motivation for this work is to allow blob recoordination
to create recordings that don't depend on the current clip.

Some additional benefits are that the API is easier to use and
as can be seen simplifies the SVG masking code because it doesn't
need to track surface offsets manually.

It's also an important step towards removing all the uses of
gfxContext::GetClipExtents which will let us get rid of the separate
clipping stack in gfxContext and help us move off of gfxContext
completely.

Most backend implementations of CreateClippedDrawTarget are relatively
simple. DrawTargetCapture is modified to track the current clip rect
so that it can create a new DrawTargetCapture of the appropriate size
without needing to worry about lazy resolution.

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

--HG--
extra : moz-landing-system : lando
2019-06-21 09:51:00 +00:00
Mats Palmgren af1b0f2a42 Bug 1560460 - Build display items for an outside ::marker before child content to get the correct paint order. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D35553

--HG--
extra : rebase_source : d58d4bbede2252f010e7528cab0bacfff4932efb
2019-06-21 05:20:51 +02:00
Mats Palmgren 5e16c9c24a Bug 1558705 - [css-grid-2] Account for the subgrid's margin/border/padding when resolving its non-subgridded track sizes. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D35192

--HG--
extra : rebase_source : 7120e685adf61ca1f9eeddce0649d2747973f9c3
2019-06-17 15:03:03 +02:00
Ting-Yu Lin 6c93720bad Bug 1523595 Part 3 - Apply ColumnSetWrapper's block size constraint to the available size when creating BlockReflowInput for ColumnSet. r=dbaron
We used to apply the column container's block size constraint on top of
the available block size in nsColumnSetFrame::ChooseColumnStrategy().
After column-span is enabled, ColumnSet is no longer the outermost
column container frame. We need to apply ColumnSetWrapper's block size
constraint to the available size when creating the ReflowInput for
ColumnSet so that ColumnSet can use it to compute the max column block
size in ChooseColumnStrategy().

This is calculated in nsBlockFrame::ReflowBlockFrame() instead of
nsColumnSetFrame::ChooseColumnStrategy() because we need
BlockReflowInput::mBCoord to determine the remaining block size.

multicol-breaking-004.html is copied and modified from
multicol-breaking-001.html with border-bottom added to test
"box-decoration-break: clone".

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

--HG--
extra : moz-landing-system : lando
2019-06-19 17:05:22 +00:00
Emilio Cobos Álvarez b7cf474626 Bug 1559546 - Introduce nsAtom::IsEmpty. r=njn
Both for symmetry with other string APIs, and also to prevent footguns (since I
debugged for a while a typo where I wrote nsGkAtoms::empty rather than
nsGkAtoms::_empty).

We could use null here, but that will not be possible in the future when I use
the rust representation of more grid data structures (at least without
increasing memory usage).

So I think I'll keep using ::_empty as a signaling value for "no grid
identifier".

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

--HG--
extra : moz-landing-system : lando
2019-06-19 05:58:15 +00:00
Emilio Cobos Álvarez 6ed8680108 Bug 1559546 - Use atoms for grid line names. r=mats
The style system already atomizes all CustomIdent values, which means that we're
just wasting memory and CPU by doing string copies all over the place.

This patch fixes it. This also simplifies further changes to use as much of the
rust data structures as possible.

I had to switch from nsTHashtable to mozilla::HashTable because the former
doesn't handle well non-default-constructible structs (like NamedLine, which
now has a StyleAtom, which is not default-constructible).

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

--HG--
extra : moz-landing-system : lando
2019-06-19 05:58:11 +00:00
Emilio Cobos Álvarez 841d3eea32 Bug 1559545 - Use servo for the representation of grid template areas. r=mats
Right now we do a lot of useless string copying. In order to avoid transcoding
to utf-16 during layout, make sure to use nsCString at a few related places.

I may revisit this since we're storing other line names as atoms in some places.
So it may be better to just use atoms everywhere.

But that'd be a different patch either way.

Depends on D35116

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

--HG--
extra : moz-landing-system : lando
2019-06-18 22:29:58 +00:00
Doug Thayer 5a066b03f1 Bug 1548247 - Correct and limit scroll update renderroot usage r=kats
There's two things going on here. 1) nsGfxScrollFrame is getting the
wrong renderroot, because it's not correctly recursing up the frame
tree. 2) Hiding behind that problem is that if we do correctly assign
the renderroot, we end up blocking on both render roots updating if
we don't, say, have a horizontal scroll option, because that leaves
us with a wr::RenderRoot::Default. 2.1) We then still end up blocking
on the default renderroot because we initialize the selector with
WebRenderBridgeParent's mRenderRoot.

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

--HG--
extra : moz-landing-system : lando
2019-06-18 22:02:57 +00:00
Ting-Yu Lin 73b1eb5bc6 Bug 1550869 - Stop undraggable images from being selected by a single-clicking. r=emilio
This is a rework for the issue in bug 1516963.

The condition `aFrame->IsFrameOfType(nsIFrame::eReplaced)` was added to
avoid breaking
editor/libeditor/tests/test_abs_positioner_positioning_elements.html
because it contains blockified (position:absolute) images in
contenteditable, and we don't want these images to use frame edge. But
for non-editable undraggable images, which have display:inline, we want
them to use frame edge to avoid being selected by a single-clicking.
Note that non-editable draggable images use a different code patch to
handle their operations.

I think it easier to understand by checking the frame types directly. As
for images, we want non-editable images to use frame edge, but not those
editable ones because editor has its own logic to handle all the
dragging operations, etc. Using frame edge for editable images makes
them undraggable, and fails
test_abs_positioner_positioning_elements.html.

Add more tests for empty inline-grid, inline-flex, inline-table, video,
to ensure the behavior is not changed. We don't want them to be selected
by a single-clicking, either.

Note I only test video's selection is collapsed when single-clicking
because I failed to turn off picture-in-picture on <video> in
test_reftests_with_caret.html.

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

--HG--
extra : moz-landing-system : lando
2019-06-18 05:30:35 +00:00
Razvan Maries 968156f90a Merge mozilla-central to mozilla-inbound. a=merge on a CLOSED TREE 2019-06-28 06:41:53 +03:00
Nicholas Nethercote 59dde0c47e Bug 1561825 - Make layout.* static prefs follow the naming convention. r=KrisWright
Differential Revision: https://phabricator.services.mozilla.com/D36160

--HG--
extra : rebase_source : 25ec3d8bd549a9229ec8789f2ca604c27082f228
2019-06-27 16:28:25 +10:00
Nicholas Nethercote 4008f58653 Bug 1561825 - Make layers.* static prefs follow the naming convention. r=KrisWright
The patch also removes the layers.mlgpu.enable-container-resizing pref, because
it's dead.

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

--HG--
extra : rebase_source : e215d584aed18f865d2e8d00a78e76e9b0323e6e
2019-06-27 14:48:58 +10:00
Bogdan Tara 7d04a14e49 Merge mozilla-central to mozilla-inbound. a=merge CLOSED TREE 2019-06-14 13:46:39 +03:00
Charlie Marlow dd305b9409 Bug 1552062: Part 2: Implemented rendering for text-underline-offset in nsTextFrame r=jfkthame
reftests will be added in part 3, from-font support will be added later on

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

--HG--
extra : moz-landing-system : lando
2019-06-14 02:33:45 +00:00
Charlie Marlow 5c40da97ea Bug 1552062: Part 1: Added text underline offset member variable to LineDecorations struct r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D33882

--HG--
extra : moz-landing-system : lando
2019-06-14 02:33:45 +00:00
shindli 4831c71ec8 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-06-14 00:57:43 +03:00
Daniel Holbert 5c3642fba6 Bug 1551185 followup: Give nsImageFrame.cpp an #include for HTMLEditor (a type it uses in this bug's main patch). (no review, just a trivial #include addition for correctness)
This change doesn't affect behavior, but is probably needed to build
successfully in a non-unified-build configuration.

--HG--
extra : amend_source : 6617eaa171d1b1e294d2f3657d1d94688758b3e6
2019-06-13 10:57:04 -07:00
Oana Pop Rus 1133b6716d Merge inbound to mozilla-central. a=merge 2019-06-13 12:55:51 +03:00
violet 156ff2589f Bug 1554753 - Should not treat 0 opacity text without stroke width as drawing stroke r=jfkthame
The regressor Bug 1248708 inadvertently changed the behavior for opacity 0 text
when implementing -webkit-text-stroke. It treats all opacity 0 text as drawing stroke
even if the stroke property isn't used in the first place.

We should check aParams.textStrokeWidth is actually set before changing draw mode.

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

--HG--
extra : moz-landing-system : lando
2019-06-12 15:28:55 +00:00
Emilio Cobos Álvarez 4e5f983137 Bug 1488953 - Use a script runner for scrollport events. r=mats
This is consistent with the scroll area events too, and allows us to
remove the WillPaintObserver stuff.

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

--HG--
extra : moz-landing-system : lando
2019-06-13 02:30:25 +00:00
violet d5bbf998dd Bug 1351432 - Implement the break-spaces value of the white-space property r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D34499

--HG--
extra : moz-landing-system : lando
2019-06-12 10:23:49 +00:00
violet f7f51ced95 Bug 1351432 - Cleanup GetCSSWhitespaceToCompressionMode r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D34498

--HG--
extra : moz-landing-system : lando
2019-06-11 14:29:23 +00:00
Ryan Hunt b76533bae0 Bug 1558482 - Only initialize the root displayport for the cross process root content document. r=kats
The root displayport has some assumptions built into it about being positioned at
the origin and sized to the composition bounds that seem like they only apply to
the cross process root content document. This commit changes us to avoid taking
this code path for OOP-iframes.

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

--HG--
extra : rebase_source : 026bb84b7ad086f508228620d19d9f459f28bf1d
2019-06-11 07:57:23 -05:00
Ryan Hunt 99aaa4e6c6 Bug 1558482 - Add visibleRect and scaling to EffectsInfo and compute them when using layers. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D34523

--HG--
extra : rebase_source : 3bbef496359ae108e1f4adc2548e0140cfd7b0a8
2019-06-11 07:50:40 -05:00
Hiroyuki Ikezoe 56cfdf6c52 Bug 1554022 - Use the current position in CSS pixels for the start point of ScrollBy. r=botond,mstange
Otherwise clamped positions in layer pixels might cause 1-pixel difference
in CSS pixels on Android.

Note that there is a fundamental issue on the interaction between
the layer-pixel alignment and scrolling APIs (bug 1556685), once we fix the bug
properly, we should use the scrolled position, which was given by the scrolling
APIs, for the current position.

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

--HG--
extra : moz-landing-system : lando
2019-06-11 22:43:34 +00:00
Will Hawkins f7a08bd7ed Bug 1550437: Make sure that About dialog animates the throbber. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D34429

--HG--
extra : moz-landing-system : lando
2019-06-11 14:19:43 +00:00
Boris Zbarsky d5a8a4a595 Bug 1557793 part 3. Change the signatures of various nsContentUtils localization methods to play nicer with the new stringbundle API. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D34201

--HG--
extra : moz-landing-system : lando
2019-06-08 21:26:12 +00:00
Botond Ballo c0ca36e4fd Bug 1554813 - Size the scroll parts clip to the scroll frame's true outer size. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D33377

--HG--
extra : moz-landing-system : lando
2019-06-10 16:30:42 +00:00
Emilio Cobos Álvarez b4225d4d66 Bug 1558357 - Should update layout when the hypothetical display of an element changes, even though the final computed display doesn't. r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D34443

--HG--
extra : moz-landing-system : lando
2019-06-11 09:12:10 +00:00
Matt Woodrow d35146931b Bug 1555819 - Remove invalidated display items during PreProcessDisplayLists, since we might not merge their display list. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D33881

--HG--
extra : moz-landing-system : lando
2019-06-11 04:39:17 +00:00
Matt Woodrow f6b0435e84 Bug 1547802 - Compute a single caret frame for the entire display list, and remove the option to invalidate frames during painting. r=miko,smaug
Previously we computed a caret frame each time we started display list building for a pres shell, and tracked a stack of these as we descended through subdocuments.
This meant that we couldn't know if the caret frame had changed before we started building, and we instead had to support invalidations in the middle of building.

Since there should only ever be one focused document, we can instead retrieve this from the focus manager, and find the sole caret frame for all documents we want to paint.

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

--HG--
extra : moz-landing-system : lando
2019-06-11 04:39:00 +00:00
Cosmin Sabou 3d72a8ffe7 Backed out 2 changesets (bug 1547802, bug 1555819) for build bustages on nsDisplayList.
Backed out changeset aea91be6ce82 (bug 1555819)
Backed out changeset 11a69daedddb (bug 1547802)
2019-06-11 06:52:46 +03:00
Matt Woodrow 5dc2d83f7b Bug 1555819 - Remove invalidated display items during PreProcessDisplayLists, since we might not merge their display list. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D33881

--HG--
extra : moz-landing-system : lando
2019-06-11 02:20:21 +00:00
Matt Woodrow 72068e14f5 Bug 1547802 - Compute a single caret frame for the entire display list, and remove the option to invalidate frames during painting. r=miko,smaug
Previously we computed a caret frame each time we started display list building for a pres shell, and tracked a stack of these as we descended through subdocuments.
This meant that we couldn't know if the caret frame had changed before we started building, and we instead had to support invalidations in the middle of building.

Since there should only ever be one focused document, we can instead retrieve this from the focus manager, and find the sole caret frame for all documents we want to paint.

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

--HG--
extra : moz-landing-system : lando
2019-06-11 02:20:09 +00:00
Oana Pop Rus b93335c27f Merge mozilla-central to autoland. a=merge CLOSED TREE 2019-06-13 13:04:19 +03:00
Peter Van der Beken 8b00dd9ff2 Bug 1490044 - Move all prefs used in WebIDL to StaticPrefs. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D33507

--HG--
extra : moz-landing-system : lando
2019-06-13 09:00:59 +00:00
Jonathan Watt cdbcb71463 Bug 1558079. Add a comment to the mozPrintCallback invoking code warning about its non-obvious behavior. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D34298

--HG--
extra : rebase_source : 523c19cc0b63d08a5701f9a2d4148b146529827c
extra : amend_source : c3b5b7e85a1b9bc64e76524f974a96ad93201886
2019-05-31 16:18:51 +01:00
Noemi Erli 5b41ddf5f2 Backed out 2 changesets (bug 1547802, bug 1555819) mochitest and marionette failures CLOSED TREE
Backed out changeset 10ba83441846 (bug 1555819)
Backed out changeset b9af6aea762d (bug 1547802)
2019-06-07 09:12:09 +03:00
Matt Woodrow d436383750 Bug 1547802 - Compute a single caret frame for the entire display list, and remove the option to invalidate frames during painting. r=miko,smaug
Previously we computed a caret frame each time we started display list building for a pres shell, and tracked a stack of these as we descended through subdocuments.
This meant that we couldn't know if the caret frame had changed before we started building, and we instead had to support invalidations in the middle of building.

Since there should only ever be one focused document, we can instead retrieve this from the focus manager, and find the sole caret frame for all documents we want to paint.

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

--HG--
extra : moz-landing-system : lando
2019-06-07 01:55:43 +00:00
Miko Mynttinen fbfcf25cc9 Bug 1490404 - Part 1: Be more consistent with display list and display list builder pointers and references r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D33679

--HG--
extra : moz-landing-system : lando
2019-06-06 17:54:13 +00:00
shindli 3caa33a7ea Merge inbound to mozilla-central. a=merge 2019-06-06 12:57:52 +03:00
Ting-Yu Lin 3a4933eb98 Bug 1549267 Part 1 - Remove NS_INTRINSICSIZE and NS_AUTOHEIGHT. r=mats
This patch is generated by the following steps.

1) Manually delete NS_INTRINSICSIZE and NS_AUTOHEIGHT in LayoutConstants.

2) Run the following script.
```
  #!/bin/bash
  function rename() {
      find .\
           -type f\
           ! -path "./obj*"\
           ! -path "./.git"\
           ! -path "./.hg"\
           \( -name "*.cpp" -or\
              -name "*.h" \)\
              -exec sed -i -e "s/$1/$2/g" "{}" \;
  }

  rename NS_INTRINSICSIZE NS_UNCONSTRAINEDSIZE
  rename NS_AUTOHEIGHT NS_UNCONSTRAINEDSIZE
```

3) ./mach clang-format

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

--HG--
extra : moz-landing-system : lando
2019-06-04 23:41:20 +00:00
Ryan Hunt 451ca010b0 Bug 1556555 - Get TabId for nsDisplayRemote when we're in a content process. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D33566

--HG--
extra : rebase_source : 8dcaa325ccab11fac6e1e329097f9a0e3442ded2
extra : source : 79ffe50308dbbee03d4b949e9fc26d6c39a68cb1
extra : histedit_source : 01dea72cf28284df2a2e37446474854e9754664f
2019-06-02 13:42:21 -04:00
Ryan Hunt 4386b68e1c Bug 1556548 - Move nsDisplayRemote to nsSubDocumentFrame.cpp. r=mattwoodrow
nsDisplayRemote no longer has any direct ties to RenderFrame and should
be moved to nsSubDocumentFrame.cpp where it's actually used/created.

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

--HG--
extra : rebase_source : ae2e03108820bd14b5f2771da17cabfd95706f94
extra : source : b301161ab461cd46cea3f91749896686c50e9b9f
extra : histedit_source : 1c80f83d26734e56bd6353f0a50dcbc4bf894b4b
2019-06-02 13:00:16 -04:00
Ryan Hunt 298a301151 Bug 1556548 - Make RenderFrame an internal detail to BrowserParent. r=mattwoodrow,farre
Code outside of BrowserParent should just get the LayersId from a getter
and not worry about RenderFrame.

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

--HG--
extra : rebase_source : 63f9f9680a7cb16a18d9e56999e02a124aa63429
extra : source : e86839ca63260b09184755c98890fa8abf371530
extra : histedit_source : 34333f5f78ecf9b4f3e12c6175a6e81724a41fb2
2019-05-31 16:00:57 -05:00
Jonathan Watt 5cd2b5b11e Bug 1557104. Merge nsIPageSequenceFrame and nsSimplePageSequenceFrame. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D33817

--HG--
rename : layout/generic/nsSimplePageSequenceFrame.cpp => layout/generic/nsPageSequenceFrame.cpp
rename : layout/generic/nsSimplePageSequenceFrame.h => layout/generic/nsPageSequenceFrame.h
extra : rebase_source : e75b043af4dbfe4c108f2bfc0e234fd20c5af315
2019-05-22 13:01:33 +01:00
Mats Palmgren 032d86b0c2 Bug 1556709 - Only call OptionallyBreak() if we may break at white-space. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D33718

--HG--
extra : rebase_source : 5a9cb0727ad4371edd2258ffd0a29282c8de2a2c
2019-06-04 21:20:33 +02:00
Ehsan Akhgari 127b9e6503 Bug 836176 - Part 4: drop a useless null check
Differential Revision: https://phabricator.services.mozilla.com/D33676

--HG--
extra : moz-landing-system : lando
2019-06-04 18:21:52 +00:00
Ehsan Akhgari adf073ce68 Bug 836176 - Part 3: Remove nsIHTMLDocument; r=farre
Differential Revision: https://phabricator.services.mozilla.com/D32925

--HG--
extra : moz-landing-system : lando
2019-06-04 17:27:43 +00:00