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

15717 Коммитов

Автор SHA1 Сообщение Дата
Ting-Yu Lin da7650abaa Bug 1517297 - Fix nsIFrame::IsColumnSpanInMulticolSubtree(). r=emilio
After Bug 1507244 Part 2 landed, only block or inline frames can have
NS_FRAME_HAS_MULTI_COLUMN_ANCESTOR bit set. We need to fix
IsColumnSpanInMulticolSubtree() for other types of frames.

In multi-column formatting context, every frame having a
"column-span:all" style will be wrapped by a -moz-column-span-wrapper
frame. We can use this to check whether a non-inline and non-block frame
is in a multi-column subtree or not.

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

--HG--
extra : moz-landing-system : lando
2019-01-04 19:16:28 +00:00
Miko Mynttinen 91278a0c3b Bug 1512244 - Part 8: Use common path in more cases r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D13837

--HG--
extra : moz-landing-system : lando
2019-01-04 18:33:15 +00:00
Miko Mynttinen 234fe21fd4 Bug 1512244 - Part 7: Check the force SC flag first before calling IsStackingContext() r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D13836

--HG--
extra : moz-landing-system : lando
2019-01-04 18:32:46 +00:00
Miko Mynttinen 8f92194a8e Bug 1512244 - Part 6: Handle blend mode in BuildDisplayListForStackingContext() r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D13835

--HG--
extra : moz-landing-system : lando
2019-01-04 18:32:16 +00:00
Miko Mynttinen 0bb814cd60 Bug 1512244 - Part 5: Refactor OOF frame handling r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D13834

--HG--
extra : moz-landing-system : lando
2019-01-04 18:31:51 +00:00
Miko Mynttinen 9b75fc291f Bug 1512244 - Part 4: Avoid call to GetContent() r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D13833

--HG--
extra : moz-landing-system : lando
2019-01-04 18:31:21 +00:00
Miko Mynttinen fde2ba309c Bug 1512244 - Part 3: Split BuildDisplayListForChild fast-path and early exit to separate functions r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D13832

--HG--
extra : moz-landing-system : lando
2019-01-04 18:30:51 +00:00
Miko Mynttinen 1b049b748d Bug 1512244 - Part 2: Avoid style struct lookups in HasOpacity() and Extend3DContext() r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D13831

--HG--
extra : moz-landing-system : lando
2019-01-04 18:30:32 +00:00
Miko Mynttinen b77e6dc486 Bug 1512244 - Part 1: Cleanup DescendIntoChild r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D13830

--HG--
extra : moz-landing-system : lando
2019-01-04 18:30:27 +00:00
Emilio Cobos Álvarez d2ed260822 Bug 1517241 - Rename nsIDocument to mozilla::dom::Document. r=smaug
Summary: Really sorry for the size of the patch. It's mostly automatic
s/nsIDocument/Document/ but I had to fix up in a bunch of places manually to
add the right namespacing and such.

Overall it's not a very interesting patch I think.

nsDocument.cpp turns into Document.cpp, nsIDocument.h into Document.h and
nsIDocumentInlines.h into DocumentInlines.h.

I also changed a bunch of nsCOMPtr usage to RefPtr, but not all of it.

While fixing up some of the bits I also removed some unneeded OwnerDoc() null
checks and such, but I didn't do anything riskier than that.
2019-01-03 17:48:33 +01:00
Jason Kratzer 58d934b6fe Bug 1517033 - Add a crashtest. r=emilio 2019-01-02 17:18:44 +01:00
Jonathan Kew 7ea0466fdc Bug 1064172 - Prevent shaping across element boundaries when margin/border/padding is present, vertical-align is not 'baseline', or there is a bidi isolation boundary. r=jwatt 2018-12-05 00:27:47 -05:00
Cosmin Sabou fc229ed2c7 Merge mozilla-inbound to mozilla-central. a=merge 2018-12-30 11:31:03 +02:00
Hiroyuki Ikezoe c8743de655 Bug 1516368 - Unite ChangeOrigin::eRestore and eOther as ChangeOrigin::eMainThread. r=botond
Depends on D15340

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

--HG--
extra : moz-landing-system : lando
2018-12-30 02:45:47 +00:00
Hiroyuki Ikezoe 529616ef3a Bug 1516368 - Change SetResolutionAndScaleTo to take an enum instead of an nsAtoms*. r=botond
There is no reason to use nsAtoms*, it's error prone, i.e. the function
can take arbitrary nsAtoms*.

Depends on D15339

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

--HG--
extra : moz-landing-system : lando
2018-12-30 02:16:42 +00:00
Hiroyuki Ikezoe d95e67add7 Bug 1516368 - Align boolean member variables in ScrollFrameHelper. r=botond
Depends on D15336

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

--HG--
extra : moz-landing-system : lando
2018-12-30 02:16:12 +00:00
Hiroyuki Ikezoe e9f276f902 Bug 1516368 - Use mOuter->PresShell() directly. r=botond
Depends on D15335

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

--HG--
extra : moz-landing-system : lando
2018-12-30 02:16:00 +00:00
Emilio Cobos Álvarez f131713362 Bug 1516366 - Move base classes from nsDocument to nsIDocument. r=smaug
This is a big step in order to merge both.

Also allows to remove some very silly casts, though it causes us to add some
ToSupports around to deal with ambiguity of casts from nsIDocument to
nsISupports, and add a dummy nsISupports implementation that will go away later
in the series.

Differential Revision: https://phabricator.services.mozilla.com/D15352
2018-12-29 20:41:28 +01:00
Coroiu Cristina 2edc28a37f Backed out 2 changesets (bug 1064172) for Wr failures at /css/css-text/boundary-shaping/boundary-shaping-010.html
Backed out changeset 8126c43fb9e7 (bug 1064172)
Backed out changeset 107a4383fa0c (bug 1064172)
2018-12-29 16:43:23 +02:00
Jonathan Kew 9ce81d127e Bug 1064172 - Prevent shaping across element boundaries when margin/border/padding is present, vertical-align is not 'baseline', or there is a bidi isolation boundary. r=jwatt 2018-12-05 00:27:47 -05:00
Sylvestre Ledru cccdda3c2a Bug 1516555 - Reformat everything to the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2018-12-28 15:48:06 +00:00
Kartikaya Gupta 09dccca832 Bug 1496194 - Ensure the inner sticky rect stays inside the outer sticky rect. r=botond
Depends on D15136

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

--HG--
extra : moz-landing-system : lando
2018-12-21 22:37:28 +00:00
Jan Henning 7fb92b8c44 Bug 1478776 - Part 10: Add internal VisualViewport resize/scroll events. r=botond,nika
The VisualViewport events are all nice and shiny, but unfortunately not quite
what is needed for the session store.

Firstly, the spec wants the "scroll" event to be fired only when the *relative*
offset between visual and layout viewport changes. The session store however
records the absolute offset and as such is interested in when *that* changes.

Secondly, again as per the spec the events don't bubble, and with the default
DOMEventTargetHelper implementation they don't escape the VisualViewport during
capturing, either. This means that any event listener must be added directly on
the VisualViewport itself in order to capture any events.

This might have been intended because the events use the same names as the
normal "scroll"/"resize" events, and as such you cannot specify separate event
listeners for VisualViewport and non-VisualViewport "scroll" events if both
events end up being dispatched to the same element (you can only try to filter
after the fact by looking at the originalTarget of the event).

At the same time, the VisualViewport is attached to the inner Window, and so
each time you navigate, you also get a different VisualViewport object.
All of this might be totally fine from the perspective of a page script, because
in that case you won't care anyway about what happens when the current page goes
away.

From the session store perspective on the other hand (especially Fennec's non-
e10s session store design), this is rather unfortunate because we don't want to
have to keep registering event listeners
a) manually for each subframe
b) each time the page navigates

The event target chain problem could be solved by letting the scroll events
escape the VisualViewport during the capturing phase (which the spec doesn't say
anything about), but this would mean that any scroll listener attached to a
window/browser/... that uses capturing will now catch both layout and visual
viewport scroll events.

In some cases this might even be beneficial, but in others (e.g. bug 1498812
comment 21) I'd like to specifically decide which kind of scroll event to
capture. Having to look at event.originalTarget to distinguish the two kinds
might be defensible in test code, but in case this distinction would be needed
in production code as well, given the existence of a C++-based filtering helper
in nsSessionStoreUtils for another use case where (scroll) events need to be
filtered, JS-based scroll event filtering might be a bad idea.

Additionally, in any case this wouldn't solve the fundamental conflict between
the spec and the session store about *when* the "scroll" event should be fired
in the first place.

Hence I'd like to introduce a separate set of events with distinct event names,
which will be dispatched according to the requirements of our internal users
(i.e. currently the session store). To avoid potential web compatibility issues
down the road, for now these events will be dispatched only to event listeners
registered in the system group (allowing *all* Chrome event listeners cannot be
done because checking the Chrome status of each event target might be too
expensive for frequently dispatched events).

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

--HG--
extra : moz-landing-system : lando
2018-12-20 22:14:42 +00:00
Jan Henning 29e0e9331a Bug 1478776 - Part 7: Tune scroll events to only fire when the *relative* offset changes. r=botond
Internally, Gecko stores and updates the *absolute* offset between the visual
viewport and the page, however the spec demands that the scroll event be fired
whenever the *relative* offset between visual and layout viewport changes.

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

--HG--
extra : moz-landing-system : lando
2018-12-20 21:35:38 +00:00
Sylvestre Ledru ext:(%20and%20Karl%20Tomlinson%20%3Ckarlt%2B%40karlt.net%3E) c7b59395f2 Bug 1515556 comment fix-ups for the tree reformat (layout/) r=Ehsan,heycam
Differential Revision: https://phabricator.services.mozilla.com/D13125

--HG--
extra : moz-landing-system : lando
2018-12-21 03:07:05 +00:00
Ting-Yu Lin 69209e69b9 Bug 1507196 - Find first ColumnSetFrame in the child lists of ColumnSetWrapperFrame (and it's continuations). r=dbaron
ColumnSetFrame is always created by
nsCSSFrameConstructor::BeginBuildingColumns(). We search for it in the
possible child lists of ColumnSetWrapperFrame and its continuations.

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

--HG--
extra : moz-landing-system : lando
2018-12-20 00:07:59 +00:00
Hiroyuki Ikezoe 4c7d7e3d0d Bug 1514962 - Use GetPaddingRectRelativeToSelf() instead of `GetPaddingRect() - GetPosition()`. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D14833

--HG--
extra : moz-landing-system : lando
2018-12-19 17:14:45 +00:00
Margareta Eliza Balazs ca776030e5 Merge inbound to mozilla-central. a=merge 2018-12-19 17:46:11 +02:00
Brian Hackett 490b175062 Bug 1044074 - Don't run resize or scroll events while documents have events suppressed, r=smaug.
--HG--
extra : rebase_source : 47b98b215d3131fa3e6e88948fdd67aaf41524a9
2018-12-18 15:38:45 -10:00
Ting-Yu Lin 6cf6eb81f5 Bug 1515192 - Replace handcrafted FrameChildListIDs class with EnumSet. r=mats
The following APIs are changed.
1. Contains() needs to become contains(). (EnumSet's methods have lowercase names.)
2. Use list constructor rather than "|" like a plain enum.
3. Use operator+= instead of operator|=.

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

--HG--
extra : moz-landing-system : lando
2018-12-19 00:50:09 +00:00
Boris Chiou c35f47093e Bug 1322780 - Part 2: Support unprefixed min-content and max-content. r=mats,emilio
Support unprefixed min-content and max-content and treat the prefixed
version as aliases for
1. width, min-width, max-width if inline-axis is horizontal, and
2. height, min-height, max-height if inline-axis is vertical, and
3. inline-size, min-inline-size, max-inline-size, and
4. flex-basis.

Besides, update the test cases to use unprefixed max-content and
min-content.

Depends on D7535

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

--HG--
extra : moz-landing-system : lando
2018-12-18 18:47:37 +00:00
Ting-Yu Lin 122e7483c6 Bug 1507244 Part 1 - Add block formatting context bits for column-span in nsBlockFrame::Init(). r=dbaron
That's the common place where the bits are added.

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

--HG--
extra : moz-landing-system : lando
2018-12-17 18:41:01 +00:00
Hiroyuki Ikezoe f0fe14fe8d Bug 1514679 - Drop `aFirstPass` from ReflowScrolledFrame. r=botond
It hasn't been used since bug 300030.

Depends on D14715

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

--HG--
extra : moz-landing-system : lando
2018-12-17 21:54:41 +00:00
Hiroyuki Ikezoe d864a9f8f1 Bug 1514679 - Move vScrollbarActualWidth inside the if block where the value is used. r=botond
Depends on D14714

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

--HG--
extra : moz-landing-system : lando
2018-12-17 21:54:24 +00:00
Hiroyuki Ikezoe 0a0f595df0 Bug 1514679 - Use layers::ScrollDirection instead of boolean. r=botond
Depends on D14713

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

--HG--
extra : moz-landing-system : lando
2018-12-17 21:54:11 +00:00
Hiroyuki Ikezoe f46451eef5 Bug 1514679 - Drop `aVertical` from GetScrollbarMetrics. r=botond
The argument has never been used since the function the function was introduced
in bug 240276.

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

--HG--
extra : moz-landing-system : lando
2018-12-17 21:53:59 +00:00
Matt Woodrow 35037187d0 Bug 1493353 - Clip TextDrawTarget to the visible rect, and avoid emitting display items that are outside the clipped area. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D14367

--HG--
extra : moz-landing-system : lando
2018-12-14 22:30:08 +00:00
Ting-Yu Lin df8e9a54fd Bug 1506306 - Fix <table> having "column-span:all" style. r=bzbarsky
The main style of <table> is set on the inner TableFrame, not the outer
TableWrapperFrame. Thus, we fail to spot the table as a column-span kid
in nsCSSFrameConstructor::ConstructionBlock().

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

--HG--
extra : moz-landing-system : lando
2018-12-13 22:43:01 +00:00
Daniel Holbert fae5834855 Bug 1510369 part 3: Add about:config pref 'layout.dynamic-reflow-roots.enabled' (enabled by default). r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D13133

--HG--
extra : moz-landing-system : lando
2018-12-13 17:47:11 +00:00
Daniel Holbert 2a78d674bd Bug 1510369 part 2: Adjust logic in InitDynamicReflowRoot() to stop checking conditions once we've determined we can't be a dynamic reflow root. r=dbaron
This patch does not change behavior - it's purely an optimization to some
existing logic.

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

--HG--
extra : moz-landing-system : lando
2018-12-13 17:47:02 +00:00
Daniel Holbert 9b2496feff Bug 1510369 part 1: Make IsFixedPosContainingBlock assert that all fixed-pos CBs must also be abs-pos CBs. r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D13131

--HG--
extra : moz-landing-system : lando
2018-12-13 17:46:48 +00:00
Gerald Squelart c46d35ae2f Bug 1497414 - Make contain:layout+size frames reflow roots - r=dbaron,dholbert
Differential Revision: https://phabricator.services.mozilla.com/D8056

--HG--
extra : moz-landing-system : lando
2018-12-13 11:19:55 +00:00
Hiroyuki Ikezoe 96cc2a4e8b Bug 1513758 - Change HasOverflowRects to HasOverflowAreas in comments. r=emilio
It was renamed in bug 542595.

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

--HG--
extra : moz-landing-system : lando
2018-12-13 02:06:03 +00:00
Matt Woodrow 010a2c6c02 Bug 1501382 - Build display items within opacity:0 if we need them for APZ hit testing. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D14230

--HG--
extra : moz-landing-system : lando
2018-12-12 16:57:52 +00:00
Razvan Maries d177dac620 Merge mozilla-central to autoland. a=merge on a CLOSED TREE 2018-12-12 18:35:39 +02:00
Daniel Holbert 64353ce750 Bug 1513393 part 5: Add a utility function to set or update nsRect-pointer-valued frame properties. r=mattwoodrow
Depends on D14224

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

--HG--
extra : moz-landing-system : lando
2018-12-12 01:45:52 +00:00
Daniel Holbert 8312a3daab Bug 1513393 part 2: In "retrieve-or-initialize" dance for PaintedPresShellsProperty, use 'found' outparam and AddProperty. r=mattwoodrow
Previously we were using SetProperty, which does a redundant walk through the
property list to see whether the property already exists. This was unnecessary
because we only invoke it in the scenario when the property wasn't set.

So, we can use AddProperty to simply append and skip the redundant walk. And to
be extra-sure that the frame property is not present, this patch makes us use
the stricter 'found' outparam that our GetProperty() API provides (to
differentiate between no-result vs. a null value being intentionally stored
[unexpected but theoretically possible, & now checked for via MOZ_ASSERT].)

Depends on D14221

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

--HG--
extra : moz-landing-system : lando
2018-12-12 01:43:08 +00:00
Daniel Holbert e75a97141b Bug 1513393 part 1: Use NS_DECLARE_FRAME_PROPERTY_DELETABLE (not explicit dtor) to declare frame property PaintedPresShellsProperty. r=mattwoodrow
Previously we were providing a hand-coded destructor for this type, but this
was unnecessary, because the default one (invoked by 'delete') will do the same
thing.

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

--HG--
extra : moz-landing-system : lando
2018-12-12 01:40:17 +00:00
L. David Baron c91d619832 Bug 1159042 - p6. Use NS_FRAME_DYNAMIC_REFLOW_ROOT - r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D9492

--HG--
extra : moz-landing-system : lando
2018-12-11 20:34:09 +00:00
L. David Baron cabd72af5d Bug 1159042 - p5. Add NS_FRAME_DYNAMIC_REFLOW_ROOT on frames that we can dynamically make reflow roots - r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D9491

--HG--
extra : moz-landing-system : lando
2018-12-11 20:33:29 +00:00