Commit Graph

283 Commits

Author SHA1 Message Date
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
Boris Zbarsky
67340e531a Bug 1415176. Move getElementsByName from HTMLDocument to Document. r=mccr8
MozReview-Commit-ID: CRfrXC2x97S
2017-11-08 11:13:33 -05:00
Emilio Cobos Álvarez
b44d0385db Bug 1415013: Devirtualize PresShell::IsSafeToFlush. r=bz
MozReview-Commit-ID: BL5qcSFE6Hc
2017-11-08 11:14:59 +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
Cameron McCormack
fa762adc4e Bug 1390694 - Part 4: Restyle the document when document state dependencies change. r=emilio
MozReview-Commit-ID: WEWCvSUjxo
2017-11-01 21:20:39 +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
Emilio Cobos Álvarez
d24282b6dc Bug 1411754: Rename PresShell::DestroyFramesFor to DestroyFramesForAndRestyle. r=mats
I'm drive-by removing the comment about the frame tree state because I looked
into it, and the answer is: we properly restore it.

The gotcha is that we retain it too much, indeed, we retain it enough that it
can leak. See bug 1397239.

MozReview-Commit-ID: LP6bXkduEZ4
2017-10-25 23:12:25 +02:00
Emilio Cobos Álvarez
cf5ec03009 Bug 1411612: Kill nsINode::eCONTENT. r=bz
MozReview-Commit-ID: ESlOqlwhcHI
2017-10-25 17:19:11 +02:00
Sebastian Hengst
c9746e5403 merge mozilla-inbound. r=merge a=merge
MozReview-Commit-ID: B09kHrHK42C
2017-10-23 23:50:37 +02:00
Sebastian Hengst
e741311790 merge mozilla-central to mozilla-inbound. r=merge a=merge 2017-10-23 11:46:34 +02:00
Nicholas Nethercote
e7cd5cec20 Bug 1405541 (attempt 2) - Split AUTO_PROFILER_LABEL_DYNAMIC into three macros. r=mstange.
It's easy to mess up the scoping so that (a) the label is pushed and then
immediately popped, and/or (b) the string doesn't live long enough. It's also
easy to do a utf16-to-utf8 conversion unnecessarily when the profiler is
inactive. This patch splits that macro into three new ones that are harder to
mess up.

- AUTO_PROFILER_LABEL_DYNAMIC_CSTR: same as current.
- AUTO_PROFILER_LABEL_DYNAMIC_NSCSTRING: for nsCStrings.
- AUTO_PROFILER_LABEL_DYNAMIC_LOSSY_NSSTRING: for nsStrings.
2017-10-13 16:12:57 +11:00
Matt Woodrow
5475958284 Bug 1404181 - Part 22: Make sure we mark frames as modified any time they change position or style data and make sure we don't accidentally mark the root as being modified when we don't need to. r=mstange
MozReview-Commit-ID: J5ov5cwvvrE
2017-09-29 10:51:49 +13:00
Matt Woodrow
15aab29cca Bug 1404181 - Part 4: Add code to save and restore changes made to display items during FrameLayerBuilder so that we can use them again. r=mstange
MozReview-Commit-ID: 23WqS2Xv3Qx
2017-09-27 16:55:11 +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
angelsl
b48fe1965f Bug 1393116 - Only fire resize event if size actually changed r=dbaron
MozReview-Commit-ID: 1GssEpmUQNz
2017-09-09 00:49:43 +08:00
angelsl
3c025291f6 Bug 1393116 - Move double-reflow for sizing-to-content one level lower r=dbaron
After the fix to bug 1294442 and bug 1324499, ResizeReflow began to be called
twice for each DOM update in webext popups, and we also artificially re-set the
scroll outside of ResizeReflow to counter the DidDoReflow callback in
nsHTMLScrollFrame setting scrolltop to zero due to the first reflow, which is
done with unconstrained height.

Because of the scrollport being reset we get spurious DOM scroll events.
Replacing the scrollport also interrupts smooth scrolling.

Move the double-reflow down one level into PresShell, doing it before
DidDoReflow is called. The scrollport is no longer reset (causing a spurious
scroll event), and we don't need to replace it (interrupting smooth scrolling).

Also partially fixes bug 1396034.

MozReview-Commit-ID: HzYITyH4UeW
2017-09-09 00:38:54 +08:00
angelsl
ed06bfbb77 Bug 1393116 - In ResizeReflow, check width too, when refusing SizeToContent without root frame r=dbaron
MozReview-Commit-ID: 91D1cUB2JmW
2017-09-21 22:35:48 +08:00
Attila Craciun
9e796516c6 Backed out 4 changesets (bug 1390694) for failing crash test and in reftest/tests/layout/reftests/xul/mac-tab-toolbar.xul r=backout on a CLOSED TREE.
Backed out changeset b9cff3469bfd (bug 1390694)
Backed out changeset e13dd2a3651f (bug 1390694)
Backed out changeset 83ff9e245757 (bug 1390694)
Backed out changeset 484a2644318f (bug 1390694)
2017-10-20 14:49:52 +03:00
Cameron McCormack
a06ba5cdf2 Bug 1390694 - Part 4: Restyle the document when document state dependencies change. r=emilio
MozReview-Commit-ID: WEWCvSUjxo
2017-10-18 17:26:55 +08:00
Matt Woodrow
24ca46729c Bug 1406727. r=mstange,froydnj a=abillings 2017-10-17 15:19:44 +13:00
Kris Maglione
1895b2d74a Bug 1404198: Part 2e - Switch to NS_NewTimer* in layout. r=njn
MozReview-Commit-ID: 2WxyAXpJ3Fg
2017-10-15 23:13:31 -07:00
Stone Shih
2435899e46 Bug 1407839 - Various test permafails due to IsPointerEventEnabled(). f=RyanVM. r=smaug.
Push pointer event pref before testing test_assign_event_data.html and remove redundant assertions since the pushed pref will be restore after testing.

MozReview-Commit-ID: 22nTMLGoMFj
2017-10-12 09:25:10 +08:00
Sebastian Hengst
6adb214468 Backed out changeset 759a43ebc6bf (bug 1405541) for asserting in devtools/client/performance/test/browser_perf-console-record-03.js on Windows 7. r=backout 2017-10-11 13:15:26 +02:00
Nicholas Nethercote
7ea563fdf2 Bug 1405541 - Split AUTO_PROFILER_LABEL_DYNAMIC into three macros. r=mstange.
It's easy to mess up the scoping so that (a) the label is pushed and then
immediately popped, and/or (b) the string doesn't live long enough. It's also
easy to do a utf16-to-utf8 conversion unnecessarily when the profiler is
inactive.

This patch splits that macro into three new ones that are harder to mess up.

- AUTO_PROFILER_LABEL_DYNAMIC_CSTR: same as current.
- AUTO_PROFILER_LABEL_DYNAMIC_NSCSTRING: for nsCStrings.
- AUTO_PROFILER_LABEL_DYNAMIC_LOSSY_NSSTRING: for nsStrings.
2017-10-11 13:03:34 +02:00
Phil Ringnalda
9b852fb562 Backed out changeset 901a16fec9fc (bug 1405541) for Windows assertion failures
MozReview-Commit-ID: DRGWXU4Tbfk
2017-10-10 23:28:33 -07:00
Nicholas Nethercote
7085f47fb7 Bug 1405541 - Split AUTO_PROFILER_LABEL_DYNAMIC into three macros. r=mstange.
It's easy to mess up the scoping so that (a) the label is pushed and then
immediately popped, and/or (b) the string doesn't live long enough. It's also
easy to do a utf16-to-utf8 conversion unnecessarily when the profiler is
inactive.

This patch splits that macro into three new ones that are harder to mess up.

- AUTO_PROFILER_LABEL_DYNAMIC_CSTR: same as current.
- AUTO_PROFILER_LABEL_DYNAMIC_NSCSTRING: for nsCStrings.
- AUTO_PROFILER_LABEL_DYNAMIC_LOSSY_NSSTRING: for nsStrings.
2017-10-04 13:44:24 +11: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
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
Wes Kocher
1f45ffa62d Merge m-c to autoland, a=merge
MozReview-Commit-ID: 43R3aNMoMyN
2017-10-03 14:58:01 -07:00
Kartikaya Gupta
5142d6e6e5 Bug 1403915 - Remove some leftover painting callback goop. r=jrmuizel
MozReview-Commit-ID: BycK4Ug1sgm
2017-10-03 16:31:08 -04:00
Kartikaya Gupta
997b6a1f90 Bug 1403176 - Turn on empty transactions support in layers-free WebRenderLayerManager. r=mstange
By returning true from WebRenderLayerManager::EndEmptyTransaction, we
avoid doing a full paint in cases where the caller decides an empty
transaction would be sufficient. WebRenderLayerManager already rejects
attempts to set some forms of empty-transaction data (specifically
transform and scroll offset updates). This means that we will never get
a call to EndEmptyTransaction where the caller is expecting a transform
or scroll offset update to be sent over to the compositor. So if we have an
implementation of EndEmptyTransaction that ignores that data, it will not
break expectations.

There is still one piece of information that WebRenderLayerManager
doesn't reject in this manner, the APZ focus state. That is, if the
layout code sets a pending APZ focus state on the WRLM, followed by a
all to EndEmptyTransaction, it expects the focus state to get propagated
to the compositor. This patch makes sure that it does happen by using
the new API added in the previous patch.

MozReview-Commit-ID: 596UgW9ZWAF
2017-10-02 16:49:56 -04:00
Catalin Badea
fc6ab5f0ea Bug 651120 - Remove index argument from content removed/appended/inserted notifications. r=peterv 2017-10-03 11:09:08 +01:00
Arthur Edelstein
17ede5027d Bug 1404570 - Fix ubsan runtime error for nsEventStatus enum in PresShell.cpp. r=smaug 2017-09-29 21:57:00 -04:00
Stone Shih
7a4343786c Bug 1316251 Part3: Trigger pointer event implementation in EventStateManager. r=masayuki
To manage pointer event "state" in ESM.

MozReview-Commit-ID: HiAwvSmVTwx
2017-09-08 11:01:22 +08:00
Stone Shih
c4e445dbfc Bug 1316251 Part2: Revise pointer event implementation. r=masayuki
Revise the pointer event implementation, includes
- Revise the implementation to fetch preference values.
- Separate the logic to get the pointer capturing frame to PointerEventHandler.

MozReview-Commit-ID: 7pdAr0XFNT2
2017-09-06 17:28:28 +08:00
Stone Shih
4961fa9f1f Bug 1316251 Part1: Separate pointer event implementation from PresShell. r=masayuki
This patch moves pointer event related implementations to a new class.

MozReview-Commit-ID: FdBYl7vYC5I
2017-09-06 15:47:49 +08:00
Alexander Surkov
f069fc6d3e Bug 1321960 - rename nsIPresShell::mSuppressInterruptibleReflows to mWasLastReflowInterrupted to reflect better its purpose, r=dholbert 2017-09-26 16:25:12 -04:00
Stone Shih
9d98fb52c7 Bug 1344108 Part2: Only prevent drag when capturing the pointer events by content. r=smaug.
MozReview-Commit-ID: FENTYwMYdZr
2017-09-05 10:37:14 +08:00
Stone Shih
59fecec897 Bug 1344108 Part1: Fire lostpointercapture event immediately after pointerup/pointercancel. r=smaug.
MozReview-Commit-ID: DlSqgyWqQrV
2017-09-04 17:34:52 +08:00
Jonathan Watt
e3204e3c0c Bug 1401356, part 2 - Rename nsSVGEffects to SVGObserverUtils. r=longsonr 2017-08-30 15:58:31 +01:00
Jonathan Watt
7428c44f4d Bug 1401356, part 1 - Rename nsSVGEffects.h/.cpp to SVGObserverUtils.h/.cpp. r=longsonr 2017-08-30 14:14:46 +01:00
Bobby Holley
675c2164c3 Bug 1398980 - Remove warning about stylo not supporting document state changes. r=me
It's spammy and we already have a bug on file.

MozReview-Commit-ID: DB7KGuj0V3I
2017-09-15 12:22:27 -07:00
Miko Mynttinen
e4c7cf9eaa Bug 1399977 - Allocate some DisplayClipChains using nsDisplayListBuilder arena r=mattwoodrow
MozReview-Commit-ID: 9TB4S6G4rJR
2017-09-14 11:37:15 -04:00
Sebastian Hengst
fba940c63f merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 2iVDKexRjxu
2017-09-13 23:58:43 +02:00
Michael Layzell
c25b2d35d2 Bug 1398883 - Disable the DataTransfer::Protected state for Firefox 57, r=baku
This isn't a super essential feature, and is just a change to try to bring us in
line with chromium and the spec. As this has apparent web compat issues, and
DataTransfer is a hard to test area, this patch moves the changes behind a pref,
which we can come back to turning on after we ship 57.
2017-09-13 11:45:48 -04:00
Botond Ballo
4d2530f251 Bug 1367765 - Propagate the mHandledByAPZ flag when dispatching a touch event to the DOM. r=rhunt
This ensures that, if the touch event is over a scrollbar thumb and
makes it into nsSliderFrame::StartAPZDrag(), nsSliderFrame knows
that the event went through APZ and that therefore APZ will handle
the drag.

MozReview-Commit-ID: 92wAc1l9Pqz
2017-09-06 23:42:04 -04:00
Matt Woodrow
c1428d377d Bug 1397054 - Reset nsDisplayListBuilder state each frame so that we can use it multiple times. r=mstange
MozReview-Commit-ID: Gb7AnKoZaPu
2017-09-12 14:10:39 -04:00