| Index: third_party/WebKit/Source/core/svg/SVGAnimatedHref.h
|
| diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedHref.h b/third_party/WebKit/Source/core/svg/SVGAnimatedHref.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..18ef03d2bbef16f8216b317c69efb3c47c1c6342
|
| --- /dev/null
|
| +++ b/third_party/WebKit/Source/core/svg/SVGAnimatedHref.h
|
| @@ -0,0 +1,60 @@
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef SVGAnimatedHref_h
|
| +#define SVGAnimatedHref_h
|
| +
|
| +#include "core/svg/SVGAnimatedString.h"
|
| +
|
| +namespace blink {
|
| +
|
| +// This is an "access wrapper" for the 'href' attribute. It holds one object
|
| +// for 'href' in the null/default NS and one for 'href' in the XLink NS. The
|
| +// internal objects are the ones added to an SVGElement's property map and
|
| +// hence any updates/synchronization/etc via the "attribute DOM" (setAttribute
|
| +// and friends) will operate on the internal objects, while users of 'href'
|
| +// will be using this interface (which essentially just selects one of the
|
| +// internal objects and forwards the operation to it.)
|
| +class SVGAnimatedHref final : public SVGAnimatedString {
|
| +public:
|
| + static PassRefPtrWillBeRawPtr<SVGAnimatedHref> create(SVGElement* contextElement);
|
| +
|
| + SVGString* baseValue() { return backingHref()->baseValue(); }
|
| + SVGString* currentValue() { return backingHref()->currentValue(); }
|
| + const SVGString* currentValue() const { return backingHref()->currentValue(); }
|
| +
|
| + // None of the below should be called on this interface.
|
| + SVGPropertyBase* currentValueBase() override;
|
| + const SVGPropertyBase& baseValueBase() const override;
|
| + bool isAnimating() const override;
|
| + PassRefPtrWillBeRawPtr<SVGPropertyBase> createAnimatedValue() override;
|
| + void setAnimatedValue(PassRefPtrWillBeRawPtr<SVGPropertyBase>) override;
|
| + void animationEnded() override;
|
| + SVGParsingError setBaseValueAsString(const String&) override;
|
| + bool needsSynchronizeAttribute() override;
|
| + void synchronizeAttribute() override;
|
| +
|
| + String baseVal() override;
|
| + void setBaseVal(const String&, ExceptionState&) override;
|
| + String animVal() override;
|
| +
|
| + bool isSpecified() const { return m_href->isSpecified() || m_xlinkHref->isSpecified(); }
|
| +
|
| + static bool isKnownAttribute(const QualifiedName&);
|
| + void addToPropertyMap(SVGElement*);
|
| +
|
| + DECLARE_VIRTUAL_TRACE();
|
| +
|
| +private:
|
| + explicit SVGAnimatedHref(SVGElement* contextElement);
|
| +
|
| + SVGAnimatedString* backingHref() const;
|
| +
|
| + RefPtrWillBeMember<SVGAnimatedString> m_href;
|
| + RefPtrWillBeMember<SVGAnimatedString> m_xlinkHref;
|
| +};
|
| +
|
| +} // namespace blink
|
| +
|
| +#endif // SVGAnimatedHref_h
|
|
|