Commit Graph

228 Commits

Author SHA1 Message Date
Cameron McCormack
b8dd60db88 Bug 1407246 - Split out Variables struct difference calculation. r=emilio
MozReview-Commit-ID: CtWtG3zkD1D
2017-10-12 09:12:30 +08: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
Manish Goregaokar
358eed4e79 Bug 1403808 - Move mFrameRefCount to GeckoStyleContext; r=emilio
MozReview-Commit-ID: 3ZlvXVlgR6i
2017-09-27 20:22:52 -07:00
Nicholas Nethercote
9fda5528d2 Bug 1400459 (part 2) - Devirtualize nsIAtom. r=heycam.
This patch merges nsAtom into nsIAtom. For the moment, both names can be used
interchangeably due to a typedef. The patch also devirtualizes nsIAtom, by
making it not inherit from nsISupports, removing NS_DECL_NSIATOM, and dropping
the use of NS_IMETHOD_. It also removes nsIAtom's IIDs.

These changes trigger knock-on changes throughout the codebase, changing the
types of lots of things as follows.

- nsCOMPtr<nsIAtom> --> RefPtr<nsIAtom>

- nsCOMArray<nsIAtom> --> nsTArray<RefPtr<nsIAtom>>
  - Count() --> Length()
  - ObjectAt() --> ElementAt()
  - AppendObject() --> AppendElement()
  - RemoveObjectAt() --> RemoveElementAt()

- ns*Hashtable<nsISupportsHashKey, ...> -->
  ns*Hashtable<nsRefPtrHashKey<nsIAtom>, ...>

- nsInterfaceHashtable<T, nsIAtom> --> nsRefPtrHashtable<T, nsIAtom>
  - This requires adding a Get() method to nsRefPtrHashtable that it lacks but
    nsInterfaceHashtable has.

- nsCOMPtr<nsIMutableArray> --> nsTArray<RefPtr<nsIAtom>>
  - nsArrayBase::Create() --> nsTArray()
  - GetLength() --> Length()
  - do_QueryElementAt() --> operator[]

The patch also has some changes to Rust code that manipulates nsIAtom.

MozReview-Commit-ID: DykOl8aEnUJ
2017-09-26 08:33:21 +10:00
Boris Zbarsky
9ff1ee9b18 Bug 1388625 part 4. Add a concept of wrapper anon boxes to nsCSSAnonBoxes. r=heycam
MozReview-Commit-ID: 39i5eHlrrON
2017-08-11 00:07:12 -04:00
Emilio Cobos Álvarez
78a9114477 Bug 1368290: Cache anon box styles in ServoStyleContext. r=bholley
MozReview-Commit-ID: CaaL9hB3G7p
2017-08-04 23:37:17 +02:00
Emilio Cobos Álvarez
5ee4316fe2 Bug 1385896: Move nsStyleContext::mParent to GeckoStyleContext. r=heycam
Unfortunately this means that we lose the NS_STYLE_INHERIT_BIT optimization to
avoid posting changes if we had not requested the struct. In practice, I'm not
sure this optimization matters much, though, and we already compare all the
structs anyway.

We _could_ keep a weak parent pointer from the text style if needed, given we're
going to keep alive the text style at least until the parent style context goes
away, so should be safe, but I don't think the extra churn is worth it, to be
honest. Happy to do so as part of bug 1368290 if you think it's worth it.

MozReview-Commit-ID: ka6tNwf4Ke
2017-07-31 16:21:40 +02:00
Emilio Cobos Álvarez
54f1c009a9 Bug 1384542: Move GetParent and IsLinkContext to GeckoStyleContext. r=heycam
MozReview-Commit-ID: C19yGcphixX
2017-07-31 14:32:59 +02:00
Emilio Cobos Álvarez
ec5ed5b6e3 Bug 1384114: Move mRefCnt, Destroy() and HasSingleReference() to GeckoStyleContext. r=bholley
MozReview-Commit-ID: 5XzFYcohl3m
2017-07-25 15:45:59 +02:00
Emilio Cobos Álvarez
4b6d7fc287 Bug 1381844: Be more explicit about the kind of style context we handle all the time. r=bholley
MozReview-Commit-ID: E0mdkhU3XBz
2017-07-22 18:02:57 +02:00
Manish Goregaokar
82f2e05017 Bug 1382017 part 4 Gecko piece - Rename ServoComputedValues -> ServoComputedData; r=heycam
ServoComputedValues is confusing because ComputedValues is actually
ServoStyleContext on the C++ side.

MozReview-Commit-ID: IQNVdfREAMt
2017-07-20 21:44:02 -07:00
Manish Goregaokar
80fec50c0b Bug 1382017 part 4 Gecko piece - Remove usage of ServoComputedValues from most Gecko code; r=xidorn
MozReview-Commit-ID: 2NB4DgxMrL3
2017-07-20 17:27:05 -07:00
Cameron McCormack
b5d22e57da Bug 1380133 - Part 7: De-templatize CalcStyleDifference(Internal). r=emilio
MozReview-Commit-ID: 8c1E1gbwaHz
---
 layout/style/nsStyleContext.cpp | 23 +++++------------------
 layout/style/nsStyleContext.h   |  7 -------
 2 files changed, 5 insertions(+), 25 deletions(-)
2017-07-21 11:42:44 +08:00
Cameron McCormack
59cacb5e6c Bug 1380133 - Part 5: Call CalcStyleDifference with ServoStyleContexts instead of a FakeStyleContext wrapping a ServoComputedValues. r=emilio
MozReview-Commit-ID: 6JhMas1EiM7
---
 layout/style/ServoBindings.cpp  | 21 ++++++++++-----
 layout/style/ServoBindings.h    |  3 ++-
 layout/style/nsStyleContext.cpp | 58 +++++++++++++++++++++--------------------
 layout/style/nsStyleContext.h   | 29 ++++++++++++++-------
 4 files changed, 65 insertions(+), 46 deletions(-)
2017-07-21 11:42:44 +08:00
Sebastian Hengst
bf2f642518 Backed out changeset 9a84b6988af9 (bug 1380133) 2017-07-20 15:39:58 +02:00
Sebastian Hengst
aa46604a88 Backed out changeset 1f1175528301 (bug 1380133) 2017-07-20 15:39:48 +02:00
Cameron McCormack
2b8537d512 Bug 1380133 - Part 7: De-templatize CalcStyleDifference(Internal). r=emilio
MozReview-Commit-ID: 8c1E1gbwaHz
2017-07-19 17:52:43 +08:00
Cameron McCormack
384be7ae12 Bug 1380133 - Part 5: Call CalcStyleDifference with ServoStyleContexts instead of a FakeStyleContext wrapping a ServoComputedValues. r=emilio
MozReview-Commit-ID: 6JhMas1EiM7
2017-07-19 17:50:35 +08:00
Manish Goregaokar
d72d196d22 Bug 1341102 -Fix forward declaration in nsStyleContext.h; r=bustage
MozReview-Commit-ID: 9RBzxkc9wnA
2017-07-18 08:19:14 -07:00
Manish Goregaokar
df853f68c9 Bug 1367904 - Part 17: stylo: Clean up GetContext, call it UpdateWithElementState; r=bholley
MozReview-Commit-ID: I23w5hFatk8
2017-07-17 21:01:33 -07:00
Manish Goregaokar
f7ddf7a1b6 Bug 1367904 - Part 16: stylo: Stop using mStyleIfVisited in Servo; r=bholley
MozReview-Commit-ID: JxoMr6fz7lh
2017-07-17 21:01:23 -07:00
Manish Goregaokar
0dcf16fa0c Bug 1367904 - Part 14: stylo: Remove FFI calls for fetching style structs from ServoComputedValues; r=bholley
MozReview-Commit-ID: 2HrVZl9HZu1
2017-07-17 21:01:10 -07:00
Manish Goregaokar
9d1915a8b8 Bug 1367904 - Part 13: stylo: Flatten ServoComputedValues into ServoStyleContext; r=bholley
This patch also removes the duplication of style contexts during the
restyle, because otherwise pointer equality of ServoComputedValues stops
holding (and we assert on that in a few places)

MozReview-Commit-ID: 7Evc1p8ZfM2
2017-07-17 21:01:02 -07:00
Manish Goregaokar
63c907be23 Bug 1367904 - Part 11: stylo: Use ServoStyleContext in ServoStyleSet/ServoRestyleManager; r=bholley
MozReview-Commit-ID: JJOBixTSCZq
2017-07-17 21:00:54 -07:00
Manish Goregaokar
86e90da5c3 Bug 1367904 - Part 10: stylo: Switch Gecko over to ServoStyleContext; r=bholley
MozReview-Commit-ID: EmopKVjEzlz
2017-07-17 21:00:46 -07:00
Manish Goregaokar
a0cec6421f Bug 1367904 - Part 5: stylo: Make GetBaseComputedValuesForElement return a style context; r=bholley
MozReview-Commit-ID: K5WpWc26xNZ
2017-07-17 21:00:32 -07:00
Jonathan Chan
dc2b831115 Bug 1375153 - Move nsStyleContext::mComputingStruct and AutoCheckDependency to GeckoStyleContext. r=manishearth
These are only used in Gecko mode.

MozReview-Commit-ID: DKQBwatbu62
2017-06-21 11:46:11 -07:00
Bobby Holley
b7f9b0d4cd Bug 1376655 - Move EnsureSameStructsCached to GeckoStyleContext. r=emilio 2017-06-28 10:08:37 -07:00
Bobby Holley
0bb4f2f9ec Bug 1376655 - Use ServoStyleContext in more places. r=emilio 2017-06-28 10:08:36 -07:00
Manish Goregaokar
18abf5ff15 Bug 1373018 - Part 11: stylo: Move cached style structs to GeckoStyleContext; r=bholley
MozReview-Commit-ID: 1LA8AJ3oNwF
2017-06-10 22:27:45 -07:00
Manish Goregaokar
533734efc7 Bug 1373018 - Part 10: stylo: Remove StyleSource; r=bholley
MozReview-Commit-ID: 4IcROeDNoBA
2017-06-10 22:27:45 -07:00
Manish Goregaokar
d8f0f89cc6 Bug 1373018 - Part 9: stylo: Make more things on nsStyleContext inlined; r=bholley
MozReview-Commit-ID: FYiOtmSK2oC
2017-06-10 22:27:45 -07:00
Manish Goregaokar
e8a3c268a8 Bug 1373018 - Part 8: stylo: Move nsStyleContext::SetStyle to GeckoStyleContext; r=bholley
MozReview-Commit-ID: ycXu95whnG
2017-06-10 22:27:45 -07:00
Manish Goregaokar
d6c7e909d2 Bug 1373018 - Part 7: stylo: Move nsStyleContext::mSource into subclasses; r=bholley
MozReview-Commit-ID: AspYUJ7lGqD
2017-06-10 22:27:45 -07:00
Manish Goregaokar
95549e672c Bug 1373018 - Part 6: stylo: Move most Gecko-specific methods into GeckoStyleContext; r=bholley
MozReview-Commit-ID: KzMAbuY8nll
2017-06-10 22:27:45 -07:00
Manish Goregaokar
a198b0c59f Bug 1373018 - Part 5: stylo: Move child/sibling pointers to GeckoStyleContext; r=bholley
MozReview-Commit-ID: Gay6RwpkNcu
2017-06-10 22:27:45 -07:00
Manish Goregaokar
7bcee25068 Bug 1373018 - Part 4: stylo: Rename eArenaObjectID_nsStyleContext to eArenaObjectID_GeckoStyleContext; r=bholley
MozReview-Commit-ID: 5oZwxG8r9Ty
2017-06-10 22:27:45 -07:00
Manish Goregaokar
37717ce635 Bug 1373018 - Part 3: stylo: Move mPresContext to ServoStyleContext; r=bholley
MozReview-Commit-ID: 2BmRpIjxEO8
2017-06-10 22:27:45 -07:00
Manish Goregaokar
4f2f5b1870 Bug 1373018 - Part 2: stylo: Add stylo conversion methods for nsStyleContext; stop using arena; r=bholley
MozReview-Commit-ID: CeIDP7idlmC
2017-06-10 22:27:45 -07:00
Manish Goregaokar
857b411aa5 Bug 1373018 - Part 1: stylo: Introduce ServoStyleContext and GeckoStyleContext subclasses; r=bholley
MozReview-Commit-ID: GY1GfkWMK0n
2017-06-10 22:27:45 -07:00
J. Ryan Stinnett
feb0ddcc55 Bug 1328509 - Wire up visited values in ServoStyleSet::GetContext. r=emilio
Create an extra style context using the visited values (if they exist).  This
mirrors the logic Gecko performs in nsStyleSet::GetContext for visited support.

MozReview-Commit-ID: EiJQXDgz8tX
2017-05-25 10:13:23 -05:00
Phil Ringnalda
dc5d30b907 Backed out 6 changesets (bug 1328509) for Windows 7 failures in test_visited_reftests.html
Backed out changeset 8388d8c76fed (bug 1328509)
Backed out changeset 182a88607e08 (bug 1328509)
Backed out changeset 008efac7764b (bug 1328509)
Backed out changeset c2ce10b8bc37 (bug 1328509)
Backed out changeset 65bbc73c87aa (bug 1328509)
Backed out changeset e20d3d5170c2 (bug 1328509)

MozReview-Commit-ID: BSmqdFP1Zom
2017-05-24 22:12:53 -07:00
J. Ryan Stinnett
25219c9280 Bug 1328509 - Wire up visited values in ServoStyleSet::GetContext. r=emilio
Create an extra style context using the visited values (if they exist).  This
mirrors the logic Gecko performs in nsStyleSet::GetContext for visited support.

MozReview-Commit-ID: EiJQXDgz8tX
2017-05-24 21:20:06 -05:00
Jonathan Kew
fad933d66d Bug 1365928 - patch 2 - Annotate style-struct getters with MOZ_NONNULL_RETURN for better optimization. r=mats 2017-05-22 19:00:19 +01:00
Cameron McCormack
27bda60595 Bug 1344914 - stylo: Stop pretending to handle style fixups on the C++ side. r=bz
MozReview-Commit-ID: FBM2NOlXIe5
2017-04-25 12:52:51 +08:00
Emilio Cobos Álvarez
095e339c6c Bug 1360508: Allow fixups on text styles to be reflected. rpending=heycam a=orange
MozReview-Commit-ID: Eh6shYiv4RC
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-04-28 20:19:03 +02:00
Ting-Yu Lin
fefa431928 Bug 1322570 Part 1 - Add MOZ_ASSERT in nsStyleContext::GetParent() to disallow usage by stylo. r=bz
Also, add GetParentAllowServo() to whitelist the usage in servo-backed style
system in subsequent parts so that we could revisit them later.

MozReview-Commit-ID: JthU18Ftx02
2017-03-20 14:11:06 +08:00
Carsten "Tomcat" Book
679a4b86b3 Merge mozilla-central to mozilla-inbound 2017-03-21 12:07:49 +01:00
Cameron McCormack
757b14f5d7 Bug 1302054 - Part 2: Remove no longer useful nsStyleContext::CalcDifference optimization that handles the same-rule-node case. r=dbaron
nsStyleContext::CalcDifference had an optimization where, when we knew
that the old and new style context have the same rule node, we knew that
the only change hints that would need to be handled are those in the
"not handled for descendants" category, generated due to explicit
'inherit' values on reset properties.  This was because any changes due
to differences in inherited properties should only have generated
"handled for descendants" change hints (and thus would already have been
handled on an ancestor).

Before bug 931668, this let us avoid calling CalcDifference on structs
that only would have generated hints that we knew we already would have
handled.  However, after bug 931668, we compare all structs anyway so
that we can set the aEqualStructs outparam, so we don't gain anything
from this optimization.  We can still return these change hints we know
will not need to be handled, and rely on ElementRestyler::CaptureChange
to filter them out.

MozReview-Commit-ID: Ld1s2Js0i6r
2017-03-21 16:33:05 +08:00
Cameron McCormack
61828f2975 Bug 1302054 - Part 1: Avoid computing style differences when we just want to ensure structs are cached on the new context. r=dbaron
MozReview-Commit-ID: DLhHcCD4GQS
2017-03-21 16:33:05 +08:00