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 {
FloatRect local_clip_bounds_;
};
DEFINE_LAYOUT_SVG_RESOURCE_TYPE_CASTS(LayoutSVGResourceClipper,
kClipperResourceType);
template <>
struct DowncastTraits<LayoutSVGResourceClipper> {
static bool AllowFrom(const LayoutSVGResourceContainer& container) {
return container.ResourceType() == kClipperResourceType;
}
};
inline LayoutSVGResourceClipper* GetSVGResourceAsType(
const ClipPathOperation* clip_path_operation) {
......
......@@ -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>
inline bool IsResourceOfType(const LayoutSVGResourceContainer* container) {
return container->ResourceType() == ContainerType::kResourceType;
......
......@@ -64,8 +64,12 @@ class LayoutSVGResourceFilter final : public LayoutSVGResourceContainer {
// is a single url(...) reference.
LayoutSVGResourceFilter* GetFilterResourceForSVG(const ComputedStyle&);
DEFINE_LAYOUT_SVG_RESOURCE_TYPE_CASTS(LayoutSVGResourceFilter,
kFilterResourceType);
template <>
struct DowncastTraits<LayoutSVGResourceFilter> {
static bool AllowFrom(const LayoutSVGResourceContainer& container) {
return container.ResourceType() == kFilterResourceType;
}
};
} // namespace blink
......
......@@ -83,8 +83,12 @@ class LayoutSVGResourceMarker final : public LayoutSVGResourceContainer {
bool is_in_layout_;
};
DEFINE_LAYOUT_SVG_RESOURCE_TYPE_CASTS(LayoutSVGResourceMarker,
kMarkerResourceType);
template <>
struct DowncastTraits<LayoutSVGResourceMarker> {
static bool AllowFrom(const LayoutSVGResourceContainer& container) {
return container.ResourceType() == kMarkerResourceType;
}
};
} // namespace blink
......
......@@ -65,8 +65,12 @@ class LayoutSVGResourceMasker final : public LayoutSVGResourceContainer {
FloatRect mask_content_boundaries_;
};
DEFINE_LAYOUT_SVG_RESOURCE_TYPE_CASTS(LayoutSVGResourceMasker,
kMaskerResourceType);
template <>
struct DowncastTraits<LayoutSVGResourceMasker> {
static bool AllowFrom(const LayoutSVGResourceContainer& container) {
return container.ResourceType() == kMaskerResourceType;
}
};
} // namespace blink
......
......@@ -74,8 +74,12 @@ class LayoutSVGResourceRadialGradient final : public LayoutSVGResourceGradient {
}
};
DEFINE_LAYOUT_SVG_RESOURCE_TYPE_CASTS(LayoutSVGResourceRadialGradient,
kRadialGradientResourceType);
template <>
struct DowncastTraits<LayoutSVGResourceRadialGradient> {
static bool AllowFrom(const LayoutSVGResourceContainer& container) {
return container.ResourceType() == kRadialGradientResourceType;
}
};
} // namespace blink
......
......@@ -576,12 +576,12 @@ void WriteSVGResourceContainer(WTF::TextStream& ts,
DCHECK(resource);
if (resource->ResourceType() == kMaskerResourceType) {
LayoutSVGResourceMasker* masker = ToLayoutSVGResourceMasker(resource);
auto* masker = To<LayoutSVGResourceMasker>(resource);
WriteNameValuePair(ts, "maskUnits", masker->MaskUnits());
WriteNameValuePair(ts, "maskContentUnits", masker->MaskContentUnits());
ts << "\n";
} else if (resource->ResourceType() == kFilterResourceType) {
LayoutSVGResourceFilter* filter = ToLayoutSVGResourceFilter(resource);
auto* filter = To<LayoutSVGResourceFilter>(resource);
WriteNameValuePair(ts, "filterUnits", filter->FilterUnits());
WriteNameValuePair(ts, "primitiveUnits", filter->PrimitiveUnits());
ts << "\n";
......@@ -596,10 +596,10 @@ void WriteSVGResourceContainer(WTF::TextStream& ts,
last_effect->ExternalRepresentation(ts, indent + 1);
} else if (resource->ResourceType() == kClipperResourceType) {
WriteNameValuePair(ts, "clipPathUnits",
ToLayoutSVGResourceClipper(resource)->ClipPathUnits());
To<LayoutSVGResourceClipper>(resource)->ClipPathUnits());
ts << "\n";
} else if (resource->ResourceType() == kMarkerResourceType) {
LayoutSVGResourceMarker* marker = ToLayoutSVGResourceMarker(resource);
auto* marker = To<LayoutSVGResourceMarker>(resource);
WriteNameValuePair(ts, "markerUnits", marker->MarkerUnits());
ts << " [ref at " << marker->ReferencePoint() << "]";
ts << " [angle=";
......@@ -643,8 +643,7 @@ void WriteSVGResourceContainer(WTF::TextStream& ts,
ts << " [start=" << gradient->StartPoint(attributes)
<< "] [end=" << gradient->EndPoint(attributes) << "]\n";
} else if (resource->ResourceType() == kRadialGradientResourceType) {
LayoutSVGResourceRadialGradient* gradient =
ToLayoutSVGResourceRadialGradient(resource);
auto* gradient = To<LayoutSVGResourceRadialGradient>(resource);
// Dump final results that are used for layout. No use in asking
// 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