Commit f0b190cb authored by Kent Tamura's avatar Kent Tamura Committed by Commit Bot

Use new downcast helper for LayoutSVGResourceContainer subclasses

This CL converts DEFINE_LAYOUT_SVG_RESOURCE_TYPE_CASTS() to
DownCastTraits<> for the following classes, and removes
DEFINE_LAYOUT_SVG_RESOURCE_TYPE_CASTS().
- LayoutSVGResourceClipper
- LayoutSVGResourceFilter
- LayoutSVGResourceMarker
- LayoutSVGResourceMasker
- LayoutSVGResourceRadialGradient

This CL has no behavior changes.

Bug: 891908
Change-Id: Ica5c540177b51e2e32d1e7c29518a060c2923c07
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2538859
Commit-Queue: Koji Ishii <kojii@chromium.org>
Auto-Submit: Kent Tamura <tkent@chromium.org>
Reviewed-by: default avatarKoji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#827704}
parent 4cdf52b6
...@@ -79,8 +79,12 @@ class LayoutSVGResourceClipper final : public LayoutSVGResourceContainer { ...@@ -79,8 +79,12 @@ class LayoutSVGResourceClipper final : public LayoutSVGResourceContainer {
FloatRect local_clip_bounds_; FloatRect local_clip_bounds_;
}; };
DEFINE_LAYOUT_SVG_RESOURCE_TYPE_CASTS(LayoutSVGResourceClipper, template <>
kClipperResourceType); struct DowncastTraits<LayoutSVGResourceClipper> {
static bool AllowFrom(const LayoutSVGResourceContainer& container) {
return container.ResourceType() == kClipperResourceType;
}
};
inline LayoutSVGResourceClipper* GetSVGResourceAsType( inline LayoutSVGResourceClipper* GetSVGResourceAsType(
const ClipPathOperation* clip_path_operation) { const ClipPathOperation* clip_path_operation) {
......
...@@ -116,11 +116,6 @@ struct DowncastTraits<LayoutSVGResourceContainer> { ...@@ -116,11 +116,6 @@ struct DowncastTraits<LayoutSVGResourceContainer> {
} }
}; };
#define DEFINE_LAYOUT_SVG_RESOURCE_TYPE_CASTS(thisType, typeName) \
DEFINE_TYPE_CASTS(thisType, LayoutSVGResourceContainer, resource, \
resource->ResourceType() == typeName, \
resource.ResourceType() == typeName)
template <typename ContainerType> template <typename ContainerType>
inline bool IsResourceOfType(const LayoutSVGResourceContainer* container) { inline bool IsResourceOfType(const LayoutSVGResourceContainer* container) {
return container->ResourceType() == ContainerType::kResourceType; return container->ResourceType() == ContainerType::kResourceType;
......
...@@ -64,8 +64,12 @@ class LayoutSVGResourceFilter final : public LayoutSVGResourceContainer { ...@@ -64,8 +64,12 @@ class LayoutSVGResourceFilter final : public LayoutSVGResourceContainer {
// is a single url(...) reference. // is a single url(...) reference.
LayoutSVGResourceFilter* GetFilterResourceForSVG(const ComputedStyle&); LayoutSVGResourceFilter* GetFilterResourceForSVG(const ComputedStyle&);
DEFINE_LAYOUT_SVG_RESOURCE_TYPE_CASTS(LayoutSVGResourceFilter, template <>
kFilterResourceType); struct DowncastTraits<LayoutSVGResourceFilter> {
static bool AllowFrom(const LayoutSVGResourceContainer& container) {
return container.ResourceType() == kFilterResourceType;
}
};
} // namespace blink } // namespace blink
......
...@@ -83,8 +83,12 @@ class LayoutSVGResourceMarker final : public LayoutSVGResourceContainer { ...@@ -83,8 +83,12 @@ class LayoutSVGResourceMarker final : public LayoutSVGResourceContainer {
bool is_in_layout_; bool is_in_layout_;
}; };
DEFINE_LAYOUT_SVG_RESOURCE_TYPE_CASTS(LayoutSVGResourceMarker, template <>
kMarkerResourceType); struct DowncastTraits<LayoutSVGResourceMarker> {
static bool AllowFrom(const LayoutSVGResourceContainer& container) {
return container.ResourceType() == kMarkerResourceType;
}
};
} // namespace blink } // namespace blink
......
...@@ -65,8 +65,12 @@ class LayoutSVGResourceMasker final : public LayoutSVGResourceContainer { ...@@ -65,8 +65,12 @@ class LayoutSVGResourceMasker final : public LayoutSVGResourceContainer {
FloatRect mask_content_boundaries_; FloatRect mask_content_boundaries_;
}; };
DEFINE_LAYOUT_SVG_RESOURCE_TYPE_CASTS(LayoutSVGResourceMasker, template <>
kMaskerResourceType); struct DowncastTraits<LayoutSVGResourceMasker> {
static bool AllowFrom(const LayoutSVGResourceContainer& container) {
return container.ResourceType() == kMaskerResourceType;
}
};
} // namespace blink } // namespace blink
......
...@@ -74,8 +74,12 @@ class LayoutSVGResourceRadialGradient final : public LayoutSVGResourceGradient { ...@@ -74,8 +74,12 @@ class LayoutSVGResourceRadialGradient final : public LayoutSVGResourceGradient {
} }
}; };
DEFINE_LAYOUT_SVG_RESOURCE_TYPE_CASTS(LayoutSVGResourceRadialGradient, template <>
kRadialGradientResourceType); struct DowncastTraits<LayoutSVGResourceRadialGradient> {
static bool AllowFrom(const LayoutSVGResourceContainer& container) {
return container.ResourceType() == kRadialGradientResourceType;
}
};
} // namespace blink } // namespace blink
......
...@@ -576,12 +576,12 @@ void WriteSVGResourceContainer(WTF::TextStream& ts, ...@@ -576,12 +576,12 @@ void WriteSVGResourceContainer(WTF::TextStream& ts,
DCHECK(resource); DCHECK(resource);
if (resource->ResourceType() == kMaskerResourceType) { if (resource->ResourceType() == kMaskerResourceType) {
LayoutSVGResourceMasker* masker = ToLayoutSVGResourceMasker(resource); auto* masker = To<LayoutSVGResourceMasker>(resource);
WriteNameValuePair(ts, "maskUnits", masker->MaskUnits()); WriteNameValuePair(ts, "maskUnits", masker->MaskUnits());
WriteNameValuePair(ts, "maskContentUnits", masker->MaskContentUnits()); WriteNameValuePair(ts, "maskContentUnits", masker->MaskContentUnits());
ts << "\n"; ts << "\n";
} else if (resource->ResourceType() == kFilterResourceType) { } else if (resource->ResourceType() == kFilterResourceType) {
LayoutSVGResourceFilter* filter = ToLayoutSVGResourceFilter(resource); auto* filter = To<LayoutSVGResourceFilter>(resource);
WriteNameValuePair(ts, "filterUnits", filter->FilterUnits()); WriteNameValuePair(ts, "filterUnits", filter->FilterUnits());
WriteNameValuePair(ts, "primitiveUnits", filter->PrimitiveUnits()); WriteNameValuePair(ts, "primitiveUnits", filter->PrimitiveUnits());
ts << "\n"; ts << "\n";
...@@ -596,10 +596,10 @@ void WriteSVGResourceContainer(WTF::TextStream& ts, ...@@ -596,10 +596,10 @@ void WriteSVGResourceContainer(WTF::TextStream& ts,
last_effect->ExternalRepresentation(ts, indent + 1); last_effect->ExternalRepresentation(ts, indent + 1);
} else if (resource->ResourceType() == kClipperResourceType) { } else if (resource->ResourceType() == kClipperResourceType) {
WriteNameValuePair(ts, "clipPathUnits", WriteNameValuePair(ts, "clipPathUnits",
ToLayoutSVGResourceClipper(resource)->ClipPathUnits()); To<LayoutSVGResourceClipper>(resource)->ClipPathUnits());
ts << "\n"; ts << "\n";
} else if (resource->ResourceType() == kMarkerResourceType) { } else if (resource->ResourceType() == kMarkerResourceType) {
LayoutSVGResourceMarker* marker = ToLayoutSVGResourceMarker(resource); auto* marker = To<LayoutSVGResourceMarker>(resource);
WriteNameValuePair(ts, "markerUnits", marker->MarkerUnits()); WriteNameValuePair(ts, "markerUnits", marker->MarkerUnits());
ts << " [ref at " << marker->ReferencePoint() << "]"; ts << " [ref at " << marker->ReferencePoint() << "]";
ts << " [angle="; ts << " [angle=";
...@@ -643,8 +643,7 @@ void WriteSVGResourceContainer(WTF::TextStream& ts, ...@@ -643,8 +643,7 @@ void WriteSVGResourceContainer(WTF::TextStream& ts,
ts << " [start=" << gradient->StartPoint(attributes) ts << " [start=" << gradient->StartPoint(attributes)
<< "] [end=" << gradient->EndPoint(attributes) << "]\n"; << "] [end=" << gradient->EndPoint(attributes) << "]\n";
} else if (resource->ResourceType() == kRadialGradientResourceType) { } else if (resource->ResourceType() == kRadialGradientResourceType) {
LayoutSVGResourceRadialGradient* gradient = auto* gradient = To<LayoutSVGResourceRadialGradient>(resource);
ToLayoutSVGResourceRadialGradient(resource);
// Dump final results that are used for layout. No use in asking // Dump final results that are used for layout. No use in asking
// SVGGradientElement for its gradientUnits(), as it may link to other // SVGGradientElement for its gradientUnits(), as it may link to other
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment