Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1474)

Unified Diff: Source/core/svg/properties/NewSVGListPropertyTearOffHelper.h

Issue 112003003: [SVG] SVGLength{,List} migration to new SVG property impl. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: revert aggressive svgAttributeChanged, add NeedsRebaseline Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/svg/properties/NewSVGListPropertyHelper.h ('k') | Source/core/svg/properties/NewSVGProperty.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/svg/properties/NewSVGListPropertyTearOffHelper.h
diff --git a/Source/core/svg/properties/NewSVGListPropertyTearOffHelper.h b/Source/core/svg/properties/NewSVGListPropertyTearOffHelper.h
index 18fb7d04d97e2224755a7103efee3c1f5f0d6135..bcdc16e00db004c35855b8d741a3d4346fb726dc 100644
--- a/Source/core/svg/properties/NewSVGListPropertyTearOffHelper.h
+++ b/Source/core/svg/properties/NewSVGListPropertyTearOffHelper.h
@@ -55,7 +55,7 @@ public:
void clear(ExceptionState& exceptionState)
{
if (toDerived()->isImmutable()) {
- exceptionState.throwDOMException(NoModificationAllowedError, ExceptionMessages::failedToExecute("clear", Derived::propertyTypeName(), "The object is read-only."));
+ exceptionState.throwDOMException(NoModificationAllowedError, "The object is read-only.");
return;
}
@@ -67,7 +67,7 @@ public:
RefPtr<ItemTearOffType> item = passItem;
if (toDerived()->isImmutable()) {
- exceptionState.throwDOMException(NoModificationAllowedError, ExceptionMessages::failedToExecute("initialize", Derived::propertyTypeName(), "The object is read-only."));
+ exceptionState.throwDOMException(NoModificationAllowedError, "The object is read-only.");
return 0;
}
@@ -83,6 +83,7 @@ public:
ownerList = Derived::upcastFrom(item->ownerList())->target();
RefPtr<ItemPropertyType> value = toDerived()->target()->initialize(item->target(), ownerList);
+ item->setOwnerList(this);
toDerived()->commitChange();
return createItemTearOff(value.release());
@@ -99,12 +100,12 @@ public:
RefPtr<ItemTearOffType> item = passItem;
if (toDerived()->isImmutable()) {
- exceptionState.throwDOMException(NoModificationAllowedError, ExceptionMessages::failedToExecute("insertItemBefore", Derived::propertyTypeName(), "The object is read-only."));
+ exceptionState.throwDOMException(NoModificationAllowedError, "The object is read-only.");
return 0;
}
if (!item) {
- exceptionState.throwTypeError(ExceptionMessages::failedToExecute("insertItemBefore", Derived::propertyTypeName(), "An invalid item cannot be inserted to a list."));
+ exceptionState.throwTypeError("An invalid item cannot be inserted to a list.");
return 0;
}
@@ -115,6 +116,7 @@ public:
ownerList = Derived::upcastFrom(item->ownerList())->target();
RefPtr<ItemPropertyType> value = toDerived()->target()->insertItemBefore(item->target(), ownerList, index);
+ item->setOwnerList(this);
toDerived()->commitChange();
return createItemTearOff(value.release());
@@ -125,12 +127,12 @@ public:
RefPtr<ItemTearOffType> item = passItem;
if (toDerived()->isImmutable()) {
- exceptionState.throwDOMException(NoModificationAllowedError, ExceptionMessages::failedToExecute("replaceItem", Derived::propertyTypeName(), "The object is read-only."));
+ exceptionState.throwDOMException(NoModificationAllowedError, "The object is read-only.");
return 0;
}
if (!item) {
- exceptionState.throwTypeError(ExceptionMessages::failedToExecute("replaceItem", Derived::propertyTypeName(), "An invalid item cannot be replaced with an existing list item."));
+ exceptionState.throwTypeError("An invalid item cannot be replaced with an existing list item.");
return 0;
}
@@ -141,6 +143,7 @@ public:
ownerList = Derived::upcastFrom(item->ownerList())->target();
RefPtr<ItemPropertyType> value = toDerived()->target()->replaceItem(item->target(), ownerList, index, exceptionState);
+ item->setOwnerList(this);
toDerived()->commitChange();
return createItemTearOff(value.release());
@@ -151,7 +154,7 @@ public:
RefPtr<ItemPropertyType> value = toDerived()->target()->removeItem(index, exceptionState);
toDerived()->commitChange();
- return createItemTearOff(value.release());
+ return createItemTearOff(value.release(), false);
}
PassRefPtr<ItemTearOffType> appendItem(PassRefPtr<ItemTearOffType> passItem, ExceptionState& exceptionState)
@@ -159,12 +162,12 @@ public:
RefPtr<ItemTearOffType> item = passItem;
if (toDerived()->isImmutable()) {
- exceptionState.throwDOMException(NoModificationAllowedError, ExceptionMessages::failedToExecute("appendItem", Derived::propertyTypeName(), "The object is read-only."));
+ exceptionState.throwDOMException(NoModificationAllowedError, "The object is read-only.");
return 0;
}
if (!item) {
- exceptionState.throwTypeError(ExceptionMessages::failedToExecute("appendItem", Derived::propertyTypeName(), "An invalid item cannot be appended to a list."));
+ exceptionState.throwTypeError("An invalid item cannot be appended to a list.");
return 0;
}
@@ -175,6 +178,7 @@ public:
ownerList = Derived::upcastFrom(item->ownerList())->target();
RefPtr<ItemPropertyType> value = toDerived()->target()->appendItem(item->target(), ownerList);
+ item->setOwnerList(this);
toDerived()->commitChange();
return createItemTearOff(value.release());
@@ -206,18 +210,26 @@ protected:
return newItem.release();
}
- PassRefPtr<ItemTearOffType> createItemTearOff(PassRefPtr<ItemPropertyType> value)
+ PassRefPtr<ItemTearOffType> createItemTearOff(PassRefPtr<ItemPropertyType> value, bool setOwnerList = true)
{
if (!value)
return 0;
RefPtr<ItemTearOffType> tearoff = ItemTearOffType::create(value, toDerived()->contextElement(), toDerived()->propertyIsAnimVal(), toDerived()->attributeName());
- tearoff->setBelongingList(this);
+ if (setOwnerList)
+ tearoff->setOwnerList(this);
return tearoff.release();
}
private:
Derived* toDerived() { return static_cast<Derived*>(this); }
+
+ static PassRefPtr<Derived> upcastFrom(PassRefPtr<NewSVGPropertyTearOffBase> passBase)
+ {
+ RefPtr<NewSVGPropertyTearOffBase> base = passBase;
+ ASSERT(base->type() == ListPropertyType::classType());
+ return static_pointer_cast<Derived>(base.release());
+ }
};
}
« no previous file with comments | « Source/core/svg/properties/NewSVGListPropertyHelper.h ('k') | Source/core/svg/properties/NewSVGProperty.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698