Commit Graph

936 Commits

Author SHA1 Message Date
cku
d2a7903970 Bug 1341703 - Part 3. Handle nsStyleBorder::CalcDifference off main thread. r=heycam
Image loading status can be accessed in main thread only, so we can not use
nsStyleImage::IsLoaded in nsStyleBorder::CalcDifference, which might be executed
on a background thread.

The drawback of this change is we may paint a border-image, once, even before it
was actually loaded, which is a waste, because we have nothing to draw yet.

PS:
We did not check nsStyleImage::IsLoaded in both background-image and mask-image's
CalcDifference.

MozReview-Commit-ID: 5knH6dZziL8
2017-04-18 15:04:35 +08:00
Boris Chiou
002878951e Bug 1357357 - Part 1: Add one FFI to set unsupported transition property. r=emilio
We need an FFI, Gecko_StyleTransition_SetUnsupportedProperty, to set the
mProperty and mUnknownProperty of StyleTransition. In Servo, we put
non-animatable, custom, and unrecognized property together, so this FFI
should look up the nsCSSPropertyID of the input string, and then store the
value and the unknown property string (if any) back to StyleTransition.

MozReview-Commit-ID: 4iZNKXNSrzj
2017-04-26 17:41:45 +08:00
Daniel Holbert
b2b5cf7068 Bug 1357117 part 2: Add flag to distinguish between -moz & -webkit prefixed gradient expressions. r=heycam
This patch doesn't change our behavior -- we won't actually act on the new flag
until the next patch in this series.

MozReview-Commit-ID: EONsLM54eG1
2017-04-25 11:48:39 -07:00
cku
4ac7347cd4 Bug 1351015 - Not assuming nsStyleImage::ComputeActualCropRect always return true. r=heycam
nsStyleImage::ComputeActualCropRect may return false under 4 conditions
1. mType is not eStyleImageType_Image.
   This function is design to be used when mType is eStyleImageType_Image.
   Replace this 'if' check by MOZ_ASSERT.
2. nsStyleImage::GetImageData() returns nullptr
   This function will return true if this image refers to a local-ref resource.
3. GetImage returns failure or does not return a valid imgIContainer.
   It's possible. Please refers to the comment in imgReqestProxy::GetImage
   at [1].
4. imageSize is empty
   It's possible too. By giving a malformed image to a style image, we will hit
   this condition. And this is right what we met in this bug.

Since ComputeActualCropRect may actaully return false, we should remove the
NS_ASSERTION that assume it will always return true.

[1]
https://hg.mozilla.org/mozilla-central/file/7f1f1559cd8d/image/imgRequestProxy.cpp#l513

MozReview-Commit-ID: KHTFQJjiLtT
2017-04-22 03:28:20 +08:00
Jeremy Chen
866ae873cf Bug 1348173 - stylo: combined gecko side patch for -moz-border-*-colors support. r=heycam
MozReview-Commit-ID: 53gWkWKJNmV
2017-04-25 14:50:44 +08:00
Iris Hsiao
c6383fd1f0 Backed out changeset 9c7c061b959f (bug 1348173) for hazard busted 2017-04-25 14:24:10 +08:00
Jeremy Chen
b973002a21 Bug 1348173 - stylo: combined gecko side patch for -moz-border-*-colors support. r=heycam
1. add binding functions for -moz-border-*-colors support.

  In Gecko, we use double pointers to nsBorderColors to store -moz-border-*-colors.
  The computed values of -moz-border-*-colors are set by couple member functions.

  To pass the computed value from Servo to Gecko, we need support for these member
  functions as well. So, I'm adding some binding functions in this patch. The
  actual use of these bindings to pass/store the computed values is separated
  in the following patch, which should be a pure Servo change. See servo PR:
  https://github.com/servo/servo/pull/16586.

2. update test expectations for -moz-border-*-colors support.

  Note that with the support of -moz-border-*-colors, 165 mochitests and 17 reftests
  could be fixed.

MozReview-Commit-ID: KDbp8C6Aoqd
2017-04-24 18:23:52 +08:00
Mats Palmgren
bd3424149f Bug 1357655 part 1 - [css-ui] Make 'none' the initial value for 'appearance' for web and UA compatibility. Add 'appearance:auto' to UA sheets for form controls, XUL etc where needed. r=bz
MozReview-Commit-ID: 2h5ndqHresm
2017-04-21 02:24:19 +02:00
Eric Rahm
6021db5857 Bug 1356060 - Just use nsString in URLValueData. r=heycam
This switches over from using nsStringBuffer to nsString for URLValueData's
|mString| member. This avoids various tedious conversions and can provide
potential performance improvements by avoiding length calculations.

MozReview-Commit-ID: 5eRifUZrAso
2017-04-13 15:18:25 -07:00
cku
b753749f55 Bug 1341667 - Part 1. Keep url in nsStyleImage for local-fragment url. r=heycam
MozReview-Commit-ID: KEbO4vZXBJo
2017-04-11 22:56:41 +08:00
cku
f7dd286f72 Bug 1354772 - Part 3. Correct the comment in Layer::CalcDifference. r=heycam
MozReview-Commit-ID: 34p6qqGO5R0
2017-04-11 15:38:07 +08:00
cku
b1c9fe3f9f Bug 1354772 - Part 2. Compute URLValueData::mMightHaveRef when need. r=heycam
MozReview-Commit-ID: 8t5tKrjB1cz
2017-04-10 16:41:51 +08:00
Nazım Can Altınova
b416f7e28d Bug 1341761 - Convert nsStyleImage::mElementId to use nsIAtom. r=xidorn
MozReview-Commit-ID: 9YcbhMmXYoi
2017-04-09 16:44:36 +03:00
cku
821fbb7591 Bug 1352096 - Part 2. Remove Layer::mSourceURI. r=heycam
Now, remove Layer::mSourceURI, there are several benefit of doing this:
1. Reduce the size of nsStyleImage::Layer.
2. By storing style image and url information in nsStyleImage, we can remove
many verbose comments. That is becasue there is no need to explain why we use
mSourceURI here, or why we use nsStyleImage there anymore.
3. Since all inforamtion is stored in on place, nsStyleImage, we can setup image
request or URLs by one single Gecko_SetUrlImageValue call.

MozReview-Commit-ID: 7aTQobddTB1
2017-03-31 01:50:21 +08:00
cku
07cdb251aa Bug 1352096 - Part 1. Implement nsStyleImage::SetURL and GetURLValueData. r=heycam
This patch implements two things:
1. Add one extra type, nsStyleImageType::eStyleImageType_Url, and puts data of
this type in nsStyleImage::mUrlData.
2. Export SetURLValueData and GetURLValueData from nsStyleImage

With these chnages, we can simply use nsStyleImage::mUrlData to replace
Layer::mSourceURI in the next patch.

MozReview-Commit-ID: E20MEzXv8cg
2017-03-30 23:16:46 +08:00
Xidorn Quan
93655e51b9 Bug 1343964 part 1 - Move URLExtraData into its own header. r=heycam
This patch does the following in addition to a simple move:
* change the type of the pointers from RefPtr to nsCOMPtr
* move it from mozilla::css namespace to mozilla

MozReview-Commit-ID: 72MYq6kWm4s
2017-04-04 10:04:13 +10:00
Xidorn Quan
95cf226194 Bug 1351957 - Create URLExtraData for holding base uri, referrer, and principal. r=heycam
MozReview-Commit-ID: 1wqTb3kvvWh
2017-03-30 18:54:48 +11:00
Jan Henning
7ce23f0b71 Bug 1328868 - Part 2 - Apply the system font scale as an additional text zoom factor to all pages that are not font inflated. r=tnikkel
We want to use a similar model as Chrome on Android does for scaling our display of web content, that is use font inflation for desktop pages and plain text zooming for everything else.

Since we don't want to simply clobber any text zoom that might have been set by the user/front-end code, we allow setting and storing the system font scale separately on the PresContext. We then calculate the effective text zoom value as the product of the system font scale and the current text zoom value.

Any function that is using the PresContext's TextZoom value for layouting/rendering is switched over to this new EffectiveTextZoom value, whereas functions that are interested in the text zoom as actually set by the user/front-end (e.g. the nsDocumentViewer, or the code responsible for copying text and full zoom settings into the new PresContext on page navigation) continue using the plain TextZoom value.

As long as font inflation is enabled in principle (e.g. font.size.inflation.minTwips != 0), every page starts out as eligible for font inflation until the relevant meta viewport tags marking the page as "mobile friendly" have been detected. Since the PresShell caches the font inflation state and only recalculates it when necessary, we make use of that and set the PresContext's system font scale as necessary whenever the font inflation state has been refreshed.

MozReview-Commit-ID: 2InyE04wKAW
2017-02-25 13:22:52 +01:00
cku
5b4f0a3ba9 Bug 1343139 - Part 2. (Main) Add nsChangeHint_UpdateContainingBlock hint when HasMask state changed. r=heycam
Look into the test case on bugzilla attachment:
o1.animate([{"mask": "linear-gradient(red,blue)", "transform": "none"}], 100);

If I replace mask by a filter effect, we won't hit that assertion. Then I looked
into nsStyleStruct, compared nsStyleSVGReset::CalcDifference with
nsStyleEffects::CalcDifference, and noticed that we miss a hint in nsStyleSVGReset:
nsStyleEffects::CalcDifference(const nsStyleEffects& aNewData) const
{
  //....
  if (HasFilters() != aNewData.HasFilters()) {
    // A change from/to being a containing block for position:fixed.
    hint |= nsChangeHint_UpdateContainingBlock;
  }
}

MozReview-Commit-ID: KeViMShnMAK
2017-03-07 13:39:15 +08:00
cku
924d426016 Bug 1343139 - Part 1. Implement nsStyleSVGReset::HasMask. r=heycam
Implement this unil function to improve readability
MozReview-Commit-ID: FLKOGyq180W
2017-03-07 13:43:21 +08:00
Ting-Yu Lin
6b854b6f48 Bug 1322570 Part 2 - Resolve {align,justify}-self using StyleContext from alignment container frame in ReflowInput::InitConstraints(). r=dholbert
Per bug 1322570 comment 46, it's not easy to replace ComputedJustifyItems()
and UsedJustifySelf()'s internal nsStyleContext::GetParent() without
correctness penalty, so we use GetParentAllowServo() for now.

Also, fix the reftest.list added in bug 1334403 which incorrectly wrote test
page as reference page.

MozReview-Commit-ID: 6kAAWSFojd5
2017-03-20 14:12:08 +08:00
Mats Palmgren
8297bf43a1 Bug 1333482 part 1 - [css-ui] Introduce the 'appearance: auto | none' property. r=dholbert
MozReview-Commit-ID: 3itCDTKuYQ9
2017-03-23 22:11:17 -07:00
Bobby Holley
9b43681fa7 Bug 1347435 - Use a wrapper class to maintain the mBinding invariant and stop resolving during the cascade. r=emilio 2017-03-22 20:17:18 -07:00
Ting-Yu Lin
315afe9175 Bug 1338446 Part 4 - Label StyleImageRequestCleanupTask. r=heycam
If nsStyleImageRequest::Resolve() has been called, we cache the DocGroup and
use it for dispatching events for the clean up task. Otherwise, it's safe to
do clean up task on non-main thread.

MozReview-Commit-ID: BXalEkc6dBm
2017-03-14 21:29:55 +08:00
cku
14c0f9ceb9 Bug 1340044 - Part 2. Rename value in StyleGeometryBox. r=heycam
This change is to use gecko_enum_prefix in helpers.mako.rs, so that we do not
need to manually write code for nsStyleDisplay::mTransformBox.

MozReview-Commit-ID: 7UAL0iUcSIO
2017-03-16 15:18:10 +08:00
cku
9db54d5a1a Bug 1340044 - Part 1. Declare mTransformBox as StyleGeometryBox. r=heycam
MozReview-Commit-ID: 9fcHkDtNHhL
2017-03-15 12:21:07 +08:00
Bobby Holley
53ffcaaef5 Bug 1347399 - Use a thread-safe URI comparison in CalcStyleDifference. r=heycam
MozReview-Commit-ID: Fpb1guCxXUZ
2017-03-16 20:18:57 -07:00
Manish Goregaokar
ceb5b11b52 Bug 1296477 - Part 2: stylo: Implement remaining content values; r=heycam
MozReview-Commit-ID: 9fLM5bdR8hr
2017-03-11 22:40:54 -08:00
cku
07333a0c53 Bug 1345739 - Implement nsStyleImageRequest::GetImageURI. r=heycam
MozReview-Commit-ID: Jqhio1RaqG1
2017-03-09 13:03:32 +08:00
cku
c71480a03d Bug 1345377 - Implement URLValueData::HasRef. r=heycam
Improve code readability.

MozReview-Commit-ID: HDJ7TeyqCpN
2017-03-07 17:31:48 +08:00
Boris Chiou
2e08ec42b1 Bug 1248340 - Part 1: Add the type of Frames in nsTimingFunction. r=birtles
MozReview-Commit-ID: GPn8D9gwjqa
2017-02-24 14:34:08 +08:00
Neerja Pancholi
5fddb99f6b Bug 1339298 - Add boilerplate code for CSS3 multicol column-span parsing and define pref 'layout.css.column-span.enabled' to toggle it. r=dholbert
MozReview-Commit-ID: 6aSlRhcKm8i
2017-02-13 16:57:33 -08:00
jeremychen@mozilla.com
8e500e1044 Bug 276079 - parse and compute CSS text-justify property. r=xidorn
MozReview-Commit-ID: K3bh0H2SPnE
2017-03-01 20:58:25 +08:00
Mats Palmgren
2911a72040 Bug 1342801 - Store the 'writing-mode' used value on nsIFrame and make GetWritingMode non-virtual. r=jfkthame
MozReview-Commit-ID: HPhuxjDbOdh
2017-02-28 18:58:30 +01:00
Cameron McCormack
cba47fa35e Bug 1335321 - stylo: Do CachedBorderImageData::PurgeCachedImages work on the main thread. r=bholley
MozReview-Commit-ID: 82vKTooB2fh
2017-02-20 20:39:05 +08:00
Iris Hsiao
b5a0c8c111 Backed out 4 changesets (bug 1335876) for stylo tc build bustage
Backed out changeset b870f9671bcd (bug 1335876)
Backed out changeset 3e160602fc1a (bug 1335876)
Backed out changeset 9d290cbe5aad (bug 1335876)
Backed out changeset 6e447c3fcd79 (bug 1335876)
2017-02-15 10:20:11 +08:00
cku
84dbe2a1c2 Bug 1335876 - Part 1. Declare mTransformBox as StyleGeometryBox. r=heycam
MozReview-Commit-ID: 9fcHkDtNHhL
2017-02-02 13:57:49 +08:00
Bobby Holley
864c9835d0 Bug 1335308 - Proxy mSpecifiedTransform releases that occur during the servo traversal to the main thread. r=heycam 2017-02-08 17:04:46 -08:00
Bobby Holley
89ee3a7feb Bug 1335308 - Assert against destroying images and counters in generated content off-main-thread. r=emilio
We'll need to deal with this at some point, but let's just forbid it for now
to appease the static analysis.
2017-02-08 17:04:46 -08:00
L. David Baron
8e0da3f0f3 Bug 1209697 followup - Add comment to explain change that might not be clear given existing comments here and in nsChangeHint.h. 2017-02-05 10:26:09 -05:00
Emilio Cobos Álvarez
04b8583238 Bug 1209697: Part 1, Clear ancestor intrinsic sizes when our block size changes. r=dholbert
MozReview-Commit-ID: 9LnMm6KDcDP
2017-01-22 13:57:26 +01:00
Carsten "Tomcat" Book
25b0f4912d merge mozilla-inbound to mozilla-central a=merge 2017-01-19 16:05:22 +01:00
Xidorn Quan
907f502a32 Bug 1332193 - Fix several properties to return NeutralChange hint. r=heycam
MozReview-Commit-ID: GDNRy6vqmL8
2017-01-19 19:13:02 +11:00
Timothy Nikkel
bd03f02d91 Bug 1317562. Make style images use async image notifications when requesting decoding. r=aosmond 2016-12-25 00:18:08 -06:00
Ryan VanderMeulen
127c9e5534 Merge inbound to m-c. a=merge 2017-01-07 11:22:47 -05:00
cku
5f0226d79a Bug 1329091 - Keep mask style value to determine whether cached mask layer is corrupt. r=mstange
MozReview-Commit-ID: J2CFFi5pN7H
2017-01-06 17:53:30 +08:00
Phil Ringnalda
2903fb9e55 Merge m-i to m-c, a=merge
MozReview-Commit-ID: 51FMtH1yTe6
2017-01-04 18:33:32 -08:00
Boris Zbarsky
de151155ed Bug 1298588 part 16. Remove StyleStructContext. r=bholley 2017-01-04 14:52:27 -05:00
Boris Zbarsky
64be577ca4 Bug 1298588 part 15, gecko piece. Rip out the initial() methods on style structs in stylo. r=bholley 2017-01-04 14:52:27 -05:00
Timothy Nikkel
4c98d70317 Backed out changeset c2f49fba3f4d (part 3 of bug 1317562) for causing bug 1325910. 2017-01-02 16:49:29 -06:00