Commit Graph

459 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
1f513de3ca Bug 1435632: Fix the logic to do layout stuff after reassigning a slot. r=smaug,xidorn
The dirty bit fiddling is nontrivial, but it's pretty much what we do for
invalidation and allows to keep this incrementally easily.

The only caller that we cared about for the GetFlattenedTreeParent check in
DestroyFramesForAndRestyle was the old ShadowRoot invalidation functions that
went away.

MozReview-Commit-ID: GmgPPJ6d2qX
2018-03-29 12:34:38 +02:00
Xidorn Quan
d03cde8f6e Bug 1447828 part 8 - Remove remaining uses of StyleBackendType as well as the type itself. r=emilio
MozReview-Commit-ID: 6sh4eKvDpRF
2018-03-29 02:34:34 +11:00
Xidorn Quan
c77f975241 Bug 1447828 part 6 - Have only a single nsLayoutStylesheetCache instance. r=emilio
MozReview-Commit-ID: BjCgc8MZjIq
2018-03-29 02:34:34 +11:00
Xidorn Quan
6c4fa0122d Bug 1447828 part 5 - Remove StyleBackendType uses from nsStyleSheetService. r=emilio
MozReview-Commit-ID: 2yQqwVPnvdE
2018-03-29 02:34:34 +11:00
Jonathan Watt
44d37e68d5 Bug 1449321 - Remove the IsServo and IsGecko methods from the style system code. r=emilio 2018-03-23 16:01:34 +00:00
Boris Zbarsky
2f03e52f54 Bug 1447890 part 5. Remove nsISelection::RemoveAllRanges. r=mystor
MozReview-Commit-ID: EeMje9KW6An
2018-03-27 00:35:23 -04:00
Boris Zbarsky
60cebc0348 Bug 1447890 part 4. Remove nsISelection::GetRangeCount. r=mystor
MozReview-Commit-ID: FypNZE0oQiW
2018-03-27 00:35:22 -04:00
Boris Zbarsky
189e99bd19 Bug 1447890 part 1. Remove nsISelection::AddRange. r=mystor
MozReview-Commit-ID: 1JNLZp7tbII
2018-03-27 00:35:22 -04:00
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