☠☠ backed out by 3b620c26083c ☠ ☠ | |
author | Jeremy Chen <jeremychen@mozilla.com> |
Mon, 24 Apr 2017 18:23:52 +0800 | |
changeset 354721 | 9c7c061b959fd3d6dc8f468aedaac0736ca7480c |
parent 354720 | e6727c8b0f5ee42c2fa5430c7e5bf40bfbcaa96b |
child 354722 | 3974fea2cf2d15f054db74376c3a7c08fe7142f4 |
push id | 31711 |
push user | cbook@mozilla.com |
push date | Tue, 25 Apr 2017 09:24:00 +0000 |
treeherder | mozilla-central@a30dc237c3a6 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | heycam |
bugs | 1348173, 16586 |
milestone | 55.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/layout/reftests/forms/progress/reftest-stylo.list +++ b/layout/reftests/forms/progress/reftest-stylo.list @@ -1,34 +1,34 @@ # DO NOT EDIT! This is a auto-generated temporary list for Stylo testing -fails == values.html values.html -fails == values-rtl.html values-rtl.html -fails == margin-padding.html margin-padding.html -fails == margin-padding-rtl.html margin-padding-rtl.html +== values.html values.html +== values-rtl.html values-rtl.html +== margin-padding.html margin-padding.html +== margin-padding-rtl.html margin-padding-rtl.html fails == bar-pseudo-element.html bar-pseudo-element.html -fails == bar-pseudo-element-rtl.html bar-pseudo-element-rtl.html -fails == indeterminate-style-width.html indeterminate-style-width.html +== bar-pseudo-element-rtl.html bar-pseudo-element-rtl.html +== indeterminate-style-width.html indeterminate-style-width.html # vertical tests -fails == values-vertical.html values-vertical.html -fails == values-vertical-rtl.html values-vertical-rtl.html -fails == margin-padding-vertical.html margin-padding-vertical.html -fails == margin-padding-vertical-rtl.html margin-padding-vertical-rtl.html -fails == bar-pseudo-element-vertical.html bar-pseudo-element-vertical.html -fails == bar-pseudo-element-vertical-rtl.html bar-pseudo-element-vertical-rtl.html -fails == indeterminate-style-height.html indeterminate-style-height.html +== values-vertical.html values-vertical.html +== values-vertical-rtl.html values-vertical-rtl.html +== margin-padding-vertical.html margin-padding-vertical.html +== margin-padding-vertical-rtl.html margin-padding-vertical-rtl.html +== bar-pseudo-element-vertical.html bar-pseudo-element-vertical.html +== bar-pseudo-element-vertical-rtl.html bar-pseudo-element-vertical-rtl.html +== indeterminate-style-height.html indeterminate-style-height.html # The following test is disabled but kept in the repository because the # transformations will not behave exactly the same for <progress> and two divs. # However, it would be possible to manually check those. -fails == transformations.html transformations.html +== transformations.html transformations.html # Tests for bugs: -fails == block-invalidate.html block-invalidate.html -fails == in-cells.html in-cells.html +== block-invalidate.html block-invalidate.html +== in-cells.html in-cells.html == max-height.html max-height.html # Tests for block and inline orientation in combination with writing-mode fails == progress-orient-horizontal.html progress-orient-horizontal.html fails-if(!cocoaWidget||OSX==1010) == progress-orient-vertical.html progress-orient-vertical.html fails == progress-orient-block.html progress-orient-block.html fails == progress-orient-inline.html progress-orient-inline.html fails == progress-vlr.html progress-vlr.html
--- a/layout/style/ServoBindings.cpp +++ b/layout/style/ServoBindings.cpp @@ -954,16 +954,43 @@ Gecko_AtomEqualsUTF8IgnoreCase(nsIAtom* // XXXbholley: We should be able to do this without converting, I just can't // find the right thing to call. nsDependentAtomString atomStr(aAtom); NS_ConvertUTF8toUTF16 inStr(nsDependentCSubstring(aString, aLength)); return nsContentUtils::EqualsIgnoreASCIICase(atomStr, inStr); } void +Gecko_EnsureMozBorderColors(nsStyleBorder* aBorder) +{ + aBorder->EnsureBorderColors(); +} + +void Gecko_ClearMozBorderColors(nsStyleBorder* aBorder, mozilla::Side aSide) +{ + aBorder->ClearBorderColors(aSide); +} + +void +Gecko_AppendMozBorderColors(nsStyleBorder* aBorder, mozilla::Side aSide, + nscolor aColor) +{ + aBorder->AppendBorderColor(aSide, aColor); +} + +void +Gecko_CopyMozBorderColors(nsStyleBorder* aDest, const nsStyleBorder* aSrc, + mozilla::Side aSide) +{ + if (aSrc->mBorderColors) { + aDest->CopyBorderColorsFrom(aSrc->mBorderColors[aSide], aSide); + } +} + +void Gecko_FontFamilyList_Clear(FontFamilyList* aList) { aList->Clear(); } void Gecko_FontFamilyList_AppendNamed(FontFamilyList* aList, nsIAtom* aName, bool aQuoted) { FontFamilyName family;
--- a/layout/style/ServoBindings.h +++ b/layout/style/ServoBindings.h @@ -31,16 +31,17 @@ class nsIAtom; class nsIPrincipal; class nsIURI; struct nsFont; namespace mozilla { class ServoStyleSheet; class FontFamilyList; enum FontFamilyType : uint32_t; struct Keyframe; + enum Side; namespace css { struct URLValue; }; enum class UpdateAnimationsTasks : uint8_t; struct LangGroupFontPrefs; } using mozilla::FontFamilyList; using mozilla::FontFamilyType; @@ -234,16 +235,24 @@ RawServoAnimationValueBorrowedOrNull Gec nsIAtom* Gecko_Atomize(const char* aString, uint32_t aLength); nsIAtom* Gecko_Atomize16(const nsAString* aString); void Gecko_AddRefAtom(nsIAtom* aAtom); void Gecko_ReleaseAtom(nsIAtom* aAtom); const uint16_t* Gecko_GetAtomAsUTF16(nsIAtom* aAtom, uint32_t* aLength); bool Gecko_AtomEqualsUTF8(nsIAtom* aAtom, const char* aString, uint32_t aLength); bool Gecko_AtomEqualsUTF8IgnoreCase(nsIAtom* aAtom, const char* aString, uint32_t aLength); +// Border style +void Gecko_EnsureMozBorderColors(nsStyleBorder* aBorder); +void Gecko_ClearMozBorderColors(nsStyleBorder* aBorder, mozilla::Side aSide); +void Gecko_AppendMozBorderColors(nsStyleBorder* aBorder, mozilla::Side aSide, + nscolor aColor); +void Gecko_CopyMozBorderColors(nsStyleBorder* aDest, const nsStyleBorder* aSrc, + mozilla::Side aSide); + // Font style void Gecko_FontFamilyList_Clear(FontFamilyList* aList); void Gecko_FontFamilyList_AppendNamed(FontFamilyList* aList, nsIAtom* aName, bool aQuoted); void Gecko_FontFamilyList_AppendGeneric(FontFamilyList* list, FontFamilyType familyType); void Gecko_CopyFontFamilyFrom(nsFont* dst, const nsFont* src); // will not run destructors on dst, give it uninitialized memory // font_id is LookAndFeel::FontID void Gecko_nsFont_InitSystem(nsFont* dst, int32_t font_id,
--- a/layout/style/nsStyleStruct.cpp +++ b/layout/style/nsStyleStruct.cpp @@ -361,23 +361,18 @@ nsStyleBorder::nsStyleBorder(const nsSty , mFloatEdge(aSrc.mFloatEdge) , mBoxDecorationBreak(aSrc.mBoxDecorationBreak) , mComputedBorder(aSrc.mComputedBorder) , mBorder(aSrc.mBorder) , mTwipsPerPixel(aSrc.mTwipsPerPixel) { MOZ_COUNT_CTOR(nsStyleBorder); if (aSrc.mBorderColors) { - EnsureBorderColors(); - for (int32_t i = 0; i < 4; i++) { - if (aSrc.mBorderColors[i]) { - mBorderColors[i] = aSrc.mBorderColors[i]->Clone(); - } else { - mBorderColors[i] = nullptr; - } + NS_FOR_CSS_SIDES(side) { + CopyBorderColorsFrom(aSrc.mBorderColors[side], side); } } NS_FOR_CSS_SIDES(side) { mBorderStyle[side] = aSrc.mBorderStyle[side]; mBorderColor[side] = aSrc.mBorderColor[side]; } }
--- a/layout/style/nsStyleStruct.h +++ b/layout/style/nsStyleStruct.h @@ -1157,16 +1157,24 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsSt void ClearBorderColors(mozilla::Side aSide) { if (mBorderColors && mBorderColors[aSide]) { delete mBorderColors[aSide]; mBorderColors[aSide] = nullptr; } } + void CopyBorderColorsFrom(const nsBorderColors* aSrcBorderColors, mozilla::Side aSide) { + if (aSrcBorderColors) { + EnsureBorderColors(); + ClearBorderColors(aSide); + mBorderColors[aSide] = aSrcBorderColors->Clone(); + } + } + // Return whether aStyle is a visible style. Invisible styles cause // the relevant computed border width to be 0. // Note that this does *not* consider the effects of 'border-image': // if border-style is none, but there is a loaded border image, // HasVisibleStyle will be false even though there *is* a border. bool HasVisibleStyle(mozilla::Side aSide) const { return IsVisibleBorderStyle(mBorderStyle[aSide]);
--- a/layout/style/test/stylo-failures.md +++ b/layout/style/test/stylo-failures.md @@ -129,24 +129,16 @@ to mochitest command. * test_initial_storage.html `grid` [*] * test_property_syntax_errors.html `grid`: actually there are issues with this [*] * test_value_storage.html `'grid` [*] * url value from decl setter bug 1330503 * test_compute_data_with_start_struct.html `border-image-source` [2] * test_inherit_computation.html `border-image` [2] * test_initial_computation.html `border-image` [4] * Unimplemented prefixed properties: - * -moz-border-*-colors bug 1348173 - * test_compute_data_with_start_struct.html `-colors` [8] - * test_inherit_computation.html `-colors` [8] - * test_inherit_storage.html `-colors` [12] - * test_initial_computation.html `-colors` [16] - * test_initial_storage.html `-colors` [24] - * test_value_storage.html `-colors` [96] - * test_shorthand_property_getters.html `-colors` [1] * -moz-force-broken-image-icon servo/servo#16001 * test_compute_data_with_start_struct.html `-moz-force-broken-image-icon` [2] * test_inherit_computation.html `-moz-force-broken-image-icon` [2] * test_inherit_storage.html `-moz-force-broken-image-icon` [2] * test_initial_computation.html `-moz-force-broken-image-icon` [4] * test_initial_storage.html `-moz-force-broken-image-icon` [4] * test_value_storage.html `-moz-force-broken-image-icon` [4] * -moz-transform: need different parsing rules servo/servo#16003
--- a/widget/reftests/reftest-stylo.list +++ b/widget/reftests/reftest-stylo.list @@ -1,7 +1,7 @@ # DO NOT EDIT! This is a auto-generated temporary list for Stylo testing skip-if(!cocoaWidget) == 507947.html 507947.html -fails == progressbar-fallback-default-style.html progressbar-fallback-default-style.html +== progressbar-fallback-default-style.html progressbar-fallback-default-style.html == meter-native-style.html meter-native-style.html fails == meter-vertical-native-style.html meter-vertical-native-style.html fails == meter-fallback-default-style.html meter-fallback-default-style.html load 664925.xhtml