Commit Graph

910 Commits

Author SHA1 Message Date
Hiroyuki Ikezoe
f0a38025cf Bug 1329169 - Use atom for animation-name property. r=xidorn
MozReview-Commit-ID: 9yVWXVi1oXf
2017-10-10 17:00:28 +09: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
Ting-Yu Lin
b445303baa Bug 1404243 Part 4 - Change StyleShapeSource's URL value storage by using nsStyleImage. r=heycam
This is for implementing shape-outside: <image> later.

MozReview-Commit-ID: 93TmLecRjRx
2017-09-29 16:24:23 +08:00
Ting-Yu Lin
d35b7d33db Bug 1404243 Part 3 - Remove refcount for StyleBasicShape, and use UniquePtr to hold it. r=heycam
After StyleBasicShape is set to StyleShapeSource, it's life cycle never go
beyond StyleShapeSource, so I make StyleBasicShape hold by a UniquePtr in
StyleShapeSource.

Also, replace all raw pointers to StyleBasicShape by UniquePtr in all APIs.

MozReview-Commit-ID: 1MfIFjP8TsQ
2017-09-25 18:50:24 +08:00
Ting-Yu Lin
bdeac3a666 Bug 1404243 Part 2 - Change StyleShapeSource::operator==() to use logic in DefinitelyEquals(). r=heycam
The original operator==() (implemented by EqualsInternal<true>) is not been
used. Therefore, I expand EqualsInternal<false> into it, and move it to
nsStyleStruct.cpp.

Also, use DefinitelyEqualURIs() in nsStyleStruct.cpp in operator==().

MozReview-Commit-ID: HccwKvzQHR
2017-09-29 14:36:35 +08:00
Ting-Yu Lin
73270862cd Bug 1404243 Part 1 - Move StyleShapeSource's large methods to nsStyleStruct.cpp. r=heycam
MozReview-Commit-ID: 5X5LGCSzSwX
2017-09-27 11:32:38 +08: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
Manish Goregaokar
5ff33e95bc Bug 1399228 - stylo: Add font keyword info fields on nsStyleFont; r=emilio
MozReview-Commit-ID: ERCnLLiAsFg
2017-09-23 12:55:34 -07:00
Ting-Yu Lin
524267638f Bug 1402246 - Remove unused NS_SPACING_{MARGIN, PADDING, BORDER}. r=heycam
MozReview-Commit-ID: DOW5EnFLQxL
2017-09-22 15:57:14 +08:00
Ting-Yu Lin
f08b8a9d2c Bug 1402246 - Remove "friend struct" declarations in nsStyleStruct.h. r=heycam
Those structs do not have any private section, so those "friend struct"
declarations are not needed.

MozReview-Commit-ID: BYPPPLAdiEQ
2017-09-22 15:30:36 +08:00
Xidorn Quan
45b9f27e27 Bug 1400438 - Use array instead of linked list for -moz-border-*-colors. r=heycam,mattwoodrow
MozReview-Commit-ID: LPl1Rlg5gRn
2017-09-18 13:38:39 +10:00
Sebastian Hengst
b57b40549e Backed out changeset 61a277705d59 (bug 1400438) for heap write hazard. r=backout 2017-09-20 16:52:02 +02:00
Xidorn Quan
060ebcb57f Bug 1400438 - Use array instead of linked list for -moz-border-*-colors. r=heycam,mattwoodrow
MozReview-Commit-ID: LPl1Rlg5gRn
2017-09-20 22:52:20 +10:00
vincentliu
4d017bdb50 Bug 1399006 - Invoke PurgeCachedImages to release object in main thread while ServoTraversal. r=bholley 2017-09-19 15:13:27 +08:00
Markus Stange
20d02b9b24 Bug 1387594 - Add a chrome-only CSS property called -moz-font-smoothing-background-color. r=dbaron
This property accepts a color. It's inherited and defaults to transparent.
Its value is respected on macOS when rendering text into transparent pixels.
This property should be used for text that is placed on top of "vibrant"
-moz-appearances, in order to achieve high quality text rendering for such text.

In most cases, the property should be set to a named system color; an upcoming
patch in this patch series will add one such color for each vibrant
-moz-appearance value.
However, in some cases it can also be useful to use a custom color: If text
is rendered into an intermediate surface, for example because a mask is applied
to it, and the background color behind that intermediate surface is known, then
this property can be set to that background color in order to achieve subpixel
AA for the text inside the mask effect. In that case, the font smoothing
background color is respected because text is rendered into transparent pixels
*inside the intermediate surface*. At the moment, the only example of that use
case is the text of the active tab in the state where the text is overflowing.

MozReview-Commit-ID: D98qQnxoFaq
2017-09-14 23:09:46 +02:00
Ting-Yu Chou
a59c58f2d4 Bug 1391500 - Fix the new-delete-type-mismatch error that ASan reports. r=Ehsan
MozReview-Commit-ID: 1iGtltDGj3T
2017-08-18 11:39:14 +08:00
Xidorn Quan
a29da54fad Bug 1388255 - Make nsStylePosition::mGridTemplate{Columns,Rows} a UniquePtr. r=canaltinova,dholbert
MozReview-Commit-ID: 8SOE6sAavCX
2017-08-09 11:30:25 +10:00
Xidorn Quan
659b196e60 Bug 1338764 part 1 - Use const rather than enum for context flags of nsStyleSVG. r=manishearth
MozReview-Commit-ID: KzORnfVXgLJ
2017-07-17 15:10:50 +10:00
Emilio Cobos Álvarez
5a23788fa4 Bug 1384542: Get rid of GetParentAllowServo in implementation of CSS 'justify-items' property. r=dholbert,heycam
MozReview-Commit-ID: 4qydjqSoVXs
2017-07-31 14:32:51 +02:00
cku
21b45c01ef Bug 1301245 - Part 1. Implement nsStyleImage::IsResolved. r=heycam
We need this new API in the following patch.

MozReview-Commit-ID: JSoCgzKWrfs
2017-07-20 01:02:17 +08:00
Jonathan Chan
26836c915b Bug 1355380 - Part 2: Make Servo's rounding of image-orientation values agree with Gecko's, and pass orientations directly as an enum instead of as angles. r=manishearth
Both Servo and Gecko store the specified value of the image-orientation
property as a single-precision float, but Gecko does the conversion to radians
and the computation to identify which quarter-turn the angle is closest to
using doubles.

We add Angle::radians64 to perform the conversion to radians using doubles,
just as Gecko does, and then update image_orientation to perform the
computation the same exact way Gecko does in
nsStyleImageOrientation::CreateAsAngleAndFlip. This lets the previously failing
reftests pass.

We also update Gecko_SetImageOrientation to take an orientation directly
instead of an angle (otherwise we'd be doing the which-quarter-turn-is-closest
computation twice).

Finally this lets us re-enable the reftests for image-orientation previously
marked as fails-if(styloVsGecko||stylo).

MozReview-Commit-ID: 2zMMzQlsYEC
2017-07-10 11:32:08 -07:00
Jonathan Chan
88c71d711d Bug 1355380 - Part 1: Have nsStyleImageOrientation::CreateAsAngleAndFlip handle negative angles correctly. r=manishearth
Previously we just took the input angle mod 2π, which will leave negative input
angles as negative. By checking if the input mod 2π is negative and if so
adding 2π and then taking that mod 2π again we can ensure that we end up with a
an angle in the range [0, 2π].

We only do this if the result of the initial mod is negative because this adds
rounding error that is enough to mess up whether 135 is determined to be closer
to 90 or 180, for example.

We add a test for this as well.

Also fix property_database.js to account for this (we assert that -90deg should
compute to the same value as the initial value, but it should actually compute
to 270deg).

MozReview-Commit-ID: Faf0f7wIEg3
2017-07-07 16:03:37 -07:00
Bobby Holley
53a0874e63 Bug 1376655 - Don't call EnsureSameStructsCached in ServoRestyleManager. r=emilio 2017-06-28 10:08:37 -07:00
Nicholas Nethercote
4ce1e9c11f Bug 1374580 (part 3) - Remove ns{,C}Substring typedefs. r=froydnj.
All the instances are converted as follows.

- nsSubstring  --> nsAString
- nsCSubstring --> nsACString
2017-06-20 19:19:52 +10:00
Markus Stange
539f07616a Bug 1370034 - Add CSS properties -moz-window-transform and -moz-window-transform-origin, style system parts (excluding stylo). r=dbaron
MozReview-Commit-ID: BlLMswF0bKO
2017-06-19 01:44:22 -04:00
Markus Stange
b8c33eb763 Bug 1370034 - Add -moz-window-opacity property, style system parts (excluding stylo). r=dbaron
MozReview-Commit-ID: J2SPMzh0I9C
2017-06-18 21:04:40 -04:00
Cameron McCormack
95368ca21c Backout bug 1291457 and bug 1370034 for bustage. 2017-06-19 13:55:15 +08:00
Markus Stange
ec6ecdb465 Bug 1370034 - Add CSS properties -moz-window-transform and -moz-window-transform-origin, style system parts (excluding stylo). r=dbaron
MozReview-Commit-ID: BlLMswF0bKO
2017-06-19 00:21:16 -04:00
Markus Stange
39724e9b46 Bug 1370034 - Add -moz-window-opacity property, style system parts (excluding stylo). r=dbaron
MozReview-Commit-ID: J2SPMzh0I9C
2017-06-18 21:04:40 -04: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
Xidorn Quan
a90da6fceb Bug 1372549 part 2 - Avoid return reframe / reflow for list-style-{type,position} if display is not list-item. r=heycam
MozReview-Commit-ID: LugfFRIu3MS
2017-06-13 20:49:33 +10:00
Jeff Hajewski
e7886588bb Bug 1371354: Changes macro defined NS_SYTLE_IMAGELAYER_ to enum class StyleImageLayer; r=manishearth
MozReview-Commit-ID: DgvenevRHg2
2017-06-09 16:53:34 -07:00
Jeff Hajewski
adba322437 Bug 1369448 - Change NS_STYLE_WHITESPACE macro definitions to enum class; r=manishearth
MozReview-Commit-ID: HUXYWXk8eiI
2017-06-01 15:37:22 -07:00
Xidorn Quan
45aa08d57d Bug 1363596 part 1 - Merge nsCOMPtr<nsIAtom> into CounterStylePtr. r=heycam
MozReview-Commit-ID: D2fdlrC3yop
2017-05-27 23:33:25 +10:00
Xidorn Quan
f6e5fc0b49 Bug 1366735 part 2 - Use the new struct in stylo. r=heycam
MozReview-Commit-ID: trgd0lKLP1
2017-05-23 00:32:05 +10:00
Xidorn Quan
b47214dcef Bug 1366735 part 1 - Change counter functions to use struct rather than nsCSSValue::Array. r=heycam
MozReview-Commit-ID: 4FiOxCOsjtD
2017-05-22 22:51:20 +10:00
Mats Palmgren
bd90393cc1 Bug 1365614 part 3 - Backout bug 1333482 part 1-9. Removes support for [-webkit-]appearance for now b/c web compat issues. r=bz
MozReview-Commit-ID: IbwWM0FL6HF
2017-05-21 17:15:00 +08:00
Carsten "Tomcat" Book
1aa86b3e0e Backed out changeset bbb688fe1ba3 (bug 1365614) 2017-05-22 15:45:31 +02:00
Mats Palmgren
473a358067 Bug 1365614 part 3 - Backout bug 1333482 part 1-9. Removes support for [-webkit-]appearance for now b/c web compat issues. r=bz 2017-05-21 17:15:00 +08:00
Neil Deakin
c9d8fddac3 Bug 1364115 - Allow -moz-stack-sizing to work in a single direction only. r=dbaron,manishearth
MozReview-Commit-ID: Kl7YQpfolTC
2017-05-15 12:33:46 +01:00
cku
5e25acb0e1 Bug 1310885 - Part 11. (gecko) Clean up unused things. r=heycam
MozReview-Commit-ID: CxHbNyVNSz8
2017-04-28 19:47:04 +08:00
Xidorn Quan
70957a721d Bug 1328319 part 6 - Make it possible to delay resolving counter style. r=heycam
MozReview-Commit-ID: 5rlGBf9Asu4
2017-05-15 14:22:10 +10:00
Xidorn Quan
b7742acb67 Bug 1363699 part 1 - Make named CounterStyle objects not refcounted. r=heycam
This change does the following:
* Introduce a new smart pointer called CounterStylePtr which either
  holds an AnonymousCounterStyle strongly, or a named CounterStyle
  managed by CounterStyleManager weakly, and use it to replace all
  RefPtr<CounterStyle> around the codebase.
* Rename CounterStyleManager::mCacheTable to mStyles to reflect the
  fact that it is used to manage all styles, not just for caching.
* Add a retired styles list which collect all named CounterStyle
  evicted from mStyles, and post a PostRefreshObserver to destroy
  objects in that list after next flush.
* Remove helper functions for counter style in nsStyleList and expose
  mCounterStyle directly, to make code simpler with the new pointer.

Reason for adding a new smart pointer type rather than making their
AddRef/Release behave like BuiltinCounterStyle is that, it is possible
that after a flush, some stale style structs may still be alive. They
can contain pointer to destroyed CounterStyle objects. Although the
actual content may never be accessed anymore, RefPtr may still access
the object for refcounting during destruction.

MozReview-Commit-ID: xxegwSDhNb
2017-05-13 21:42:23 +10:00
cku
f1bd49a3a3 Bug 1310885 - Part 3. (gecko) Create a new API to receive cached ImageValue from stylo.
This patch implement several things:
1. Implement a new constructor for nsStyleImageRequest to receive an existing
   ImageValue from the caller.
2. Implement Gecko_ImageValue_Create to allow stylo to create a gecko::ImageValue
   object.
3. Implement Gecko_SetXXXXImageValue to allow stylo to pass a created ImageValue
   back to gecko.

MozReview-Commit-ID: 1SbW5w8FSV2
2017-05-02 16:20:01 +08:00
Phil Ringnalda
c80de42a91 Backed out 3 changesets (bug 1310885) for heap write hazard failures
Backed out changeset 77352010d8e8 (bug 1310885)
Backed out changeset 9245a2fbb974 (bug 1310885)
Backed out changeset 7c2db290c4b6 (bug 1310885)

MozReview-Commit-ID: 7JWuxt9QDO0
2017-05-11 23:03:31 -07:00
cku
17bf07bafa Bug 1310885 - Part 3. (gecko) Create a new API to receive cached ImageValue from stylo. r=heycam
This patch implement several things:
1. Implement a new constructor for nsStyleImageRequest to receive an existing
   ImageValue from the caller.
2. Implement Gecko_ImageValue_Create to allow stylo to create a gecko::ImageValue
   object.
3. Implement Gecko_SetXXXXImageValue to allow stylo to pass a created ImageValue
   back to gecko.

MozReview-Commit-ID: 1SbW5w8FSV2
2017-05-02 16:20:01 +08:00
Xidorn Quan
45a9721391 Bug 1362302 part 1 - Use nsIAtom for counter style names. r=dbaron
MozReview-Commit-ID: 5VK6BgGRVRs
2017-05-06 11:34:35 +10:00
Robert Longson
fe779567bf Bug 1347409 part 2 - serialise fill and stroke fallback properly r=cam 2017-05-02 22:12:59 +01:00
Robert Longson
87dde88e34 Bug 1347409 part 1 - introduce nsStyleSVGFallbackType so that we can begin to distinguish the type of paintserver fallback r=cam 2017-04-29 14:03:20 +01:00
Jonathan Watt
5e6164b63f Bug 1350010, part 1 - Implement the '-moz-context-properties' property. r=heycam
MozReview-Commit-ID: CyVQe0UfKdy
2017-04-11 21:38:10 +01:00