Commit Graph

2202 Commits

Author SHA1 Message Date
Kyle Machulis
f293508546 Bug 1505601 - Turn nsIDocShell XPIDL const lists into cenums; r=bzbarsky
Turn all const lists and related attributes into cenums, to provide a
vague sense of type safety.

Depends on D11715

Differential Revision: https://phabricator.services.mozilla.com/D11716
2018-11-28 03:30:56 +00:00
Gabriele Svelto
e76fa2194a Bug 1509450 - Remove unnecessary inclusions of ContentParent.h and ContentChild.h r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D12728
2018-11-26 14:49:44 +00:00
Emilio Cobos Álvarez
4a892da179 Bug 1506547 - Align user-select behavior more with other UAs. r=mats
There's a few subtle behavior changes here, which I'll try to break down in the
commit message.

The biggest one is the EditableDescendantCount stuff going away. This
was added in bug 1181130, to prevent clicking on the non-editable div from
selecting the editable div inside. This is problematic for multiple reasons:

 * First, I don't think non-editable regions of an editable element should
   be user-select: all.

 * Second, it just doesn't work in Shadow DOM (the editable descendant count is
   not kept up-to-date when not in the uncomposed doc), so nested
   contenteditables behave differently inside vs. outside a Shadow Tree.

 * Third, I think it's user hostile to just entirely disable selection if you
   have a contenteditable descendant as a child of a user-select: all thing.

   WebKit behaves like this patch in the following test-case (though not Blink):

     https://crisal.io/tmp/user-select-all-contenteditable-descendant.html

   Edge doesn't seem to support user-select: all at all (no pun intended).

   But we don't allow to select anything at all which looks wrong.

 * Fourth, it's not tested at all (which explains how we broke it in Shadow DOM
   and not even notice...).

In any case I've verified that this doesn't regress the editor from that bug. If
this regresses anything we can fix it as outlined in the first bullet point
above, which should also make us more compatible with other UAs in that
test-case.

The other change is `all` not overriding everything else. So, something like:

  <div style="-webkit-user-select: all">All <div style="-webkit-user-select: none">None</div></div>

Totally ignores the -webkit-user-select: none declaration in Firefox before this
change. This doesn't match any other UA nor the spec, and this patch aligns us
with WebKit / Blink.

This in turn makes us not need -moz-text anymore, whose only purpose was to
avoid this.

This also fixes a variety of bugs uncovered by the previous changes, like the
SetIgnoreUserModify(false) call in editor being completely useless, since
presShell->SetCaretEnabled ended in nsCaret::SetVisible, which overrode it.

This in turn uncovered even more bugs, from bugs in the caret painting code,
like not checking -moz-user-modify on the right frame if you're the last frame
of a line, to even funnier bits where before this patch you show the caret but
can't write at all...

In any case, the new setup I came up with is that when you're editing (the
selection is focused on an editable node) moving the caret forces it to end up
in an editable node, thus jumping over non-editable ones.

This has the nice effect of not completely disabling selection of
-moz-user-select: all elements that have editable descendants (which was a very
ad-hoc hack for bug 1181130, and somewhat broken per the above), and also
not needing the -moz-user-select: all for non-editable bits in contenteditable.css
at all.

This also fixes issues with br-skipping like not being able to insert content in
the following test-case:

  <div contenteditable="true"><span contenteditable="false">xyz </span><br>editable</div>

If you start moving to the left from the second line, for example.

I think this yields way better behavior in all the relevant test-cases from bug
1181130 / bug 1109968 / bug 1132768, shouldn't cause any regression, and the
complexity is significantly reduced in some places.

There's still some other broken bits that this patch doesn't fix, but I'll file
follow-ups for those.

Differential Revision: https://phabricator.services.mozilla.com/D12687
2018-11-26 09:21:37 +00:00
Brindusan Cristian
cdd80f04e9 Backed out changeset 1575904619b5 (bug 1506547) for mochitest failures on test_reftests_with_caret.html. 2018-11-26 03:03:14 +02:00
Emilio Cobos Álvarez
0fb9f2f0b7 Bug 1506547 - Align user-select behavior more with other UAs. r=mats
There's a few subtle behavior changes here, which I'll try to break down in the
commit message.

The biggest one is the EditableDescendantCount stuff going away. This
was added in bug 1181130, to prevent clicking on the non-editable div from
selecting the editable div inside. This is problematic for multiple reasons:

 * First, I don't think non-editable regions of an editable element should
   be user-select: all.

 * Second, it just doesn't work in Shadow DOM (the editable descendant count is
   not kept up-to-date when not in the uncomposed doc), so nested
   contenteditables behave differently inside vs. outside a Shadow Tree.

 * Third, I think it's user hostile to just entirely disable selection if you
   have a contenteditable descendant as a child of a user-select: all thing.

   WebKit behaves like this patch in the following test-case (though not Blink):

     https://crisal.io/tmp/user-select-all-contenteditable-descendant.html

   Edge doesn't seem to support user-select: all at all (no pun intended).

   But we don't allow to select anything at all which looks wrong.

 * Fourth, it's not tested at all (which explains how we broke it in Shadow DOM
   and not even notice...).

In any case I've verified that this doesn't regress the editor from that bug. If
this regresses anything we can fix it as outlined in the first bullet point
above, which should also make us more compatible with other UAs in that
test-case.

The other change is `all` not overriding everything else. So, something like:

  <div style="-webkit-user-select: all">All <div style="-webkit-user-select: none">None</div></div>

Totally ignores the -webkit-user-select: none declaration in Firefox before this
change. This doesn't match any other UA nor the spec, and this patch aligns us
with WebKit / Blink.

This in turn makes us not need -moz-text anymore, whose only purpose was to
avoid this.

This also fixes a variety of bugs uncovered by the previous changes, like the
SetIgnoreUserModify(false) call in editor being completely useless, since
presShell->SetCaretEnabled ended in nsCaret::SetVisible, which overrode it.

This in turn uncovered even more bugs, from bugs in the caret painting code,
like not checking -moz-user-modify on the right frame if you're the last frame
of a line, to even funnier bits where before this patch you show the caret but
can't write at all...

In any case, the new setup I came up with is that when you're editing (the
selection is focused on an editable node) moving the caret forces it to end up
in an editable node, thus jumping over non-editable ones.

This has the nice effect of not completely disabling selection of
-moz-user-select: all elements that have editable descendants (which was a very
ad-hoc hack for bug 1181130, and somewhat broken per the above), and also
not needing the -moz-user-select: all for non-editable bits in contenteditable.css
at all.

This also fixes issues with br-skipping like not being able to insert content in
the following test-case:

  <div contenteditable="true"><span contenteditable="false">xyz </span><br>editable</div>

If you start moving to the left from the second line, for example.

I think this yields way better behavior in all the relevant test-cases from bug
1181130 / bug 1109968 / bug 1132768, shouldn't cause any regression, and the
complexity is significantly reduced in some places.

There's still some other broken bits that this patch doesn't fix, but I'll file
follow-ups for those.

Differential Revision: https://phabricator.services.mozilla.com/D12687
2018-11-25 20:01:07 +00:00
Hiroyuki Ikezoe
723dc783a8 Bug 1506988 - Don't incorporate properties that are prevented from running on the compositor in GetPropertiesForCompositor. r=birtles
Now we no longer update the corresponding display items for the animations that
are prevented from running on the compositor if the animations themselves don't
generate any change hints, e.g the same value is specified in both 'from' and
'to' keyframes.  So that we can enable the reftests that we had been suffering
from continuous MozAfterPaint events.

Depends on D12397

Differential Revision: https://phabricator.services.mozilla.com/D12369
2018-11-22 03:57:59 +00:00
Boris Zbarsky
685b646fa2 Bug 1507540 part 2. Use more notxpcom attributes in docshell/. r=smaug 2018-11-19 20:17:53 -05:00
Ting-Yu Lin
4f65703277 Bug 1491915 - Fix bullet frame creation for columns. r=bzbarsky
The modification to nsLayoutUtils::GetFirstLinePosition() is needed because we
need to get the correct first line position from child (i.e. ColumnSet) when
there's an outside bullet on ColumnSetWrapperFrame.

The difference between the two newly added tests is "overflow: hidden" on
the columns.

Differential Revision: https://phabricator.services.mozilla.com/D7009
2018-11-16 21:46:23 +00:00
Hiroyuki Ikezoe
6cb9520459 Bug 1504929 - Avoid hashmap lookups in nsLayoutUtils::HasEffectiveAnimation and EffectCompositor::FindAnimationsForCompositor. r=birtles
Depends on D11427

Differential Revision: https://phabricator.services.mozilla.com/D11597
2018-11-13 10:17:44 +00:00
Hiroyuki Ikezoe
619442eb0a Bug 1504929 - Further optimizations for RestyleManager::AddLayerChangesForAnimations.. r=birtles,sotaro
This change eliminates
 - nsLayoutUtils::LastContinuationOrIBSplitSibling calls for each CSS
   properties on WebRender
 - iterating over each display item for each compositor runnable CSS properties
 - a bunch of stuff in the case where the layer manager has not yet created,
   i.e. the compositor thread is not ready to receive animations

Depends on D11425

Differential Revision: https://phabricator.services.mozilla.com/D11426
2018-11-13 10:23:20 +00:00
Hiroyuki Ikezoe
2ee4a8d976 Bug 1504929 - Stop iterating EffectSets and KeyframeEffect::mProperties for each CSS properties that can be animated on the compositor. r=birtles
This change gets all effective CSS properties on an nsIFrame just once.

Note that LayerAnimationInfo::GetCSSPropertiesFor intentionally returns
nsCSSPropertyIDSet instead of nsCSSPropertyID since when we support individual
transform properties for the compositor the mapping between display item types
and nsCSSProperty has to be 1:N. E.g. all scale/translate/rotate properties are
mapped to transform display item.

Depends on D11424

Differential Revision: https://phabricator.services.mozilla.com/D11425
2018-11-13 10:22:26 +00:00
Cameron McCormack
ffe768e9ad Bug 1504034 - Part 3: Store the Rust QuotePair slice as the computed quotes value in Gecko style structs r=emilio
Depends on D10651

Differential Revision: https://phabricator.services.mozilla.com/D10652
2018-11-06 23:03:24 +00:00
shindli
869e127abc Merge inbound to mozilla-central. a=merge 2018-11-03 11:40:50 +02:00
Emilio Cobos Álvarez
9babd758f5 Bug 1504078 - Use references in the shapes code. r=bradwerth,TYLin
It doesn't make much sense to return const UniquePtr<Foo>& for something that
can't be null, it's just confusing.

Also make more stuff actually const.

Differential Revision: https://phabricator.services.mozilla.com/D10647
2018-11-02 18:19:06 +00:00
Ryan Hunt
8fc281bdb4 Bug 1504220 - Move ScrollableLayerGuid, ViewID, ZoomConstraints from FrameMetrics.h r=botond
This commit attempts to lower the pain of modifying FrameMetrics.h.

It looks like most includes really only want ViewID or
ScrollableLayerGuid, so this commit factors them out into a separate
header. In the process FrameMetrics::ViewID is changed to
ScrollableLayerGuid::ViewID, which personally seems like a better
place for it now that we have RepaintRequest. Unfortunately that
requires a lot of places to be updated.

After this commit there are still a couple of major places that
FrameMetrics is included.
 * nsDisplayList.h
 * nsIScrollableFrame.h
 * Layers.h

Those are going to be more tricky or impossible to fix so they're
not in this commit.

Differential Revision: https://phabricator.services.mozilla.com/D10722
2018-11-01 15:15:46 -05:00
Miko Mynttinen
54d12acf3e Bug 1503046 - Part 1: Add simple hit test info diagnostics r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D10130
2018-11-02 02:18:35 +00:00
Cameron McCormack
2337abf1bd Bug 1496617 - Part 2: Fix inconsistent CRISPEDGES constant name r=emilio
Depends on D10451

Differential Revision: https://phabricator.services.mozilla.com/D10452
2018-11-01 01:37:26 +00:00
Kartikaya Gupta
c2cca28f31 Bug 1501046 - Set a displayport on the root document's root scrollframe if we paint it before ChromeProcessController sets the displayport. r=botond 2018-10-30 08:20:51 -04:00
Boris Chiou
e66fea290e Bug 1500627 - Fix some potential bugs of sizing properties for keywords in the block axis r=mats
1. Drop {Width|MinWidth|MaxWidh}DependsOnContainer() and
   {Height|MinHeight|MaxHeight}DependsOnContainer() because they are bogus
   after introducing the writing mode. Dropping these functions needs
   update nsLineLayout because it is the only one who still use
   these functions.
2. There are still some potential assertions and bugs on handling keywords
   in the block size, so we should update them as well.

Depends on D9438

Differential Revision: https://phabricator.services.mozilla.com/D9439
2018-10-29 22:56:42 +00:00
Ryan Hunt
298e8184af Bug 1453425 - Add relative scroll offset updates using nsGkAtoms::relative. r=botond
This commit adds a scroll origin, nsGkAtoms::relative, which can be used to
mark main thread scrolling that can be combined with a concurrent APZ scroll.

The behavior of this is controlled by a pref, apz.relative-update. This pref
is initially activated and is intended as an aid to narrowing down causes
of regressions for users in bug reports.

Relative scroll updates work by tracking the last sent or accepted APZ
scroll offset. This is sent along with every FrameMetrics. Additionally,
a flag is added to FrameMetrics, mIsRelative, indicating whether the
scroll offset can be combined with a potential APZ scroll. When this
flag is set, AsyncPanZoomController will apply the delta between the sent
base scroll offset, and sent new scroll offset.

This flag is controlled by the last scroll origin on nsGfxScrollFrame. The
new origin, `relative`, is marked as being able to clobber APZ updates,
but can only be set if all scrolls since the last repaint request or
layers transaction have been relative.

Differential Revision: https://phabricator.services.mozilla.com/D8234
2018-10-09 23:24:28 -05:00
Ryan Hunt
40ca5048be Bug 1453425 - Add RepaintRequest for use of FrameMetrics in repaint requests. r=botond
FrameMetrics is currently used in about three ways.
  1. Main thread to APZ transactions
  2. Storing information in AsyncPanZoomController
  3. APZ to main thread repaint requests

There's overlap in the use of fields in all these use cases, but it's not perfect. In a
following commit, I'd like to change the information used for (1) to support relative
scroll offset updates. This information isn't needed for (2) or (3), so it would be
good to refactor FrameMetrics out into these use cases.

This commit refactors out (3) as it is fairly easy to do. I'd like to refactor (2) out
as well, but that is trickier. I'd like to leave that for a future followup.

Differential Revision: https://phabricator.services.mozilla.com/D7127
2018-09-19 13:50:20 -05:00
Kartikaya Gupta
c443ddcc87 Bug 1469403 - Skip DL dumps when the DL builder is from an inactive docshell. r=mattwoodrow
Depends on D9141

Differential Revision: https://phabricator.services.mozilla.com/D9146
2018-10-22 23:42:05 +00:00
Kartikaya Gupta
f38684c0da Bug 1469403 - Set a flag on the DL builder to indicate if the docshell is active. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D9141
2018-10-22 23:41:47 +00:00
Kartikaya Gupta
f04ce2e9ec Bug 1485834 - Allow recomputing the cumulative resolution in ComputeScrollMetadata. r=botond
We need to correctly populate the cumulative resolution field in the
ScrollMetadata in order to support zooming. Without this, the cumulative
resolution doesn't include the presShell resolution, and that results in
APZ getting into an inconsistent state.

Currently, the cumulative resolution is populated from the
ContainerLayerParameters object's scale, but in the case of WebRender,
we call ComputeScrollMetadata with an empty ContainerLayerParameters
since don't actually do layer building or rasterization in Gecko.
This patch makes this more explicit by changing the argument to a
Maybe<ContainerLayerParameters> and passing Nothing() from the WebRender
call sites.

In this scenario, we just use the cumulative presShell resolution as
the cumulative resolution, which should be correct for WebRender as
we won't have an "extra" CSS-derived resolution applied on the Gecko
side.

Depends on D9120

Differential Revision: https://phabricator.services.mozilla.com/D9121
2018-10-19 14:24:50 +00:00
Boris Chiou
55842b617a Bug 1496558 - Part 1: Store the correct computed values for keywords for sizing properties r=mats
In order to get the correct computed value of these keywords, we have to
make sure we store the correct computed values in sizing properties in
both inline axis and block axis.

-moz-max-content and -moz-min-content should behave as the property's
initial value in block axis. -moz-fit-content and -moz-available are not
supported in block axis, so we also treat them as initial values.

Differential Revision: https://phabricator.services.mozilla.com/D8290
2018-10-16 19:38:41 +00:00
Masayuki Nakano
2281bb5d04 Bug 1461708 - part 4: Move implementation of UIEvent::GetRangeParent() and UIEvent::RangeOffset() to nsLayoutUtils r=smaug
We need to move EditorEventListener::HandleMiddleClickPaste() into
EventStateManager to handle middle click paste after all click events are
dispatched.  This is preparation of the change.

HandleMiddleClickPaste() uses UIEvent::GetRangeParent() and
UIEvent::RangeOffset() to collapse Selection at clicked point.  However,
EventStateManager cannot access them since EventStateManager can handle it
with WidgetMouseEvent.  Fortunately, only WidgetMouseEvent is necessary for
implementing them.  Therefore, we can move the implementation into
nsLayoutUtils and merge them.

Differential Revision: https://phabricator.services.mozilla.com/D7851
2018-10-10 12:03:34 +00:00
Gurzau Raul
c2c2b3e9a4 Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-10-10 01:04:25 +03:00
Manuel Rego Casasnovas
065887960f Bug 1491235: [css-contain] Make 'contain:layout' (not 'contain:size') suppress baseline measurements r=dholbert
The CSSWG has recently resolved that layout containment
suppress baseline alignment, while size containment does not:
https://github.com/w3c/csswg-drafts/issues/2995

Spec text (https://drafts.csswg.org/css-contain/#containment-layout):
  "7. For the purpose of the vertical-align property,
   or any other property whose effects need to relate
   the position of the containing element's baseline
   to something other than its descendants,
   the containing element is treated as having no baseline."

And a note in (https://drafts.csswg.org/css-contain/#containment-size):
  "Note: size containment does not suppress baseline alignment.
   See layout containment for that."

This patch does this change just switching IsContainSize()
by IsLayoutSize() in several places related to baseline alignment
in the source code.

With the patch several WPT tests start to pass. Apart from that,
some of the tests under vendor-imports are updated to follow
the new behavior.
2018-10-09 14:13:13 -07:00
Emilio Cobos Álvarez
1203186c4e Bug 1496486 - Remove nsCSSValue usage from font code. r=heycam
Really sorry for the size of the patch.

Differential Revision: https://phabricator.services.mozilla.com/D7753
2018-10-09 19:07:41 +02:00
Narcis Beleuzu
ae1469597d Backed out 5 changesets (bug 1496486) for valgrind bustages. CLOSED TREE
Backed out changeset d2f1e35ee4b7 (bug 1496486)
Backed out changeset 7f843f4ee162 (bug 1496486)
Backed out changeset 2f629a60f12c (bug 1496486)
Backed out changeset 4dd15fa31474 (bug 1496486)
Backed out changeset e8d8e2f3f00b (bug 1496486)
2018-10-09 19:44:51 +03:00
Emilio Cobos Álvarez
8b8cd9d94d Bug 1496486 - Remove nsCSSValue usage from font code. r=heycam
Really sorry for the size of the patch.

Differential Revision: https://phabricator.services.mozilla.com/D7753
2018-10-09 17:33:24 +02:00
Brindusan Cristian
23bf677c29 Backed out 5 changesets (bug 1496486) for build bustages on gfxUserFontSet.h. CLOSED TREE
Backed out changeset 6b740afea403 (bug 1496486)
Backed out changeset 5cf44e254ac3 (bug 1496486)
Backed out changeset 8e465202c355 (bug 1496486)
Backed out changeset 86382b2249f6 (bug 1496486)
Backed out changeset ab92ed3e0a23 (bug 1496486)
2018-10-09 16:58:38 +03:00
Emilio Cobos Álvarez
a45790bbf8 Bug 1496486 - Remove nsCSSValue usage from font code. r=heycam
Really sorry for the size of the patch.

Differential Revision: https://phabricator.services.mozilla.com/D7753
2018-10-09 15:33:03 +02:00
Botond Ballo
8626ae6069 Bug 1290420 Part 2: Respect the metaViewportOverride flag on the docshell. r=dholbert
Depends on D3373

Differential Revision: https://phabricator.services.mozilla.com/D3375
2018-10-04 00:19:40 +00:00
Botond Ballo
9854c37b4a Bug 1470504 - Always log the high-resolution displayport to APZ test data. r=kats
Previously we would log the displayport and the critical displayport separately,
which made it more difficult to write cross-platform APZ tests.

Differential Revision: https://phabricator.services.mozilla.com/D7341
2018-09-12 20:18:38 -04:00
Jan Henning
a5dad2165b Bug 1428670 - Part 3: Store the effective container ISize within the FontInflationData. r=dbaron
When one of the two factors governing the effective container width for font
inflation changes, we need to mark all affected frames as dirty.
While the visible area commonly changes because of viewport changes and we can
catch those through the check for ISize resizes of the top-level frame
("!mFrame->GetParent() && isIResize"), it still seems nicer to move calculation
of the effective container width into the FontInflationData itself, especially
since the effective container width calculation in nsLayoutUtils is the only
consumer of the NCAISize currently stored by the FontInflationData.

That way
- we can be sure that really all changes of the visible width will correctly
  mark all affected frames as dirty
- can avoid repeatedly recalculating the effective container width
- can also detect the cases where the effective container width actually remains
  the same after a change in one of its input factors and skip forcing a full
  dirty reflow for all descendants just because of font inflation.

While the code in nsLayoutUtils was technically always using the writing
mode (horizontal/vertical) of each individual frame for determining which
dimension of the visible size should be used for clamping, just using the
writing mode of the respective flow root should be enough, since each change in
the writing mode should create a new flow root.

This assumption should already hold today because
1. as per the Writing Modes CSS spec, a change in writing mode compared to its
   parent means that the affected block cannot be purely "inline", but at most
   "inline-block".
2. Generally, any non-inline frame will be marked as a font inflation container.
3. Any block frame whose writing direction doesn't match its parent will be a
   block formatting context, which implies NS_BLOCK_FLOAT_MGR.
4. Any block frame that has both NS_BLOCK_FLOAT_MGR set and is a font inflation
   container will also become a font inflation flow root.
but because this chain of reasoning is not the most direct, we also add a
corresponding assertion to better catch any potential bugs here.

Differential Revision: https://phabricator.services.mozilla.com/D5578
2018-10-02 15:23:17 +00:00
Bogdan Tara
258204c4f3 Backed out 5 changesets (bug 1428670, bug 1380830) for perma failing tests/layout/generic/crashtests/742602.html
Backed out changeset f38ac02fefac (bug 1380830)
Backed out changeset 1bf6b5fac1f9 (bug 1428670)
Backed out changeset faec1cb8ab5d (bug 1428670)
Backed out changeset 34736c8507e6 (bug 1428670)
Backed out changeset 6ecb75be4a61 (bug 1428670)
2018-09-29 23:51:23 +03:00
Jan Henning
883fb0e0cf Bug 1428670 - Part 3: Store the effective container ISize within the FontInflationData. r=dbaron
When one of the two factors governing the effective container width for font
inflation changes, we need to mark all affected frames as dirty.
While the visible area commonly changes because of viewport changes and we can
catch those through the check for ISize resizes of the top-level frame
("!mFrame->GetParent() && isIResize"), it still seems nicer to move calculation
of the effective container width into the FontInflationData itself, especially
since the effective container width calculation in nsLayoutUtils is the only
consumer of the NCAISize currently stored by the FontInflationData.

That way
- we can be sure that really all changes of the visible width will correctly
  mark all affected frames as dirty
- can avoid repeatedly recalculating the effective container width
- can also detect the cases where the effective container width actually remains
  the same after a change in one of its input factors and skip forcing a full
  dirty reflow for all descendants just because of font inflation.

While the code in nsLayoutUtils was technically always using the writing
direction of each individual frame for determining which dimension of the
visible size should be used for clamping, just using the writing direction of
the respective flow root should be enough, since each change in writing
direction should create a new flow root.

This assumption should already hold today because
1. as per the Writing Modes CSS spec, a change in writing mode compared to its
   parent means that the affected block cannot be purely "inline", but at most
   "inline-block".
2. Generally, any non-inline frame will be marked as a font inflation container.
3. Any block frame whose writing direction doesn't match its parent will be a
   block formatting context, which implies NS_BLOCK_FLOAT_MGR.
4. Any block frame that has both NS_BLOCK_FLOAT_MGR set and is a font inflation
   container will also become a font inflation flow root.
but because this chain of reasoning is not the most direct, we also add a
corresponding assertion to better catch any potential bugs here.

Differential Revision: https://phabricator.services.mozilla.com/D5578
2018-09-29 15:55:21 +00:00
Jonathan Kew
7178e9f990 Bug 1473314 - Make nsRange::GetUsedFontFaces accumulate font faces in the order they are encountered in the document. r=xidorn 2018-09-27 11:33:25 +01:00
Miko Mynttinen
1fb7a54a0d Bug 1488599 - Part 2: Fix will-change budget r=mattwoodrow
Depends on D5245

Differential Revision: https://phabricator.services.mozilla.com/D5246
2018-09-19 10:19:30 +00:00
Miko Mynttinen
11a1f05fbc Bug 1488599 - Part 1: Add RetainedDisplayListData that will store frame invalidation information r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D5245
2018-09-19 10:21:27 +00:00
Jonathan Kew
9abcea9bfc Bug 1490997 - Use nsAtom instead of nsString for font family name in the FontFamilyName struct, and switch its methods from 16-bit to 8-bit strings. r=lsalzman 2018-09-18 09:34:21 +01:00
Ciure Andrei
f5bd23bf74 Backed out 2 changesets (bug 1488599) for causing crashes a=backout
Backed out changeset b08b9f2693cd (bug 1488599)
Backed out changeset bba3a8028837 (bug 1488599)
2018-09-18 10:39:23 +03:00
Miko Mynttinen
86e4bb5231 Bug 1488599 - Part 2: Fix will-change budget r=mattwoodrow
Depends on D5245

Differential Revision: https://phabricator.services.mozilla.com/D5246
2018-09-17 14:43:07 +00:00
Miko Mynttinen
503a24d449 Bug 1488599 - Part 1: Add RetainedDisplayListData that will store frame invalidation information r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D5245
2018-09-17 14:41:08 +00:00
Gurzau Raul
677ca190c1 Backed out 2 changesets (bug 1488599) for bustages at /layout/painting/nsDisplayList.cpp on a CLOSED TREE
Backed out changeset ed780c8fd413 (bug 1488599)
Backed out changeset 0f40b48ed3b4 (bug 1488599)
2018-09-17 16:57:58 +03:00
Miko Mynttinen
de6b360263 Bug 1488599 - Part 2: Fix will-change budget r=mattwoodrow
Depends on D5245

Differential Revision: https://phabricator.services.mozilla.com/D5246
2018-09-17 12:39:09 +00:00
Miko Mynttinen
ba3ba1c3be Bug 1488599 - Part 1: Add RetainedDisplayListData that will store frame invalidation information r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D5245
2018-09-17 12:38:19 +00:00
Mats Palmgren
56299f2455 Bug 1489149 - Check all child lists for children, not just the principal list. r=dholbert 2018-09-16 20:36:48 +02:00
Daniel Varga
5fcdc89f87 Backed out 4 changesets (bug 1290420) for devtools failures on rowser_styleeditor_media_sidebar_links.js on a CLOSED TREE
Backed out changeset 210fdc42d29f (bug 1290420)
Backed out changeset 1d9dad3046ee (bug 1290420)
Backed out changeset a6eb531e1216 (bug 1290420)
Backed out changeset 755a32f27943 (bug 1290420)
2018-09-13 03:09:25 +03:00