Commit graph

1949 commits

Author SHA1 Message Date
Mats Palmgren
770a2228d1 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
1c2b8c222e 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
09ea8a23b0 Bug 1413833 - Cap the number of modified frames that we track to avoid the overhead getting too large. r=miko
--HG--
extra : rebase_source : cc26dd15613b9bbe6ca199d21817cbed16143dfe
2017-11-08 15:23:34 +13:00
Sebastian Hengst
1ce13be34a 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
51708fb131 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
05a25ccc70 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
9ceac26e5c 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

--HG--
extra : rebase_source : b04aedafa8432004a716f0cb4b4c5dc6c418dfda
2017-11-01 15:27:16 -04:00
Botond Ballo
ce03fa59d0 Bug 1382534 - Move ComputeOffsetToUserSpace() from nsDisplayList.cpp to nsLayoutUtils. r=mstange
MozReview-Commit-ID: 8w9lDViJuAj

--HG--
extra : rebase_source : 4d9c47dd4f217471e743973d2f641a67dae509fe
2017-08-23 17:26:25 -04:00
Miko Mynttinen
ef37c668b8 Bug 1413526 - Only create retained display list builder for content processes r=mattwoodrow
MozReview-Commit-ID: 3ipMgKgnhjH

--HG--
extra : rebase_source : 9e29bd3254c495289a1afdfc76df848a65c2b1fc
2017-11-01 16:46:04 +01:00
Ryan VanderMeulen
a090aa11cd Backed out changeset ee243422ed36 (bug 1413619) for test failures. 2017-11-01 17:29:10 -04:00
Emilio Cobos Álvarez
1506f63ca0 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

--HG--
extra : rebase_source : f0619815cb5e4858d1e0669463bcbbdc32f786c5
2017-11-01 18:56:13 +01:00
Xidorn Quan
b24625e376 Bug 1411532 part 1 - Add a pref for enabling stylo on chrome documents. r=bz
MozReview-Commit-ID: 7Zbh4Mf43xC

--HG--
extra : rebase_source : f9e4d0b6d1234cb8efcfbaaab2a349d2a082dd6e
2017-10-27 15:07:51 +11:00
Daniel Holbert
680815cd6e 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

--HG--
extra : rebase_source : 3356d4b80ff6213935192e87cdbc9103fec6084c
2017-10-27 10:33:53 -07:00
Kartikaya Gupta
bec5f23434 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

--HG--
extra : rebase_source : e4c3324cfa20c295db85d5c09df8d8d77865bb6a
2017-10-25 13:22:04 -04:00
Brad Werth
aefd6655a8 Bug 1411050 Part 1: Change nsDisplayListBuilder to mark hitests either for visibility or for pointer events. r=mattwoodrow
MozReview-Commit-ID: AbYcm2gwEES

--HG--
extra : rebase_source : 589ca29f84df183df86572a3f24476d6a9b7a4ad
2017-10-24 15:03:56 -07:00
Miko Mynttinen
ba6f6db0e3 Bug 1410876 - Use AUTO_PROFILER_TRACING instead of AutoProfilerTracing r=mattwoodrow
MozReview-Commit-ID: 55A1Aih6MzA

--HG--
extra : rebase_source : e052663df29eae4c97aedb401b5a15043c8c538a
2017-10-23 15:07:53 +02:00
Matt Woodrow ext:(%2C%20Miko%20Mynttinen%20%3Cmikokm%40gmail.com%3E%2C%20Timothy%20Nikkel%20%3Ctnikkel%40gmail.com%3E)
e97adfa0ce Bug 1404181 - Part 27: Add some retained-dl debugging tools. r=mstange
MozReview-Commit-ID: EQO1lAbUnpY

--HG--
extra : rebase_source : a11bfd8055bd83e9215211a4e48d43735d7010ba
2017-10-21 16:54:24 +13:00
Matt Woodrow ext:(%2C%20Miko%20Mynttinen%20%3Cmikokm%40gmail.com%3E%2C%20Timothy%20Nikkel%20%3Ctnikkel%40gmail.com%3E)
4dc75f2d67 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

--HG--
extra : rebase_source : f6b65a88dcd82b7828af371874bf3adde2af688f
2017-09-29 10:54:15 +13:00
Matt Woodrow ext:(%2C%20Miko%20Mynttinen%20%3Cmikokm%40gmail.com%3E%2C%20Timothy%20Nikkel%20%3Ctnikkel%40gmail.com%3E)
6b56c65932 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

--HG--
extra : rebase_source : d17c49b0602d750cc6d0f018f88745cd0ff4d0d2
2017-10-18 16:09:07 +13:00
Matt Woodrow ext:(%2C%20Miko%20Mynttinen%20%3Cmikokm%40gmail.com%3E%2C%20Timothy%20Nikkel%20%3Ctnikkel%40gmail.com%3E)
b8b861f1c7 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

--HG--
extra : rebase_source : 90584ee951e59d048fc5500c5cdb4372ee9daba1
2017-09-28 14:07:39 +13:00
Matt Woodrow ext:(%2C%20Miko%20Mynttinen%20%3Cmikokm%40gmail.com%3E%2C%20Timothy%20Nikkel%20%3Ctnikkel%40gmail.com%3E)
0488542fd6 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

--HG--
extra : rebase_source : f6d23e5500316471e2c22d79babc128961e0d1c6
2017-09-28 08:41:57 +13:00
Matt Woodrow ext:(%2C%20Miko%20Mynttinen%20%3Cmikokm%40gmail.com%3E%2C%20Timothy%20Nikkel%20%3Ctnikkel%40gmail.com%3E)
b1280ebc2c Bug 1404181 - Part 3: Track the current set of alive display items on nsIFrame. r=mstange
MozReview-Commit-ID: BgB1XBMpJ8t

--HG--
extra : rebase_source : 2528eeadfbd0edca54efde8f5d427abd8e29f16d
2017-09-27 15:35:29 +13:00
Matt Woodrow ext:(%2C%20Miko%20Mynttinen%20%3Cmikokm%40gmail.com%3E%2C%20Timothy%20Nikkel%20%3Ctnikkel%40gmail.com%3E)
31e9b3f8cd 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

--HG--
extra : rebase_source : e7bf5eacba44ce9cf77c55d623edef33a85f0492
2017-10-04 14:28:38 +13:00
Xidorn Quan
9808fc6a4b Bug 1408235 part 1 - Move stylo checking logic into a separate function. r=heycam
MozReview-Commit-ID: 9fOyC4QUSDA

--HG--
extra : source : 024a940349c480c20d967e4e1e4ddd03fd4f05b3
2017-10-21 11:02:34 +11:00
Timothy Nikkel
52d23be2f4 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
d8a662f0d2 Bug 1406727. r=mstange,froydnj a=abillings
--HG--
extra : rebase_source : a9932eb10d3ca451e1ce3a424cd48e957801f593
2017-10-17 15:19:44 +13:00
Kyle Machulis
1cc8b01353 Bug 1406224 - Remove nsIDOMHTMLImageElement; r=bz
MozReview-Commit-ID: GCATWRt6qMo

--HG--
extra : rebase_source : 29854f1374c6ad318da0b5b68be23507667c3be4
2017-10-06 13:27:23 -07:00
Nicholas Nethercote
706daca552 Bug 1406296 (part 1) - Remove the profiler's "displaylistdump" feature. r=mstange.
It's not useful.

--HG--
extra : rebase_source : b18244b6f1e28b29f1f71a4cca55781316e2cdc5
2017-10-06 17:33:30 +11:00
Sebastian Hengst
4a6ee59701 merge mozilla-central to mozilla-inbound. r=merge a=merge 2017-10-10 06:22:33 -03:00
Robert Longson
0e21ecb9e3 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
419e2e9b26 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

--HG--
extra : rebase_source : 354fe9871231f2a94f09bd2612c9d21ced4143e8
2017-10-09 12:07:04 +08:00
Jeremy Chen
db85457d66 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

--HG--
extra : rebase_source : ca81cd57980d98b9b73f18bb03a8035b161d23ef
2017-09-27 20:35:21 +08:00
Sebastian Hengst
aa78440a09 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: EE6DcCgHufi
2017-10-09 11:19:20 +02:00
Nicholas Nethercote
8a68e6fb83 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
cbc9fbb2bf 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.

--HG--
extra : rebase_source : 8e9acdaf777c642cd854570771a3f96da6d524d1
2017-10-03 19:48:10 +11:00
Nicholas Nethercote
d225f7151b 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

--HG--
rename : xpcom/ds/nsIAtom.h => xpcom/ds/nsAtom.h
extra : rebase_source : ac3e904a21b8b48e74534fff964f1623ee937c67
2017-10-03 09:05:19 +11:00
Xidorn Quan
e9accd246b 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

--HG--
extra : rebase_source : 95e33da698ce0cfc9a44de8bc0d63c3fa4634644
2017-10-06 15:45:33 +11:00
Wes Kocher
6dc323cfe9 Merge m-c to autoland, a=merge
MozReview-Commit-ID: Dxbv9TjDlDY
2017-10-04 16:47:41 -07:00
Emilio Cobos Álvarez
d46ace29b9 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
561b271b7d Bug 1405399 - Update due to API change in WR cset 75216e5. r=Gankro
MozReview-Commit-ID: GM8qA0MKaHv

--HG--
extra : rebase_source : cb8cddeab931e34ad5cc7392308f177970cdabde
2017-10-04 14:54:37 -04:00
Emilio Cobos Álvarez
660ab8f549 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
0ba56b9c7d 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
ae652b0b37 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
Timothy Nikkel
3ca5249135 Bug 1364295. Simplify some code now that we don't create displayports during display list building. r=mstange 2017-10-02 16:00:16 -05:00
Timothy Nikkel
b6711be167 Bug 1364295. Walk the frame tree looking for a scrollframe to add a displayport to, or one that already has a displayport before displaylist building. r=mstange
And stop creating displayports during display list building.

One thing we can investigate in the future is whether we should use the value of mHaveScrollableDisplayPort stored on the display list builder retained between paints. If it's true then we could potentially skip this pass. It would mean that if there are large changes to the page we wouldn't set a displayport. And we'd need to make sure the value is cleared when we load a new page.
2017-05-19 17:04:19 -05:00
David Major
c772f99f60 Bug 1403220 followup: Limit the PGO workaround to just where it's needed.
No rush merging this one around. Feel free to back this out if the crashes come back.

--HG--
extra : rebase_source : 5d850c0b739e8a47830a65da939241e495a1f7bf
2017-09-28 13:27:01 -04:00
Sebastian Hengst
e0a0f6988b Backed out changeset 45a57448087d (bug 1364295) for failing mochitest gfx/layers/apz/test/mochitest/test_bug982141.html on Android 4.3 API 16. r=backout 2017-09-28 10:06:14 +02:00
Sebastian Hengst
d8bd4d4aaa Backed out changeset e7be72224105 (bug 1364295) 2017-09-28 10:05:22 +02:00
Timothy Nikkel
214beb91cd Bug 1364295. Simplify some code now that we don't create displayports during display list building. r=mstange 2017-09-28 01:25:39 -05:00
Timothy Nikkel
1402ea7c2d Bug 1364295. Walk the frame tree looking for a scrollframe to add a displayport to, or one that already has a displayport before displaylist building. r=mstange
And stop creating displayports during display list building.

One thing we can investigate in the future is whether we should use the value of mHaveScrollableDisplayPort stored on the display list builder retained between paints. If it's true then we could potentially skip this pass. It would mean that if there are large changes to the page we wouldn't set a displayport. And we'd need to make sure the value is cleared when we load a new page.
2017-05-19 17:04:19 -05:00