diff --git a/gfx/webrender_bindings/WebRenderTypes.cpp b/gfx/webrender_bindings/WebRenderTypes.cpp index 9e319b9c8a62..6f2a6022cb26 100644 --- a/gfx/webrender_bindings/WebRenderTypes.cpp +++ b/gfx/webrender_bindings/WebRenderTypes.cpp @@ -7,6 +7,7 @@ #include "WebRenderTypes.h" #include "mozilla/ipc/ByteBuf.h" +#include "nsStyleConsts.h" namespace mozilla { namespace wr { @@ -19,6 +20,51 @@ WindowId NewWindowId() { return id; } +BorderStyle ToBorderStyle(StyleBorderStyle aStyle) { + switch (aStyle) { + case StyleBorderStyle::None: + return wr::BorderStyle::None; + case StyleBorderStyle::Solid: + return wr::BorderStyle::Solid; + case StyleBorderStyle::Double: + return wr::BorderStyle::Double; + case StyleBorderStyle::Dotted: + return wr::BorderStyle::Dotted; + case StyleBorderStyle::Dashed: + return wr::BorderStyle::Dashed; + case StyleBorderStyle::Hidden: + return wr::BorderStyle::Hidden; + case StyleBorderStyle::Groove: + return wr::BorderStyle::Groove; + case StyleBorderStyle::Ridge: + return wr::BorderStyle::Ridge; + case StyleBorderStyle::Inset: + return wr::BorderStyle::Inset; + case StyleBorderStyle::Outset: + return wr::BorderStyle::Outset; + default: + MOZ_ASSERT(false); + } + return wr::BorderStyle::None; +} + +wr::RepeatMode ToRepeatMode(StyleBorderImageRepeat aRepeat) { + switch (aRepeat) { + case StyleBorderImageRepeat::Stretch: + return wr::RepeatMode::Stretch; + case StyleBorderImageRepeat::Repeat: + return wr::RepeatMode::Repeat; + case StyleBorderImageRepeat::Round: + return wr::RepeatMode::Round; + case StyleBorderImageRepeat::Space: + return wr::RepeatMode::Space; + default: + MOZ_ASSERT(false); + } + + return wr::RepeatMode::Stretch; +} + void Assign_WrVecU8(wr::WrVecU8& aVec, mozilla::ipc::ByteBuf&& aOther) { aVec.data = aOther.mData; aVec.length = aOther.mLen; diff --git a/gfx/webrender_bindings/WebRenderTypes.h b/gfx/webrender_bindings/WebRenderTypes.h index 95d5b5e5a762..5537df607f9b 100644 --- a/gfx/webrender_bindings/WebRenderTypes.h +++ b/gfx/webrender_bindings/WebRenderTypes.h @@ -21,10 +21,12 @@ #include "mozilla/TypeTraits.h" #include "mozilla/Variant.h" #include "Units.h" -#include "nsStyleConsts.h" namespace mozilla { +enum class StyleBorderStyle : uint8_t; +enum class StyleBorderImageRepeat : uint8_t; + namespace ipc { class ByteBuf; } // namespace ipc @@ -539,36 +541,10 @@ static inline wr::LayoutTransform ToLayoutTransform( return transform; } -static inline wr::BorderStyle ToBorderStyle(const StyleBorderStyle& style) { - switch (style) { - case StyleBorderStyle::None: - return wr::BorderStyle::None; - case StyleBorderStyle::Solid: - return wr::BorderStyle::Solid; - case StyleBorderStyle::Double: - return wr::BorderStyle::Double; - case StyleBorderStyle::Dotted: - return wr::BorderStyle::Dotted; - case StyleBorderStyle::Dashed: - return wr::BorderStyle::Dashed; - case StyleBorderStyle::Hidden: - return wr::BorderStyle::Hidden; - case StyleBorderStyle::Groove: - return wr::BorderStyle::Groove; - case StyleBorderStyle::Ridge: - return wr::BorderStyle::Ridge; - case StyleBorderStyle::Inset: - return wr::BorderStyle::Inset; - case StyleBorderStyle::Outset: - return wr::BorderStyle::Outset; - default: - MOZ_ASSERT(false); - } - return wr::BorderStyle::None; -} +wr::BorderStyle ToBorderStyle(StyleBorderStyle style); static inline wr::BorderSide ToBorderSide(const gfx::Color& color, - const StyleBorderStyle& style) { + StyleBorderStyle style) { wr::BorderSide bs; bs.color = ToColorF(color); bs.style = ToBorderStyle(style); @@ -649,23 +625,7 @@ static inline wr::LayoutSideOffsets ToLayoutSideOffsets(float top, float right, return offset; } -static inline wr::RepeatMode ToRepeatMode( - mozilla::StyleBorderImageRepeat repeatMode) { - switch (repeatMode) { - case mozilla::StyleBorderImageRepeat::Stretch: - return wr::RepeatMode::Stretch; - case mozilla::StyleBorderImageRepeat::Repeat: - return wr::RepeatMode::Repeat; - case mozilla::StyleBorderImageRepeat::Round: - return wr::RepeatMode::Round; - case mozilla::StyleBorderImageRepeat::Space: - return wr::RepeatMode::Space; - default: - MOZ_ASSERT(false); - } - - return wr::RepeatMode::Stretch; -} +wr::RepeatMode ToRepeatMode(StyleBorderImageRepeat); template static inline wr::WrTransformProperty ToWrTransformProperty( diff --git a/toolkit/components/browser/nsWebBrowser.cpp b/toolkit/components/browser/nsWebBrowser.cpp index 19aa7b423f2d..47ef6d66e18d 100644 --- a/toolkit/components/browser/nsWebBrowser.cpp +++ b/toolkit/components/browser/nsWebBrowser.cpp @@ -37,6 +37,7 @@ // for painting the background window #include "mozilla/LookAndFeel.h" +#include "mozilla/ServoStyleConsts.h" // Printing Includes #ifdef NS_PRINTING