Commit Graph

2307 Commits

Author SHA1 Message Date
Miko Mynttinen
209af6ddf3 Bug 1415485 - Make the pref layout.display-list.retain live again r=mattwoodrow
MozReview-Commit-ID: 6QFc4Sq3WiC
2017-11-09 16:10:21 +01:00
Kartikaya Gupta
7d327075f0 Bug 1416540 - Convert AnimationValue::GetStyleValue to return a float-based Size. r=mattwoodrow
This follows from the previous patch; these values feed into UpdateMinMaxScale
as well, which explicitly wants to use floats, so there's no point in creating
doubles. The source of this information is also a float-based matrix.

MozReview-Commit-ID: LPk4Xm9AaJJ
2017-11-12 18:37:33 -05:00
Kartikaya Gupta
460bf3e33e Bug 1416540 - Convert a bunch of scaling code to avoid unnecessary double conversion. r=mattwoodrow
The code in ComputeSuitableScaleForAnimation feeds its double-based
computation results into GetSuitableScale, which takes and returns
floats. Also the double-based computation that it's doing involves
calling UpdateMinMaxScale a bunch which explicitly uses the float
variant of std::min and std::max. And all of this is used from
ChooseScaleAndSetTransform which does other things like call a
"RoundToFloatPrecision" function, and casts the final values to
floats before setting the layer's prescale. So let's just use
floats all the way through.

MozReview-Commit-ID: BE3WC5hv89d
2017-11-12 18:37:33 -05:00
Chris Peterson
c5d0841695 Bug 1416164 - Replace NS_POSTCONDITION with MOZ_ASSERT. r=froydnj
MozReview-Commit-ID: 9K3Ksf36uxr
2017-11-04 22:48:48 -07:00
Kartikaya Gupta
d364c56c74 Bug 1416267 - Update gfxContext matrix functions to avoid flip-flopping between float and double matrices. r=jrmuizel
The core of this change is in gfxContext.*:
- change gfxContext::CurrentMatrix() and gfxContext::SetMatrix() to
  return and take a Matrix respectively, instead of converting to
  and from a gfxMatrix (which uses doubles). These functions therefore
  will now match the native representation of the transform in gfxContext.
- add two new functions CurrentMatrixDouble() and SetMatrixDouble() that
  do what the old CurrentMatrix() and SetMatrix() used to do, i.e.
  convert between the float matrix and the double matrix.

The rest of the change is just updating the call sites to avoid round-
tripping between floats and doubles where possible. Call sites that are
hard to fix are migrated to the new XXXDouble functions which preserves
the existing behaviour.

MozReview-Commit-ID: 5sbBpLUus3U
2017-11-10 21:14:09 -05:00
Miko Mynttinen
42197f6e06 Bug 1416065 - Ensure that override dirty rects are properly removed from frames r=mattwoodrow
MozReview-Commit-ID: 8uLgDFxl5MV
2017-11-10 01:32:29 +01:00
Kartikaya Gupta
e072cf113c Bug 1415225 - Stop setting the EventRegionsOverride flag on root layers. r=botond,mattwoodrow
As with the previous patch, instead of setting the override on the root
layer, we set the flag on the nsDisplayListBuilder before building the
display list, and the flag automatically forces all event regions
display items to use their dispatch-to-content region instead of any
other regions.

Both the WebRender and non-WebRender codepaths were setting the override
flag on their root layers and don't need to any more.

MozReview-Commit-ID: 1cz0ahqwkOm
2017-11-09 09:03:52 -05:00
Mats Palmgren
917be0a687 Bug 1414666 part 2 - A few formatting improvements after mass conversion of PresContext()->PresShell() to PresShell(). r=emilio
MozReview-Commit-ID: FoEnINS0Jbk
2017-11-09 03:00:48 +01:00
Mats Palmgren
2544eb586c Bug 1414666 part 1 - Add nsIFrame::PresShell() for convenient access to the shell. r=emilio
MozReview-Commit-ID: 8FPTPKWyVtY
2017-11-09 03:00:48 +01:00
Matt Woodrow
ef713ab44c Bug 1413833 - Cap the number of modified frames that we track to avoid the overhead getting too large. r=miko 2017-11-08 15:23:34 +13:00
Sebastian Hengst
d9b5415df0 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: DEsdO0kjfDL
2017-11-04 22:55:41 +01:00
Emilio Cobos Álvarez
39c51c1214 Bug 1413143: Make font inflation computation less lazy. r=bz,JanH
This makes it a bit more straight-forward to change the system font scale,
preserving the sync MediaFeatureChanged event.

This also avoids notifying media queries when the shell is not initialized.

In particular, the patch in bug 1404545 allows calling MediaFeatureValuesChanged
on a still-initializing pres-shell. This is nasty, and all this initialization
order is kind of a mess, but I'm not reworking it for now...

Also, this drops the invalidation of font-inflation when a doctype is added to
the document. GetViewportInfo() already relies on the doctype not changing, as
noted in a comment.

MozReview-Commit-ID: Knw7dM1B04Y
2017-11-04 12:08:38 +01:00
Emilio Cobos Álvarez
a289950f9f Bug 1413619: Fix insertion point computation when display: contents pseudos are involved. r=mats,bz
This is a significant rework of how do we compute the insertion point of a
node.

We handle pseudos in the same function instead of out of band, and also recurse
up when the parent has display: contents, which simplifies the code IMO.

MozReview-Commit-ID: 1rSfv1Tq5gO
2017-11-04 11:58:16 +01:00
Botond Ballo
d9199e96a5 Bug 1412272 - Have ComputePartialPrerenderArea() handle the cases where aDirtyRect is larger than aPrerenderSize. r=mstange
Rendering at least aDirtyRect is more important than staying under
aPrerenderSize, so that's what we do.

MozReview-Commit-ID: 8Ze1biaNzqX
2017-11-01 15:27:16 -04:00
Botond Ballo
c2c7f5309f Bug 1382534 - Move ComputeOffsetToUserSpace() from nsDisplayList.cpp to nsLayoutUtils. r=mstange
MozReview-Commit-ID: 8w9lDViJuAj
2017-08-23 17:26:25 -04:00
Miko Mynttinen
21373a7740 Bug 1413526 - Only create retained display list builder for content processes r=mattwoodrow
MozReview-Commit-ID: 3ipMgKgnhjH
2017-11-01 16:46:04 +01:00
Ryan VanderMeulen
6735413a2e Backed out changeset ee243422ed36 (bug 1413619) for test failures. 2017-11-01 17:29:10 -04:00
Emilio Cobos Álvarez
04fb712a4c Bug 1413619: Fix insertion point computation when display: contents pseudos are involved. r=mats
This actually fixes bug 1251799, and bug 1359656. Turns out the bug it was
hiding was this one! :)

MozReview-Commit-ID: KCSsu4T0PER
2017-11-01 18:56:13 +01:00
Xidorn Quan
12c05d02d9 Bug 1411532 part 1 - Add a pref for enabling stylo on chrome documents. r=bz
MozReview-Commit-ID: 7Zbh4Mf43xC
2017-10-27 15:07:51 +11:00
Daniel Holbert
8fea3c215f Bug 1412346 part 5: (automated patch) Switch a bunch of C++ files in layout to use our standard mode lines. r=jfkthame
This patch was generated automatically by the "modeline.py" script, available
here: https://github.com/amccreight/moz-source-tools/blob/master/modeline.py

For every file that is modified in this patch, the changes are as follows:
 (1) The patch changes the file to use the exact C++ mode lines from the
     Mozilla coding style guide, available here:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style#Mode_Line

 (2) The patch deletes any blank lines between the mode line & the MPL
     boilerplate comment.

 (3) If the file previously had the mode lines and MPL boilerplate in a
     single contiguous C++ comment, then the patch splits them into
     separate C++ comments, to match the boilerplate in the coding style.

MozReview-Commit-ID: EuRsDue63tK
2017-10-27 10:33:53 -07:00
Kartikaya Gupta
3233ea98b3 Bug 1411238 - Make APZ test logging work in layers-free WR mode. r=botond
Most of this change is just fiddling with function signatures so that they take
a LayerManager* instead of a Layer* (or in some cases, both). This allows
the WebRender codepaths to pass a WebRenderLayerManager* instead of having to
produce a Layer* which it doesn't have.

MozReview-Commit-ID: Fb0C8OUVDin
2017-10-25 13:22:04 -04:00
Brad Werth
fcc90697aa Bug 1411050 Part 1: Change nsDisplayListBuilder to mark hitests either for visibility or for pointer events. r=mattwoodrow
MozReview-Commit-ID: AbYcm2gwEES
2017-10-24 15:03:56 -07:00
Miko Mynttinen
4fb8b9547e Bug 1410876 - Use AUTO_PROFILER_TRACING instead of AutoProfilerTracing r=mattwoodrow
MozReview-Commit-ID: 55A1Aih6MzA
2017-10-23 15:07:53 +02:00
Matt Woodrow
bace862100 Bug 1404181 - Part 27: Add some retained-dl debugging tools. r=mstange
MozReview-Commit-ID: EQO1lAbUnpY
2017-10-21 16:54:24 +13:00
Matt Woodrow
71282ed1ae Bug 1404181 - Part 23: Only rebuild items within a displayport when the displayport changes, rather than rebuilding the whole document. r=mstange
MozReview-Commit-ID: IYEPCKSvtBY
2017-09-29 10:54:15 +13:00
Matt Woodrow
163895d5c2 Bug 1404181 - Part 21: Add RetainedDisplayListBuilder with the code for doing partial display list builds, and merging it into an existing display list. r=mstange
MozReview-Commit-ID: 8pZG5xq3nSB
2017-10-18 16:09:07 +13:00
Matt Woodrow
68631294b4 Bug 1404181 - Part 14: Add a bunch of new helpers to display list builder and display item for retaining and reusing items. r=mstange
MozReview-Commit-ID: AyiVFa6kofu
2017-09-28 14:07:39 +13:00
Matt Woodrow
6883f3286f Bug 1404181 - Part 11: Factor out PresShell paint count code se we can still call it without needing to build the display items. r=mstange
MozReview-Commit-ID: Ai4P92dd1zR
2017-09-28 08:41:57 +13:00
Matt Woodrow
97bacba1d6 Bug 1404181 - Part 3: Track the current set of alive display items on nsIFrame. r=mstange
MozReview-Commit-ID: BgB1XBMpJ8t
2017-09-27 15:35:29 +13:00
Matt Woodrow
90fe1ff121 Bug 1404181 - Part 2: Track a 'visible' rect for display list building as well as the 'dirty' rect, so that we can do partial building by specifying a smaller 'dirty' rect. r=mstange
MozReview-Commit-ID: 7DUV9dl4zb1
2017-10-04 14:28:38 +13:00
Xidorn Quan
af32e35d5a Bug 1408235 part 1 - Move stylo checking logic into a separate function. r=heycam
MozReview-Commit-ID: 9fOyC4QUSDA
2017-10-21 11:02:34 +11:00
Timothy Nikkel
be26d3bac9 Bug 1409215. Don't change scroll thumbs into AGRs during display list building. r=mstange
Find the scrollframe for a scrollbar thumb and use it to determine if the scrollthumb is an AGR, instead of recording if the associated scrollframe is active on a frame property during display list building.
2017-05-19 17:04:19 -05:00
Matt Woodrow
24ca46729c Bug 1406727. r=mstange,froydnj a=abillings 2017-10-17 15:19:44 +13:00
Kyle Machulis
d02dd47205 Bug 1406224 - Remove nsIDOMHTMLImageElement; r=bz
MozReview-Commit-ID: GCATWRt6qMo
2017-10-06 13:27:23 -07:00
Nicholas Nethercote
9a7b0ad887 Bug 1406296 (part 1) - Remove the profiler's "displaylistdump" feature. r=mstange.
It's not useful.
2017-10-06 17:33:30 +11:00
Sebastian Hengst
ceb5c92405 merge mozilla-central to mozilla-inbound. r=merge a=merge 2017-10-10 06:22:33 -03:00
Robert Longson
965727a0d2 Bug 1398806 - GetCtx and GetNearestViewport should return the nearest svg or symbol element which is now an SVGViewportElement rather than only returning the nearest svg element because a symbol establishes a viewport too. r=dholbert 2017-10-10 07:58:34 +01:00
Jeremy Chen
5225114a2c Bug 1403077 - add two test-only helper functions to access the stylo blocklist. r=heycam
In the current blocklist implementation, we read the stylo blocklist from the user
preferences very early and only once, even earlier than the test preferences
updating happens.

So, to be able to test the functionality of the stylo blocklist, we add these two
nsIDOMWindowUtils APIs to be able to add/remove a mock domain to the existing
blocklist.

MozReview-Commit-ID: K48ejLBcNbn
2017-10-09 12:07:04 +08:00
Jeremy Chen
c81f7959ff Bug 1403077 - implement the stylo blocklist mechanism. r=heycam
In this patch, we read the stylo blocklist into nsLayoutUtils's global static
variable during nsLayoutUtils::Initialize(). So, we can decide if we should
fallback to use Gecko backend while updating style backend for a document.

We add "layout.css.stylo-blocklist.blocked_domains" and
"layout.css.stylo-blocklist.enabled" to ContentPrefs.cpp because they are read
very early (during nsLayoutUtils::Initialize).

MozReview-Commit-ID: 8c4n6m9dYD8
2017-09-27 20:35:21 +08:00
Sebastian Hengst
7d14f8623a merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: EE6DcCgHufi
2017-10-09 11:19:20 +02:00
Nicholas Nethercote
a35e82f193 Bug 1403868 (part 4) - Reduce tools/profiler/public/*.h to almost nothing in non-MOZ_GECKO_PROFILER builds. r=mstange.
Currently the Gecko Profiler defines a moderate amount of stuff when
MOZ_GECKO_PROFILER is undefined. It also #includes various headers, including
JS ones. This is making it difficult to separate Gecko's media stack for
inclusion in Servo.

This patch greatly simplifies how things are exposed. The starting point is:

- GeckoProfiler.h can be #included unconditionally;

- everything else from the profiler must be guarded by MOZ_GECKO_PROFILER.

In practice this introduces way too many #ifdefs, so the patch loosens it by
adding no-op macros for a number of the most common operations.

The net result is that #ifdefs and macros are used a bit more, but almost
nothing is exposed in non-MOZ_GECKO_PROFILER builds (including
ProfilerMarkerPayload.h and GeckoProfiler.h), and understanding what is exposed
is much simpler than before.

Note also that in BHR, ThreadStackHelper is now entirely absent in
non-MOZ_GECKO_PROFILER builds.
2017-10-04 09:11:18 +11:00
Nicholas Nethercote
007d5e7529 Bug 1403868 (part 2) - Tweak profiler_tracing(). r=mstange.
This patch does the following.

- Makes the TracingKind argument non-optional.

- Puts the UniqueProfilerBacktrace argument last in the second variant.

- Reorders AutoProfilerTracing to match the order of the profiler_tracing()
  declarations.
2017-10-03 19:48:10 +11:00
Nicholas Nethercote
7dbfdaf890 Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP
2017-10-03 09:05:19 +11:00
Xidorn Quan
701ff1defa Bug 1406277 - Completely remove xml:base for style attribute. r=bz
This commit removes:
* layout.css.style-attr-with-xml-base.disabled pref
* deprecation XMLBaseAttributeForStyleAttr
* code path for getting base URI of style attr considering xml:base

MozReview-Commit-ID: 1w96eqhHPab
2017-10-06 15:45:33 +11:00
Wes Kocher
06981075f7 Merge m-c to autoland, a=merge
MozReview-Commit-ID: Dxbv9TjDlDY
2017-10-04 16:47:41 -07:00
Emilio Cobos Álvarez
0891287c56 Bug 1405605: Bypass the IsReallyFixedPos assertion when the style may have changed due to first-line reparenting. r=bz
MozReview-Commit-ID: HS0670UMqKK
2017-10-04 17:53:13 +02:00
Kartikaya Gupta
d42b152e67 Bug 1405399 - Update due to API change in WR cset 75216e5. r=Gankro
MozReview-Commit-ID: GM8qA0MKaHv
2017-10-04 14:54:37 -04:00
Emilio Cobos Álvarez
709ea27b56 Bug 1404324: Use the placeholder state to remove out-of-flows that aren't real descendants of the destruction root. r=bz
Using the style of the frame can mess things up when we reparent them due to
::first-line before removing them.

MozReview-Commit-ID: 3Dt0wF2XRAH
2017-10-04 10:49:41 +02:00
Sebastian Hengst
bc77eea8a5 Backed out changeset cb247c8a0fe5 (bug 1404324) for landing with wrong commit message. r=backout 2017-10-04 10:48:14 +02:00
Emilio Cobos Álvarez
dcb5efedb7 Bug 1404324: Always remove out of flows from the placeholder frame, using its info. r=bz
MozReview-Commit-ID: 3Dt0wF2XRAH
2017-10-04 10:38:34 +02:00