Commit Graph

811 Commits

Author SHA1 Message Date
Hiroyuki Ikezoe
c78071d24e Bug 1562757 - Call ScrollToVisual for the pres shell of the given scrollable frame in ScrollToShowRect. r=botond
We should also check IsRootContentDocumentCrossProcess instead of
IsRootContentDocument there, it will be fixed in bug 1562505.

The test case in this commit is almost copied-n-pasted from
helper_scroll_into_view_bug1516056.html.

Differential Revision: https://phabricator.services.mozilla.com/D36556
2019-07-04 08:48:47 +00:00
Gerald Squelart
0088545108 Bug 1474771 - Propagate NS_FRAME_IS_DIRTY to descendants when marking as dirty rather than during reflow. r=dholbert
This simplifies dealing with frames that are pushed/pulled between
continuations during reflow, allows us to avoid the complexity of the
fix to 1459937, and hopefully fixes some of the regressions from bug
1308876.

This disables the changes from bug 1459937 by commenting out a single
line in ReparentFrameInternal in nsBlockFrame.cpp, but all the added
code will be removed in the following patch.

Co-authored-by: Gerald Squelart <gsquelart@mozilla.com>
Co-authored-by: L. David Baron <dbaron@dbaron.org>

Depends on D36423

Differential Revision: https://phabricator.services.mozilla.com/D36424
2019-07-01 21:56:43 +00:00
Mirko Brodesser
e8543e1b1b Bug 1562876: rename Selection::AddRange to Selection::AddRangeAndSelectFramesAndNotifyListeners. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D36602
2019-07-03 13:26:13 +02:00
Cosmin Sabou
ae7abc18f4 Merge mozilla-central to mozilla-inbound. 2019-06-28 19:16:36 +03:00
Masayuki Nakano
0af2378d06 Bug 1444847 - part 3: Create RangeUtils to place public static methods of nsRange r=smaug
Some `nsRange` static methods are useful in `StaticRange` and some of them
are used in a lot of places but not related to `nsRange` directly.  This
patch moves them into new static method only class, `mozilla::RangeUtils`.

Differential Revision: https://phabricator.services.mozilla.com/D35142
2019-06-28 07:48:07 +00:00
Coroiu Cristina
2f9dc56b76 Merge autoland to mozilla-central a=merge 2019-06-27 12:33:50 +03:00
Csoregi Natalia
09ee0c6189 Backed out 4 changesets (bug 1488953) for causing Bug 1559690. a=backout
Backed out changeset 6b9cfebe8076 (bug 1488953)
Backed out changeset 6759badeec0e (bug 1488953)
Backed out changeset 5555e12078d3 (bug 1488953)
Backed out changeset 2a638724408b (bug 1488953)
2019-06-27 01:03:50 +03:00
Hiroyuki Ikezoe
f9bc9ef982 Bug 1560237 - Introduce nsIScrollableFrame::IsSmoothScroll. r=botond
This is pretty much the same as ScrollStyles::IsSmoothScroll right now,
but in the next commit, we will no longer propagate scroll-behavior on <body> to
the root element so that nsIScrollableFrame::IsSmoothScroll will be changed
to reflect it.

Differential Revision: https://phabricator.services.mozilla.com/D35737
2019-06-26 20:59:01 +00:00
Nicholas Nethercote
5559444385 Bug 1560837 - Make APZ static prefs follow the naming convention. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D35633
2019-06-24 13:57:06 +10:00
Kartikaya Gupta
220cc45f86 Bug 1560587 - Remove incorrect event redirection. r=tnikkel
In this codepath, the parent process may be sending an event to a particular
content process. The last-saved mouse target might be stale, and using that
to redirect the event can result in the event getting sent to the wront content
process. Deleting this erroneous change restores correct behaviour.

Differential Revision: https://phabricator.services.mozilla.com/D35697
2019-06-24 20:10:40 +00:00
Nicholas Nethercote
25e6095b36 Bug 1561825 - Make layout.* static prefs follow the naming convention. r=KrisWright
Differential Revision: https://phabricator.services.mozilla.com/D36160
2019-06-27 16:28:25 +10:00
Bas Schouten
dddb7bfc70 Bug 1553254 - Part 2: Add some first performance probes to our codebase for some basic, easy to measure things. r=brennie
Differential Revision: https://phabricator.services.mozilla.com/D32877
2019-05-28 20:58:06 +02:00
Peter Van der Beken
6c1f25a923 Bug 1490044 - Move all prefs used in WebIDL to StaticPrefs. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D33507
2019-06-13 09:00:59 +00:00
Emilio Cobos Álvarez
b2275b1613 Bug 1488953 - Use a script runner for scrollport events. r=mats
This is consistent with the scroll area events too, and allows us to
remove the WillPaintObserver stuff.

Differential Revision: https://phabricator.services.mozilla.com/D5271
2019-06-13 02:30:25 +00:00
Olli Pettay
93cd3e954f Bug 1556769, ensure UnsuppressAndInvalidate is called even if paint suppression isn't used, r=emilio
UnsuppressAndInvalidate updates focus state among others, so it needs to be called even if paint suppression itself
isn't used. An example of a such case is when PresShell is created after Document's readyState is already Document::READYSTATE_COMPLETE.

Differential Revision: https://phabricator.services.mozilla.com/D34426
2019-06-11 11:03:38 +00:00
Andreea Pavel
343359af44 Backed out 3 changesets (bug 1488953) for failing bc at browser_windowopen.js on a CLOSED TREE
Backed out changeset 8646ea969443 (bug 1488953)
Backed out changeset 519acd8e145f (bug 1488953)
Backed out changeset 3a5cbbb9bc48 (bug 1488953)
2019-06-10 11:48:07 +03:00
Emilio Cobos Álvarez
c3615b0472 Bug 1488953 - Use a script runner for scrollport events. r=mats
This is consistent with the scroll area events too, and allows us to
remove the WillPaintObserver stuff.

Differential Revision: https://phabricator.services.mozilla.com/D5271
2019-06-10 03:06:25 +00:00
Emilio Cobos Álvarez
36577351db Bug 1487216 - Measure memory usage of RDL. r=mattwoodrow,miko
For now I added everything to the same bucket, but I wrote this so it should be
easy to add more buckets as needed (either to mArenaSizes, or more specific ones
like the style system has). But this is probably enough for now.

Differential Revision: https://phabricator.services.mozilla.com/D34126
2019-06-09 22:58:24 +00:00
Matt Woodrow
4bd7fd5f61 Bug 1554832 - Only force a default background color for the cross-process root content document. r=rhunt
Depends on D34099

Differential Revision: https://phabricator.services.mozilla.com/D34100
2019-06-07 15:24:59 +00:00
Matt Woodrow
34a2af8bfc Bug 1554832 - Check only for in process content documents in AssumeAllFramesVisible. r=tnikkel
Depends on D34098

Differential Revision: https://phabricator.services.mozilla.com/D34099
2019-06-07 06:59:02 +00:00
Miko Mynttinen
81adc18b91 Bug 1490404 - Part 1: Be more consistent with display list and display list builder pointers and references r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D33679
2019-06-06 17:54:13 +00:00
shindli
e799adf87f Merge inbound to mozilla-central. a=merge 2019-06-06 12:57:52 +03:00
Masayuki Nakano
a59dba2251 Bug 1555645 - Make PresShell::EventHandler::MaybeFlushThrottledStyles() stop handling it when the PresShell does not have root PreShell nor Document r=smaug
The crash reports just tell us that the crash occur due to referring around
address 0 in `PresShell::EventHandler::MaybeFlushThrottledStyles()`.
Therefore, I'm not sure which is the actual reason of the crashes though,
this patch makes it null-check root `PresShell` and its `Document` before
accessing the latter.

Differential Revision: https://phabricator.services.mozilla.com/D33735
2019-06-05 09:28:53 +00:00
Jonathan Watt
d17e754362 Bug 1557104. Merge nsIPageSequenceFrame and nsSimplePageSequenceFrame. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D33817
2019-05-22 13:01:33 +01:00
Edgar Chen
7e33e89089 Bug 1543439 - Part 2: Move is-user-interaction checks out of PresShell::EventHandler::PrepareToDispatchEvent; r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D32019
2019-05-27 10:14:06 +00:00
Edgar Chen
91b534b401 Bug 1543439 - Part 1: Move special handling for MouseDown/Up event out of AutoHandlingUserInputStatePusher; r=masayuki
PresShell::EventHandler::HandleEventWithCurrentEventInfo is the only possible
place will do such handling; other places pass either a nullptr or a
non-MouseDown/Up event.

Differential Revision: https://phabricator.services.mozilla.com/D32431
2019-05-29 07:48:16 +00:00
Botond Ballo
300fd739ad Bug 1554794 - Add PresShell::UsesMobileViewportSizing() and use it in place of GetIsViewportOverridden() where appropriate. r=kats,hiro
With desktop zooming, we need to separate the concepts of "may have a distinct
visual viewport" from "has mobile viewport sizing logic applied to it".

This can be thought of as completing the disentanglement of zooming from meta
viewport support started in bug 1459260.

Differential Revision: https://phabricator.services.mozilla.com/D32770
2019-05-28 13:31:59 +00:00
Jean-Yves Avenard
78876bce84 Bug 1550422 - P15. Move Skip and Once gfxPrefs to StaticPrefs. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D31259
2019-05-26 14:30:14 +00:00
Jean-Yves Avenard
b66b1a5a50 Bug 1550422 - P12. Convert Live gfxPrefs into StaticPrefs. r=jrmuizel
gfxPrefs Live preferences are almost identical to StaticPrefs.

We leave aside for now those that set a custom change callback as this feature isn't yet supported in StaticPrefs.

Differential Revision: https://phabricator.services.mozilla.com/D31256
2019-05-26 14:29:42 +00:00
Gurzau Raul
938877e121 Backed out 31 changesets (bug 1552643, bug 1550422) for xpcshell crash on a CLOSED TREE.
Backed out changeset e30c1aa75529 (bug 1552643)
Backed out changeset caadcd7e02d3 (bug 1552643)
Backed out changeset aa7086ab09be (bug 1552643)
Backed out changeset 0b4029671710 (bug 1550422)
Backed out changeset a16295296035 (bug 1550422)
Backed out changeset 3b70307c0db5 (bug 1550422)
Backed out changeset 69df7818d4a3 (bug 1550422)
Backed out changeset d98dfc565927 (bug 1550422)
Backed out changeset 6f0997976944 (bug 1550422)
Backed out changeset 0edd264464c2 (bug 1550422)
Backed out changeset 9ea6da7a74ec (bug 1550422)
Backed out changeset f855f9309c8b (bug 1550422)
Backed out changeset 1033546224a7 (bug 1550422)
Backed out changeset ade7384c6186 (bug 1550422)
Backed out changeset 75b04de7e99c (bug 1550422)
Backed out changeset 91c3acdb2454 (bug 1550422)
Backed out changeset 77d2f80257d1 (bug 1550422)
Backed out changeset e0cd10d35327 (bug 1550422)
Backed out changeset 097091082423 (bug 1550422)
Backed out changeset 2f328853c1ab (bug 1550422)
Backed out changeset f92f2cc29cb1 (bug 1550422)
Backed out changeset 6dc82f88333d (bug 1550422)
Backed out changeset c20f66494d69 (bug 1550422)
Backed out changeset 2ba22cddeb6f (bug 1550422)
Backed out changeset 3aa72f89e295 (bug 1550422)
Backed out changeset ab4c4e806977 (bug 1550422)
Backed out changeset 72e5de040dda (bug 1550422)
Backed out changeset 7d3c2d486706 (bug 1550422)
Backed out changeset 132e0b8d8468 (bug 1550422)
Backed out changeset 54c85ac75dd0 (bug 1550422)
Backed out changeset d7ba4a18dd54 (bug 1550422)
2019-05-25 09:07:49 +03:00
Jean-Yves Avenard
39ec5f8bd1 Bug 1550422 - P15. Move Skip and Once gfxPrefs to StaticPrefs. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D31259
2019-05-24 11:32:54 +00:00
Jean-Yves Avenard
3816a05854 Bug 1550422 - P12. Convert Live gfxPrefs into StaticPrefs. r=jrmuizel
gfxPrefs Live preferences are almost identical to StaticPrefs.

We leave aside for now those that set a custom change callback as this feature isn't yet supported in StaticPrefs.

Differential Revision: https://phabricator.services.mozilla.com/D31256
2019-05-25 00:03:32 +00:00
Edgar Chen
ea9872bc1b Bug 1554122 - Rename nsAutoPopupStatePusher* to AutoPopupStatePusher; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D32457
2019-05-24 12:42:29 +00:00
Dorel Luca
06bf3da922 Backed out 2 changesets (bug 1553772) for Geckoview failures in org.mozilla.geckoview.test.SelectionActionDelegateTest.collapseToStart[#designmode]
Backed out changeset 7286e18fbc17 (bug 1553772)
Backed out changeset 58d40da71355 (bug 1553772)
2019-05-23 18:30:54 +03:00
Emilio Cobos Álvarez
13829d63d9 Bug 1553772 - Bug 1549812 - Try to assert a bit harder about stuff not flushing under our nose. r=TYLin,mats
I think these should hold, everything that runs under them should just schedule
other stuff to some later date:

 * Synth mouse events -> scheduled as refresh driver observers.
 * Scroll events -> Scheduled as well.
 * Caret state change events -> Also scheduled after last patch.
 * IME and accessibility stuff -> I don't think they can reenter layout.

We can always revert this if it causes troubles, plus it shouldn't crash on
release so should be fine.

Differential Revision: https://phabricator.services.mozilla.com/D31090
2019-05-23 09:45:56 +00:00
Emilio Cobos Álvarez
47edb1c46d Bug 1549812 - ScrollFrameRectIntoView should handle the frame going away. r=mats
ScrollToShowRect already considers that possibility, so not doing it on the
caller is a bug.

Ideally scroll observers shouldn't be able to run script, more to that in a
second.

Differential Revision: https://phabricator.services.mozilla.com/D31088
2019-05-17 16:33:26 +00:00
Gurzau Raul
8d7b43d90a Backed out 28 changesets (bug 1550422) for marionette AssertionError and failing browser_policy_hardware_acceleration.js on a CLOSED TREE.
Backed out changeset 5dd10a365ba9 (bug 1550422)
Backed out changeset 529f5be01ab9 (bug 1550422)
Backed out changeset b6861d3badf8 (bug 1550422)
Backed out changeset 059cff1a3dde (bug 1550422)
Backed out changeset 6ada1116b241 (bug 1550422)
Backed out changeset ca67e8e45262 (bug 1550422)
Backed out changeset a1961a51ae44 (bug 1550422)
Backed out changeset 1c90b9cb3ad4 (bug 1550422)
Backed out changeset 285fa46e4f26 (bug 1550422)
Backed out changeset e2938a444234 (bug 1550422)
Backed out changeset 7a930fc51125 (bug 1550422)
Backed out changeset 898ed02804fe (bug 1550422)
Backed out changeset e1b7abc99ae9 (bug 1550422)
Backed out changeset f781d415cef6 (bug 1550422)
Backed out changeset 2fef10a7cce5 (bug 1550422)
Backed out changeset ea64b4d8d4ff (bug 1550422)
Backed out changeset 86a8ba1b755c (bug 1550422)
Backed out changeset 9c0c9e80f309 (bug 1550422)
Backed out changeset 10c153ddbaea (bug 1550422)
Backed out changeset 60fe635ec2c9 (bug 1550422)
Backed out changeset a38796266b28 (bug 1550422)
Backed out changeset 2db647dcdf1c (bug 1550422)
Backed out changeset 952ddac02972 (bug 1550422)
Backed out changeset ba46b53643ec (bug 1550422)
Backed out changeset ca47ef6c59f7 (bug 1550422)
Backed out changeset f45f471a1a40 (bug 1550422)
Backed out changeset 371b4da5b771 (bug 1550422)
Backed out changeset 02fc78890032 (bug 1550422)
2019-05-23 05:59:44 +03:00
Jean-Yves Avenard
f2a1e58ceb Bug 1550422 - P15. Move Skip and Once gfxPrefs to StaticPrefs. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D31259
2019-05-22 22:27:37 +00:00
Jean-Yves Avenard
935940dd3f Bug 1550422 - P12. Convert Live gfxPrefs into StaticPrefs. r=jrmuizel
gfxPrefs Live preferences are almost identical to StaticPrefs.

We leave aside for now those that set a custom change callback as this feature isn't yet supported in StaticPrefs.

Differential Revision: https://phabricator.services.mozilla.com/D31256
2019-05-22 12:43:42 +00:00
Miko Mynttinen
66027a07dc Bug 1529698 - Part 4: Add nsDisplayContainer r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D30840
2019-05-18 20:11:42 +00:00
Brindusan Cristian
0e81c42a31 Backed out 3 changesets (bug 1549812) for rc4 failures at testAccessibleCarets.js. CLOSED TREE
Backed out changeset 00afc705d4ee (bug 1549812)
Backed out changeset cbc5c04bd3e4 (bug 1549812)
Backed out changeset ac4a070f1105 (bug 1549812)
2019-05-17 19:31:09 +03:00
Emilio Cobos Álvarez
6d68e0817f Bug 1549812 - Try to assert a bit harder about stuff not flushing under our nose. r=TYLin,mats
I think these should hold, everything that runs under them should just schedule
other stuff to some later date:

 * Synth mouse events -> scheduled as refresh driver observers.
 * Scroll events -> Scheduled as well.
 * Caret state change events -> Also scheduled after last patch.
 * IME and accessibility stuff -> I don't think they can reenter layout.

We can always revert this if it causes troubles, plus it shouldn't crash on
release so should be fine.

Differential Revision: https://phabricator.services.mozilla.com/D31090
2019-05-17 13:22:39 +00:00
Emilio Cobos Álvarez
b21b455197 Bug 1549812 - ScrollFrameRectIntoView should handle the frame going away. r=mats
ScrollToShowRect already considers that possibility, so not doing it on the
caller is a bug.

Ideally scroll observers shouldn't be able to run script, more to that in a
second.

Differential Revision: https://phabricator.services.mozilla.com/D31088
2019-05-14 16:03:18 +00:00
Hiroyuki Ikezoe
a7e56aaa45 Bug 1551241 - Add a check for the case where the embedder element is nullptr. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D30982
2019-05-15 10:55:34 +00:00
Botond Ballo
6ceafddc04 Bug 1459260 - Create a MobileViewportManager whenever apz.allow_zooming is set. r=kats
However, we continue to only respect a <meta name="viewport"> tag if
dom.meta-viewport.enabled is set.

Differential Revision: https://phabricator.services.mozilla.com/D30988
2019-05-14 02:16:21 +00:00
Hiroyuki Ikezoe
bf6b448470 Bug 1518919 - Propagate CSS visibility information to descendant documents via IPC call for fission. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D30460
2019-05-13 01:49:07 +00:00
Hiroyuki Ikezoe
12da02daa5 Bug 1541253 - Propagate CSS visivibility information to descendant documents. r=tnikkel
Depends on D26251

Differential Revision: https://phabricator.services.mozilla.com/D26252
2019-05-10 11:15:43 +00:00
Hiroyuki Ikezoe
8f087de7fa Bug 1541253 - Make PresShell::IsVisible const. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D26251
2019-05-10 11:15:30 +00:00
Botond Ballo
172756e4cd Bug 1516722 - Also scroll the visual viewport in ScrollToShowRect() if necessary. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D29079
2019-05-07 03:03:34 +00:00
Masayuki Nakano
d2e481107d Bug 1543315 - part 15: Mark PresShell::ScrollFrameRectIntoView() as MOZ_CAN_RUN_SCRIPT r=smaug
Unfortunately, `EventChainVisitor` does not grab the `nsPresContext` with
`RefPtr` by itself.  Therefore, there is no guarantee of the lifetime without
checking the origin when its subclasses are instantiated.  This patch changes
it and subclasses to `MOZ_STACK_CLASS` since only `EventDispatcher::Dispatch()`
creates them in the stack with given `nsPresContext`.  Additionally, it's
already been marked as MOZ_CAN_RUN_SCRIPT_BOUNDARY`.  Therefore, the
`nsPresContext` instance has already been guaranteed its lifetime by the
caller.  For making this fact stronger, this patch marks their constructors
as `MOZ_CAN_RUN_SCRIPT`.  Therefore, nobody can create those instances without
guaranteeing the lifetime of `nsPresContext` and `dom::Event`.  Note that
it may look like that `mPresContext` of `EventChainPostVisitor` is not
guaranteed.  However, `EventChainPreVisitor` which gives `nsPresContext` to it
is also a stack only class.  So, it won't be deleted before
`EventChainPostVisitor` instance.

Differential Revision: https://phabricator.services.mozilla.com/D30010
2019-05-06 13:57:46 +00:00