Commit Graph

501 Commits

Author SHA1 Message Date
Boris Zbarsky
164097f697 Bug 1447889 part 14. Remove mention of nsIDOMRange from layout/. r=mystor
MozReview-Commit-ID: JWJWGzY45ac
2018-03-27 00:35:22 -04:00
Boris Zbarsky
32b248d7cd Bug 1447889 part 8. Remove nsIDOMRange::SelectNode/SelectNodeContents. r=mystor
MozReview-Commit-ID: 2hbF6pT31Xd
2018-03-27 00:35:21 -04:00
Jonathan Watt
baf9ffb02b Bug 1448714 - Fix up comments referring to 'style context' after the rename of nsStyleContext. r=emilio 2018-03-23 13:49:21 +00:00
Emilio Cobos Álvarez
c48b1f646b Bug 1448690: Remove IsStyledByServo. r=xidorn
MozReview-Commit-ID: I3MDbo2Yu7d
2018-03-26 09:39:26 +02:00
Emilio Cobos Álvarez
1d4859a89a Bug 1447483: Merge nsStyleContext and ServoStyleContext, rename to ComputedStyle. r=jwatt on a CLOSED TREE
MozReview-Commit-ID: JPopq0LudD
2018-03-22 20:06:24 +01:00
Emilio Cobos Álvarez
97286b35c8 Back out changeset b683bb3f22a1 (Bug 1447483) for not landing with all the files. r=me on a CLOSED TREE
This reverts commit 1808914126bb9f9e4a82d2c3d7ac961885fe7d62.

MozReview-Commit-ID: 5skESBseEvo
2018-03-22 20:05:22 +01:00
Emilio Cobos Álvarez
1f5d8de5cc Bug 1447483: Merge nsStyleContext and ServoStyleContext, rename to ComputedStyle. r=jwatt
MozReview-Commit-ID: JPopq0LudD
2018-03-22 19:48:42 +01:00
Boris Zbarsky
152cd3ba6e Bug 1447098 part 1. Rename FromContent on various DOM classes to FromNode. r=mystor
MozReview-Commit-ID: 202nkbmkwfR
2018-03-21 17:39:04 -04:00
arthur.iakab
6e006c34b4 Merge inbound to mozilla-central. a=merge 2018-03-21 21:13:11 +02:00
Miko Mynttinen
86800aa3f1 Bug 1445302 - Replace TArray.RemoveElementAt(TArray.Length() - 1) pattern with TArray.RemoveLastElement() or TArray.PopLastElement() r=froydnj
MozReview-Commit-ID: rGjabnP2iz
2018-03-13 14:51:33 +01:00
Adrian Wielgosik
d8fb7c72ec Bug 1447392 - Remove all members from nsIDOMNodeList. r=bz
MozReview-Commit-ID: 68xF7CTMpKB
2018-03-20 19:02:08 +01:00
Emilio Cobos Álvarez
b1a35fbef7 Bug 1447358: Unifdef the old style system code. r=jwatt
Summary:
This has been automatically generated using:

  http://dotat.at/prog/unifdef/

And:

find $OBJDIR -type f -name '*.h' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

find $OBJDIR -type f -name '*.cpp' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

MozReview-Commit-ID: I4NdKqbMXzJ

Reviewers: jwatt

Bug #: 1447358

Differential Revision: https://phabricator.services.mozilla.com/D779
2018-03-21 10:20:34 +01:00
Xidorn Quan
ea8b8b1e74 Bug 1449400 part 5 - Remove StyleSetHandle. r=emilio
This patch basically does:
* remove StyleSetHandle and its corresponding files
* revisit #includes of related header files and change correspondingly
* change nsIPresShell::mStyleSet to be UniquePtr<ServoStyleSet>
* change the creating path of ServoStyleSet to pass UniquePtr
* change other mentions of StyleSetHandle to ServoStyleSet*
* remove AsServo() calls on ServoStyleSet

Some unfortunate bits:
* some methods of (Servo)StyleSet only accepts ServoStyleSheet while
  many places call into the methods with StyleSheet, so there are many
  ->AsServo() added to sheets

MozReview-Commit-ID: K4zYnuhOurA
2018-03-29 22:15:46 +11:00
Xidorn Quan
7b4b4459ad Bug 1449400 part 3 - Remove ServoStyleSet::RecordStyleSheetChange and its trivial callsites. r=emilio
It is no longer used, and removing this from ServoStyleSet allows us to
remove dependency from ServoStyleSet.h to StyleSheetInlines.h.

MozReview-Commit-ID: HzYNulJF7tf
2018-03-29 22:15:46 +11:00
Emilio Cobos Álvarez
9e94d46016 Bug 1446666: Assert that there are no frames for content outside of the flat tree. r=smaug
Summary: This would've caught stuff like bug 1438210 earlier.

Reviewers: smaug

Bug #: 1446666

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

MozReview-Commit-ID: 1cptyygiQRj
2018-03-19 11:11:48 +01:00
Emilio Cobos Álvarez
249bc337d5 Bug 1443339: Stop observing the refresh driver when inserting into the BFCache. r=bz
The nsCSSFrameConstructor bits are now handled in PresShell::Destroy along with
the other refresh driver observers.

I cleaned up the nsRefreshDriver methods because they were using infallible
append anyway, and that simplified the logic.

MozReview-Commit-ID: 1eDUUXjUUS9
2018-03-17 16:11:52 +01:00
Sylvestre Ledru
055d8432e6 Bug 1443080 - Use the static call for static methods (not instance) r=Ehsan
MozReview-Commit-ID: JwHh4bzxuTR
2018-03-16 14:29:15 +01:00
shindli
1056e3decf Merge inbound to mozilla-central. a=merge 2018-03-15 12:15:17 +02:00
Emilio Cobos Álvarez
9e47fd4973 Bug 1433671: Add MOZ_CAN_RUN_SCRIPT annotations to AccessibleCaret and other stuff. r=bz
MozReview-Commit-ID: Js0CF7WQM73
2018-03-14 23:32:22 +01:00
Xidorn Quan
1868b0fa93 Bug 1444296 part 2 - Have a separate marker for styles to present stats. r=mstange
MozReview-Commit-ID: FXYnFXDvajw
2018-03-15 11:59:22 +11:00
Tom Ritter
30e3434271 Bug 1443943 Allow internal callers of performance.now() to opt-out of clamping/jittering r=bholley
PresShell only uses performane.now to track refresh times, and notify internal
observers. We can provide more accurate times by not clamping and jittering
these numbers.

MozReview-Commit-ID: FkDGJhrLeAy
2018-03-09 20:12:53 -06:00
Emilio Cobos Álvarez
cecd54c889 Bug 1443415: Move nsPresContext::NotifyFontFaceSetOnRefresh to nsIPresShell. r=bholley
The font face set is owned by the document now, and the shell knows about
refresh driver ticks. There's no reason for it to live in the pres context.

MozReview-Commit-ID: I8gtimok7VG
2018-03-06 09:01:35 +01:00
Coroiu Cristina
8c03201dcc Backed out 2 changesets (bug 1443080) for spidermonkey build bustage at build/src/js/src/jit/BaselineCacheIRCompiler.cpp
Backed out changeset 7d509bb8a35d (bug 1443080)
Backed out changeset 53bdcd5937cd (bug 1443080)
2018-03-14 11:13:21 +02:00
Sylvestre Ledru
4a52aab337 Bug 1443080 - Use the static call for static methods (not instance) r=Ehsan
MozReview-Commit-ID: JwHh4bzxuTR
2018-03-05 13:43:54 +01:00
Kartikaya Gupta
bada5ac555 Bug 1258238 - Remove code that displays visibility visualization on the APZ minimap. r=mattwoodrow
This code was originally added to debug the frame visibility code.
However it wasn't architected correctly and makes the compositor use an
untrusted layers id from content. Instead of fixing this I'd rather just
delete it, since it's a big pile of code that is basically a debugging
tool that nobody owns anymore.

MozReview-Commit-ID: nPZqVeYsFp
2018-03-12 14:17:34 -04:00
Eric Rahm
d50783e902 Bug 1442491 - Convert PLHash instances in PressShell to nsClassHashtables. r=dholbert 2018-03-01 18:59:13 -08:00
Eric Rahm
c15dc40ef4 Bug 1442480 - Switch nsNodeInfoHash to a nsDataHashTable. r=smaug
This switches `nsNodeInfoHash` to a nsDataHashTable. The hash function and
equality operator are moved to NodeInfoInner so that they can be easily reused.
2018-03-01 15:33:52 -08:00
Emilio Cobos Álvarez
0f7c4f5d20 Bug 1024082: Remove most of the nsIPresShell::FrameManager calls. r=dholbert
Most of them just want GetRootFrame(), and there's no need to explicitly go
through the frame manager for that, we have a handy alias in the shell.

MozReview-Commit-ID: GriEqkasidY
2018-03-07 10:17:49 +01:00
Chris Peterson
20b28f1d54 Bug 1443402 - Fix some -Wmissing-prototypes warnings in layout. r=dholbert
-Wmissing-prototypes is a new optional warning available in clang ToT. It warns about global functions that have no previous function declaration (e.g. from an #included header file). These functions can probably be made static (allowing the compiler to better optimize them) or they may be unused.

Confusingly, clang's -Wmissing-prototypes is equivalent to gcc's -Wmissing-declarations, not gcc's -Wmissing-prototypes. A function prototype is a function declaration that specifies the function's argument types. C++ requires that all function declarations specify their argument types, but C does not. As such, gcc's -Wmissing-prototypes is a C-only warning about C functions that have no previous function *prototypes* (with argument types), even if a previous function *declaration* (without argument types) was seen.

MozReview-Commit-ID: FGKVLzeQ2oK
2018-02-22 21:03:45 -08:00
Hiroyuki Ikezoe
ecccbf13fe Bug 1442861 - Clear mNeedStyleFlush flag after ProcessPendingRestyles(). r=emilio
mNeedStyleFlush is also set by animation restyle request.  So it's possible
that the flag is set again in PostRestyleForThrottledAnimations() or in
sequential tasks for updating animations after the flag is cleared at the top
DoFlushPendingNotifications().

MozReview-Commit-ID: KPSS6cJb4HX
2018-03-06 06:34:02 +09:00
Emilio Cobos Álvarez
0ff849122a Bug 1442207: Remove unneeded arguments to nsIMutationObserver. r=smaug
aDocument is always content->OwnerDoc().
aContainer is always content->GetParent().

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

MozReview-Commit-ID: 4xwPCOnhyIL
2018-03-01 22:45:17 +01:00
Tiberius Oros
0e49912cc8 Merge inbound to mozilla-central. a=merge 2018-03-01 19:29:00 +02:00
Nathan Froyd
30fd7b71e8 Bug 1440465 - initialize more things in AutoPointerEventTargetUpdater; r=dholbert 2018-02-28 15:00:04 -05:00
Emilio Cobos Álvarez
7a79ccba52 Bug 1441547: Make character data change notifications use a const reference for the info parameter. r=smaug
It's not intended to be mutated.

MozReview-Commit-ID: 5nkD1YkidlV
2018-02-27 15:30:27 +01:00
Xidorn Quan
c29c014e29 Bug 1440221 - Track stale computed values and style structs held by undisplayed maps in memory report. r=emilio,njn
MozReview-Commit-ID: 8eXowQvUjyi
2018-02-22 23:19:50 +11:00
Emilio Cobos Álvarez
6691888d43 Bug 1439036: Stop passing bogus next sibling values into restyling / frame construction. r=bz
I think this is a regression from https://hg.mozilla.org/mozilla-central/rev/4a8294c6b8e33ba08ef767bede8deeb28234b5b8.

Before that, the only caller with NAC used to pass -1 as an index, which means
we didn't get a node back.

MozReview-Commit-ID: 7HYPaa2V3OB
2018-02-17 01:25:05 +01:00
Emilio Cobos Álvarez
4c02c5750d Bug 1427625: Optimize appends to avoid restyling unnecessarily. r=xidorn
This unfortunately doesn't fix my test-case (because we're replacing the text
content all the time and all that), but it's still worth it, since it fixes the
case we care about (the parser appending).

We could also optimize pure insertions (since in that case we can still figure
out what the old text was), but it's probably annoying and not worth the churn.

In any case, we cannot optimize anything that resembles any kind of removal,
because from there we don't know the old text in any way (and the text nodes
like to reuse string buffers and such).

We could do two other optimizations to replace / extend this one, in that order:

 * Pass the buffer and length to CharacterDataWillChange, and use that to get
   the exact old text and the new one in RestyleManager. That would make the
   optimization exact.

 * Pass some sort of Maybe<bool> mWasWhitespace down the CharacterDataChangeInfo
   which is computed like:

    HasFlag(NS_CACHED_TEXT_IS_ONLY_WHITESPACE)
      ? Some(NS_TEXT_IS_ONLY_WHITESPACE)
      : Nothing()

It's not clear to me it's going to be completely worth the churn, so I haven't
done those yet, if we see code in the wild which resembles my testcase, we can
think of doing it.

MozReview-Commit-ID: 2rTWaZti8rv
2018-02-27 17:02:52 +01:00
Emilio Cobos Álvarez
b11225394b Bug 1440613: Flush pending media feature values changes before initializing the shell. r=dbaron
This is guaranteed not to run script because of:

  https://searchfox.org/mozilla-central/rev/47cb352984bac15c476dcd75f8360f902673cb98/layout/base/nsPresContext.cpp#2152

This doesn't have any effect on the top-level chrome window, but avoids a full
document restyle on XUL popups on startup.

With this patch, there are no more full document restyles due to media feature
changes on my machine on startup.

MozReview-Commit-ID: HLkhIsIIa2W
2018-02-23 11:51:18 +01:00
Matt Woodrow
6f1864699b Bug 1436904 - Part 1: Add a static constructor function for display items. r=Bas 2018-02-13 13:43:28 +13:00
Jonathan Kew
8e4d415511 Bug 1439954 - Make gfxPlatform::ForceGlobalReflow when called in a content process trigger reflows only within that process; it should not try (and fail, with an assertion) to affect the parent or other content processes. r=jrmuizel 2018-02-22 20:55:36 +00:00
Dorel Luca
3276af0faa Backed out 3 changesets (bug 1436904) for many crashes see bugs: 1440281, 1440302, 1440303, 1440313. a=backout
Backed out changeset 27f0762d4472 (bug 1436904)
Backed out changeset 27640f52e188 (bug 1436904)
Backed out changeset 2b4d117c27dc (bug 1436904)
2018-02-22 17:28:59 +02:00
Gurzau Raul
68d251eed3 Merge inbound to mozilla-central. a=merge 2018-02-21 18:46:07 +02:00
Emilio Cobos Álvarez
637026a1a0 Bug 1439027: Simplify PresShell::Initialize. r=bz
Most of the callers pass the already-existing pres-context visible area. The few
that don't can set it themselves.

MozReview-Commit-ID: KRi4ShrgOrE
2018-02-21 12:42:17 +01:00
Hiroyuki Ikezoe
b1da8534e8 Bug 1417354 - Introduce nsIDocument::GetPresContext(). r=smaug
It would be convenient to get nsPresContext from nsIDocument.

MozReview-Commit-ID: Ei6V3UE8XGr
2018-02-21 07:00:10 +09:00
Gurzau Raul
279765c822 Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-02-21 12:06:01 +02:00
Matt Woodrow
2bcbca93c9 Bug 1436904 - Part 1: Add a static constructor function for display items. r=Bas 2018-02-13 13:43:28 +13:00
Emilio Cobos Álvarez
74d2dd20e6 Bug 1439224: Make shadow root style changes not restyle the whole document. r=xidorn
Also, make them not rebuild the CascadeData synchronously, via the
FlushSkinSheets call, since that's broken. That fixes bug 1413119.

This is a little step in getting rid of XBL usage for Shadow DOM.

MozReview-Commit-ID: HJ7FeUZlRTW
2018-02-18 14:35:57 +01:00
Miko Mynttinen
527b7a6e81 Bug 1438165 - Ensure that all display items have a unique type r=mattwoodrow
MozReview-Commit-ID: HIlSQFcvG9A
2018-02-15 15:26:56 +01:00
Emilio Cobos Álvarez
988f582cbd Bug 1436059: Cleanup a bit after ourselves. r=xidorn
on a CLOSED TREE

MozReview-Commit-ID: DWWmdtigIkk
2018-02-16 16:56:26 +01:00
decltype
402ab7cd6d Bug 712130 - Defer autofocus until after frame construction. r=bz
The autofocus attribute on form elements forces layout in CheckIfFocusable.
To avoid unpleasant FOUCs, defer autofocus processing until frames are
constructed in PresShell::Initialize.

Resolve the race between nsAutoFocusEvent running and page load by checking the
readystate at time of event posting. Skip autofocus if the element moved to a
different window in the meantime.

MozReview-Commit-ID: 90jiJYJWmRg
2018-01-08 22:35:00 +01:00