Bug 824218 - Remove unimplemented SVG features r=longsonr

This commit is contained in:
David Zbarsky 2013-01-09 18:02:47 -05:00
parent 60c7a3b594
commit 84b94a5b82
18 changed files with 29 additions and 308 deletions

View File

@ -257,21 +257,6 @@ SVGSVGElement::Height()
return mLengthAttributes[ATTR_HEIGHT].ToDOMAnimatedLength(this);
}
/* readonly attribute nsIDOMSVGRect viewport; */
NS_IMETHODIMP
SVGSVGElement::GetViewport(nsIDOMSVGRect * *aViewport)
{
// XXX
return NS_ERROR_NOT_IMPLEMENTED;
}
already_AddRefed<nsIDOMSVGRect>
SVGSVGElement::GetViewport(ErrorResult& rv)
{
rv.Throw(NS_ERROR_NOT_IMPLEMENTED);
return nullptr;
}
/* readonly attribute float pixelUnitToMillimeterX; */
NS_IMETHODIMP
SVGSVGElement::GetPixelUnitToMillimeterX(float *aPixelUnitToMillimeterX)
@ -340,21 +325,6 @@ SVGSVGElement::UseCurrentView()
return mUseCurrentView;
}
/* readonly attribute nsIDOMSVGViewSpec currentView; */
NS_IMETHODIMP
SVGSVGElement::GetCurrentView(nsIDOMSVGViewSpec * *aCurrentView)
{
NS_NOTYETIMPLEMENTED("SVGSVGElement::GetCurrentView");
return NS_ERROR_NOT_IMPLEMENTED;
}
already_AddRefed<nsIDOMSVGViewSpec>
SVGSVGElement::GetCurrentView(ErrorResult& rv)
{
rv.Throw(NS_ERROR_NOT_IMPLEMENTED);
return nullptr;
}
/* attribute float currentScale; */
NS_IMETHODIMP
SVGSVGElement::GetCurrentScale(float *aCurrentScale)
@ -578,111 +548,6 @@ SVGSVGElement::SetCurrentTime(float seconds, ErrorResult &rv)
rv.Throw(NS_ERROR_NOT_IMPLEMENTED);
}
/* nsIDOMNodeList getIntersectionList (in nsIDOMSVGRect rect, in nsIDOMSVGElement referenceElement); */
NS_IMETHODIMP
SVGSVGElement::GetIntersectionList(nsIDOMSVGRect *rect,
nsIDOMSVGElement *referenceElement,
nsIDOMNodeList **_retval)
{
// null check when implementing - this method can be used by scripts!
// if (!rect || !referenceElement)
// return NS_ERROR_DOM_SVG_WRONG_TYPE_ERR;
NS_NOTYETIMPLEMENTED("SVGSVGElement::GetIntersectionList");
return NS_ERROR_NOT_IMPLEMENTED;
}
already_AddRefed<nsINodeList>
SVGSVGElement::GetIntersectionList(nsIDOMSVGRect* rect, nsSVGElement& element, ErrorResult& rv)
{
rv.Throw(NS_ERROR_NOT_IMPLEMENTED);
return nullptr;
}
/* nsIDOMNodeList getEnclosureList (in nsIDOMSVGRect rect, in nsIDOMSVGElement referenceElement); */
NS_IMETHODIMP
SVGSVGElement::GetEnclosureList(nsIDOMSVGRect *rect,
nsIDOMSVGElement *referenceElement,
nsIDOMNodeList **_retval)
{
// null check when implementing - this method can be used by scripts!
// if (!rect || !referenceElement)
// return NS_ERROR_DOM_SVG_WRONG_TYPE_ERR;
NS_NOTYETIMPLEMENTED("SVGSVGElement::GetEnclosureList");
return NS_ERROR_NOT_IMPLEMENTED;
}
already_AddRefed<nsINodeList>
SVGSVGElement::GetEnclosureList(nsIDOMSVGRect *rect,
nsSVGElement& referenceElement,
ErrorResult& rv)
{
rv.Throw(NS_ERROR_NOT_IMPLEMENTED);
return nullptr;
}
/* boolean checkIntersection (in nsIDOMSVGElement element, in nsIDOMSVGRect rect); */
NS_IMETHODIMP
SVGSVGElement::CheckIntersection(nsIDOMSVGElement *element,
nsIDOMSVGRect *rect,
bool *_retval)
{
// null check when implementing - this method can be used by scripts!
// if (!element || !rect)
// return NS_ERROR_DOM_SVG_WRONG_TYPE_ERR;
NS_NOTYETIMPLEMENTED("SVGSVGElement::CheckIntersection");
return NS_ERROR_NOT_IMPLEMENTED;
}
bool
SVGSVGElement::CheckIntersection(nsSVGElement& element,
nsIDOMSVGRect* rect,
ErrorResult& rv)
{
rv.Throw(NS_ERROR_NOT_IMPLEMENTED);
return nullptr;
}
/* boolean checkEnclosure (in nsIDOMSVGElement element, in nsIDOMSVGRect rect); */
NS_IMETHODIMP
SVGSVGElement::CheckEnclosure(nsIDOMSVGElement *element,
nsIDOMSVGRect *rect,
bool *_retval)
{
// null check when implementing - this method can be used by scripts!
// if (!element || !rect)
// return NS_ERROR_DOM_SVG_WRONG_TYPE_ERR;
NS_NOTYETIMPLEMENTED("SVGSVGElement::CheckEnclosure");
return NS_ERROR_NOT_IMPLEMENTED;
}
bool
SVGSVGElement::CheckEnclosure(nsSVGElement& element,
nsIDOMSVGRect* rect,
ErrorResult& rv)
{
rv.Throw(NS_ERROR_NOT_IMPLEMENTED);
return nullptr;
}
/* void deSelectAll (); */
NS_IMETHODIMP
SVGSVGElement::DeSelectAll()
{
NS_NOTYETIMPLEMENTED("SVGSVGElement::DeSelectAll");
return NS_ERROR_NOT_IMPLEMENTED;
}
bool
SVGSVGElement::DeselectAll(ErrorResult& rv)
{
rv.Throw(NS_ERROR_NOT_IMPLEMENTED);
return nullptr;
}
/* nsIDOMSVGNumber createSVGNumber (); */
NS_IMETHODIMP
SVGSVGElement::CreateSVGNumber(nsIDOMSVGNumber **_retval)

View File

@ -267,13 +267,11 @@ public:
already_AddRefed<nsIDOMSVGAnimatedLength> Y();
already_AddRefed<nsIDOMSVGAnimatedLength> Width();
already_AddRefed<nsIDOMSVGAnimatedLength> Height();
already_AddRefed<nsIDOMSVGRect> GetViewport(ErrorResult& rv);
float PixelUnitToMillimeterX();
float PixelUnitToMillimeterY();
float ScreenPixelToMillimeterX();
float ScreenPixelToMillimeterY();
bool UseCurrentView();
already_AddRefed<nsIDOMSVGViewSpec> GetCurrentView(ErrorResult& rv);
// XPIDL SetCurrentScale and SetCurrentTranslate are alright to use because
// they only throw on non-finite floats and we don't allow those.
float CurrentScale();
@ -286,15 +284,6 @@ public:
bool AnimationsPaused(ErrorResult& rv);
float GetCurrentTime(ErrorResult& rv);
void SetCurrentTime(float seconds, ErrorResult& rv);
already_AddRefed<nsINodeList> GetIntersectionList(nsIDOMSVGRect* rect,
nsSVGElement& element,
ErrorResult& rv);
already_AddRefed<nsINodeList> GetEnclosureList(nsIDOMSVGRect *rect,
nsSVGElement& referenceElement,
ErrorResult& rv);
bool CheckIntersection(nsSVGElement& element, nsIDOMSVGRect* rect, ErrorResult& rv);
bool CheckEnclosure(nsSVGElement& element, nsIDOMSVGRect* rect, ErrorResult& rv);
bool DeselectAll(ErrorResult& rv);
already_AddRefed<nsIDOMSVGNumber> CreateSVGNumber();
already_AddRefed<nsIDOMSVGLength> CreateSVGLength();
already_AddRefed<SVGAngle> CreateSVGAngle();

View File

@ -28,34 +28,6 @@ NS_IMPL_RELEASE_INHERITED(SVGTextContentElement, SVGTextContentElementBase)
NS_INTERFACE_MAP_BEGIN(SVGTextContentElement)
NS_INTERFACE_MAP_END_INHERITING(SVGTextContentElementBase)
/* readonly attribute nsIDOMSVGAnimatedLength textLength; */
NS_IMETHODIMP SVGTextContentElement::GetTextLength(nsIDOMSVGAnimatedLength * *aTextLength)
{
NS_NOTYETIMPLEMENTED("SVGTextContentElement::GetTextLength");
return NS_ERROR_NOT_IMPLEMENTED;
}
nsCOMPtr<nsIDOMSVGAnimatedLength>
SVGTextContentElement::GetTextLength(ErrorResult& rv)
{
rv.Throw(NS_ERROR_NOT_IMPLEMENTED);
return nullptr;
}
/* readonly attribute nsIDOMSVGAnimatedEnumeration lengthAdjust; */
NS_IMETHODIMP SVGTextContentElement::GetLengthAdjust(nsIDOMSVGAnimatedEnumeration * *aLengthAdjust)
{
NS_NOTYETIMPLEMENTED("SVGTextContentElement::GetLengthAdjust");
return NS_ERROR_NOT_IMPLEMENTED;
}
nsCOMPtr<nsIDOMSVGAnimatedEnumeration>
SVGTextContentElement::GetLengthAdjust(ErrorResult& rv)
{
rv.Throw(NS_ERROR_NOT_IMPLEMENTED);
return nullptr;
}
/* long getNumberOfChars (); */
NS_IMETHODIMP SVGTextContentElement::GetNumberOfChars(int32_t *_retval)
{
@ -223,19 +195,5 @@ SVGTextContentElement::GetCharNumAtPosition(nsISVGPoint& aPoint)
return metrics ? metrics->GetCharNumAtPosition(&aPoint) : -1;
}
/* void selectSubString (in unsigned long charnum, in unsigned long nchars); */
NS_IMETHODIMP SVGTextContentElement::SelectSubString(uint32_t charnum, uint32_t nchars)
{
NS_NOTYETIMPLEMENTED("nsSVGTextContentElement::SelectSubString");
return NS_ERROR_NOT_IMPLEMENTED;
}
void
SVGTextContentElement::SelectSubString(uint32_t charnum, uint32_t nchars, ErrorResult& rv)
{
rv.Throw(NS_ERROR_NOT_IMPLEMENTED);
}
} // namespace dom
} // namespace mozilla

View File

@ -27,8 +27,6 @@ public:
using FragmentOrElement::TextLength;
// WebIDL
nsCOMPtr<nsIDOMSVGAnimatedLength> GetTextLength(ErrorResult& rv);
nsCOMPtr<nsIDOMSVGAnimatedEnumeration> GetLengthAdjust(ErrorResult& rv);
int32_t GetNumberOfChars();
float GetComputedTextLength();
float GetSubStringLength(uint32_t charnum, uint32_t nchars, ErrorResult& rv);
@ -37,7 +35,6 @@ public:
already_AddRefed<nsIDOMSVGRect> GetExtentOfChar(uint32_t charnum, ErrorResult& rv);
float GetRotationOfChar(uint32_t charnum, ErrorResult& rv);
int32_t GetCharNumAtPosition(nsISVGPoint& point);
void SelectSubString(uint32_t charnum, uint32_t nchars, ErrorResult& rv);
protected:

View File

@ -89,27 +89,6 @@ NS_INTERFACE_MAP_END_INHERITING(nsDOMUIEvent)
//----------------------------------------------------------------------
// nsIDOMSVGZoomEvent methods:
/* readonly attribute SVGRect zoomRectScreen; */
NS_IMETHODIMP nsDOMSVGZoomEvent::GetZoomRectScreen(nsIDOMSVGRect **aZoomRectScreen)
{
// The spec says about this attribute:
//
// The specified zoom rectangle in screen units.
// The object itself and its contents are both readonly.
//
// This is so badly underspecified we don't implement it. It was probably
// thrown in without much thought as a way of finding the zoom box ASV style
// zooming uses. I don't see how this is useful though since SVGZoom event's
// get dispatched *after* the zoom level has changed.
//
// Be sure to use NS_NewSVGReadonlyRect and not NS_NewSVGRect if we
// eventually do implement this!
*aZoomRectScreen = nullptr;
NS_NOTYETIMPLEMENTED("nsDOMSVGZoomEvent::GetZoomRectScreen");
return NS_ERROR_NOT_IMPLEMENTED;
}
/* readonly attribute float previousScale; */
NS_IMETHODIMP
nsDOMSVGZoomEvent::GetPreviousScale(float *aPreviousScale)

View File

@ -120,25 +120,6 @@ nsSVGElement::GetStyle(ErrorResult& rv)
return style;
}
/* nsIDOMCSSValue getPresentationAttribute (in DOMString name); */
NS_IMETHODIMP
nsSVGElement::GetPresentationAttribute(const nsAString& aName,
nsIDOMCSSValue** aReturn)
{
// Let's not implement this just yet. The CSSValue interface has been
// deprecated by the CSS WG.
// http://lists.w3.org/Archives/Public/www-style/2003Oct/0347.html
return NS_ERROR_NOT_IMPLEMENTED;
}
already_AddRefed<CSSValue>
nsSVGElement::GetPresentationAttribute(const nsAString& aName, ErrorResult& rv)
{
rv.Throw(NS_ERROR_NOT_IMPLEMENTED);
return nullptr;
}
//----------------------------------------------------------------------
// nsSVGElement methods

View File

@ -124,7 +124,6 @@ public:
NS_IMETHOD GetViewportElement(nsIDOMSVGElement** aViewportElement);
NS_IMETHOD GetClassName(nsIDOMSVGAnimatedString** aClassName);
NS_IMETHOD GetStyle(nsIDOMCSSStyleDeclaration** aStyle);
NS_IMETHOD GetPresentationAttribute(const nsAString& aName, nsIDOMCSSValue** aReturn);
// Gets the element that establishes the rectangular viewport against which
// we should resolve percentage lengths (our "coordinate context"). Returns

View File

@ -326,12 +326,6 @@ NS_IMETHODIMP nsSVGPathElement::GetPathSegList(nsISupports * *aPathSegList)
return *aPathSegList ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
}
/* readonly attribute DOMSVGPathSegList normalizedPathSegList; */
NS_IMETHODIMP nsSVGPathElement::GetNormalizedPathSegList(nsISupports * *aNormalizedPathSegList)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* readonly attribute DOMSVGPathSegList animatedPathSegList; */
NS_IMETHODIMP nsSVGPathElement::GetAnimatedPathSegList(nsISupports * *aAnimatedPathSegList)
{
@ -341,12 +335,6 @@ NS_IMETHODIMP nsSVGPathElement::GetAnimatedPathSegList(nsISupports * *aAnimatedP
return *aAnimatedPathSegList ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
}
/* readonly attribute DOMSVGPathSegList animatedNormalizedPathSegList; */
NS_IMETHODIMP nsSVGPathElement::GetAnimatedNormalizedPathSegList(nsISupports * *aAnimatedNormalizedPathSegList)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
//----------------------------------------------------------------------
// nsIContent methods

View File

@ -80,7 +80,6 @@ XPIDLSRCS = \
nsIDOMSVGUnitTypes.idl \
nsIDOMSVGUseElement.idl \
nsIDOMSVGViewElement.idl \
nsIDOMSVGViewSpec.idl \
nsIDOMSVGZoomAndPan.idl \
nsIDOMSVGZoomEvent.idl \
$(NULL)

View File

@ -9,8 +9,8 @@
interface nsIDOMSVGAnimatedPathData : nsISupports
{
readonly attribute nsISupports pathSegList;
readonly attribute nsISupports normalizedPathSegList;
// readonly attribute nsISupports normalizedPathSegList;
readonly attribute nsISupports animatedPathSegList;
readonly attribute nsISupports animatedNormalizedPathSegList;
// readonly attribute nsISupports animatedNormalizedPathSegList;
};

View File

@ -22,5 +22,6 @@ interface nsIDOMSVGElement : nsIDOMElement
readonly attribute nsIDOMSVGAnimatedString className;
readonly attribute nsIDOMCSSStyleDeclaration style;
nsIDOMCSSValue getPresentationAttribute(in DOMString name);
// Not implemented
// nsIDOMCSSValue getPresentationAttribute(in DOMString name);
};

View File

@ -7,7 +7,6 @@
interface nsIDOMSVGAnimatedLength;
interface nsIDOMSVGRect;
interface nsIDOMSVGViewSpec;
interface nsIDOMSVGNumber;
interface nsIDOMSVGLength;
@ -43,13 +42,13 @@ interface nsIDOMSVGSVGElement
readonly attribute nsIDOMSVGAnimatedLength y;
readonly attribute nsIDOMSVGAnimatedLength width;
readonly attribute nsIDOMSVGAnimatedLength height;
readonly attribute nsIDOMSVGRect viewport;
// readonly attribute nsIDOMSVGRect viewport;
readonly attribute float pixelUnitToMillimeterX;
readonly attribute float pixelUnitToMillimeterY;
readonly attribute float screenPixelToMillimeterX;
readonly attribute float screenPixelToMillimeterY;
readonly attribute boolean useCurrentView;
readonly attribute nsIDOMSVGViewSpec currentView;
// readonly attribute nsIDOMSVGViewSpec currentView;
attribute float currentScale;
// raises DOMException on setting
// SVGPoint
@ -65,12 +64,14 @@ interface nsIDOMSVGSVGElement
boolean animationsPaused();
float getCurrentTime();
void setCurrentTime(in float seconds);
/*
nsIDOMNodeList getIntersectionList(in nsIDOMSVGRect rect,
in nsIDOMSVGElement referenceElement);
nsIDOMNodeList getEnclosureList(in nsIDOMSVGRect rect, in nsIDOMSVGElement referenceElement);
boolean checkIntersection(in nsIDOMSVGElement element, in nsIDOMSVGRect rect);
boolean checkEnclosure(in nsIDOMSVGElement element, in nsIDOMSVGRect rect);
void deSelectAll();
*/
nsIDOMSVGNumber createSVGNumber();
nsIDOMSVGLength createSVGLength();
// SVGAngle

View File

@ -32,8 +32,9 @@ interface nsIDOMSVGTextContentElement
const unsigned short LENGTHADJUST_SPACING = 1;
const unsigned short LENGTHADJUST_SPACINGANDGLYPHS = 2;
readonly attribute nsIDOMSVGAnimatedLength textLength;
readonly attribute nsIDOMSVGAnimatedEnumeration lengthAdjust;
// Not implemented
// readonly attribute nsIDOMSVGAnimatedLength textLength;
// readonly attribute nsIDOMSVGAnimatedEnumeration lengthAdjust;
long getNumberOfChars();
float getComputedTextLength();
@ -50,6 +51,8 @@ interface nsIDOMSVGTextContentElement
float getRotationOfChar(in unsigned long charnum);
// raises(DOMException); SVGPoint
long getCharNumAtPosition(in nsISupports point);
void selectSubString(in unsigned long charnum, in unsigned long nchars);
// Not implemented
// void selectSubString(in unsigned long charnum, in unsigned long nchars);
// raises(DOMException);
};

View File

@ -1,31 +0,0 @@
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsIDOMSVGZoomAndPan.idl"
interface nsIDOMSVGElement;
[scriptable, uuid(ede34b03-57b6-45bf-a259-3550b5697286)]
interface nsIDOMSVGViewSpec : nsIDOMSVGZoomAndPan
/*
The SVG DOM makes use of multiple interface inheritance.
Since XPCOM only supports single interface inheritance,
the best thing that we can do is to promise that whenever
an object implements _this_ interface it will also
implement the following interfaces. (We then have to QI to
hop between them.)
nsIDOMSVGFitToViewBox
*/
{
// SVGTransformList
readonly attribute nsISupports transform;
readonly attribute nsIDOMSVGElement viewTarget;
readonly attribute DOMString viewBoxString;
readonly attribute DOMString preserveAspectRatioString;
readonly attribute DOMString transformString;
readonly attribute DOMString viewTargetString;
};

View File

@ -15,7 +15,8 @@ interface nsIDOMSVGRect;
[scriptable, builtinclass, uuid(9cf032c6-8485-4bde-90d4-0c8bbff27a12)]
interface nsIDOMSVGZoomEvent : nsIDOMUIEvent
{
readonly attribute nsIDOMSVGRect zoomRectScreen;
// Not implemented
// readonly attribute nsIDOMSVGRect zoomRectScreen;
readonly attribute float previousScale;
// SVGPoint
readonly attribute nsISupports previousTranslate;

View File

@ -21,8 +21,9 @@ interface SVGElement : Element {
[Throws]
readonly attribute CSSStyleDeclaration style;
[Throws] // because not implemented
CSSValue? getPresentationAttribute(DOMString name);
// The CSSValue interface has been deprecated by the CSS WG.
// http://lists.w3.org/Archives/Public/www-style/2003Oct/0347.html
// CSSValue? getPresentationAttribute(DOMString name);
/*[SetterThrows]
attribute DOMString xmllang;

View File

@ -22,15 +22,13 @@ interface SVGSVGElement : SVGGraphicsElement {
readonly attribute SVGAnimatedLength y;
readonly attribute SVGAnimatedLength width;
readonly attribute SVGAnimatedLength height;
[Throws] // because not implemented
readonly attribute SVGRect viewport;
// readonly attribute SVGRect viewport;
readonly attribute float pixelUnitToMillimeterX;
readonly attribute float pixelUnitToMillimeterY;
readonly attribute float screenPixelToMillimeterX;
readonly attribute float screenPixelToMillimeterY;
readonly attribute boolean useCurrentView;
[Throws] // because not implemented
readonly attribute SVGViewSpec currentView;
// readonly attribute SVGViewSpec currentView;
attribute float currentScale;
readonly attribute SVGPoint currentTranslate;
@ -49,16 +47,11 @@ interface SVGSVGElement : SVGGraphicsElement {
float getCurrentTime();
[Throws]
void setCurrentTime(float seconds);
[Throws] // because not implemented
NodeList getIntersectionList(SVGRect rect, SVGElement referenceElement);
[Throws] // because not implemented
NodeList getEnclosureList(SVGRect rect, SVGElement referenceElement);
[Throws] // because not implemented
boolean checkIntersection(SVGElement element, SVGRect rect);
[Throws] // because not implemented
boolean checkEnclosure(SVGElement element, SVGRect rect);
[Throws] // because not implemented
void deselectAll();
// NodeList getIntersectionList(SVGRect rect, SVGElement referenceElement);
// NodeList getEnclosureList(SVGRect rect, SVGElement referenceElement);
// boolean checkIntersection(SVGElement element, SVGRect rect);
// boolean checkEnclosure(SVGElement element, SVGRect rect);
// void deselectAll();
[Creator]
SVGNumber createSVGNumber();
[Creator]

View File

@ -20,10 +20,8 @@ interface SVGTextContentElement : SVGGraphicsElement {
const unsigned short LENGTHADJUST_SPACING = 1;
const unsigned short LENGTHADJUST_SPACINGANDGLYPHS = 2;
[Throws] // because not implemented
readonly attribute SVGAnimatedLength textLength;
[Throws] // because not implemented
readonly attribute SVGAnimatedEnumeration lengthAdjust;
// readonly attribute SVGAnimatedLength textLength;
// readonly attribute SVGAnimatedEnumeration lengthAdjust;
long getNumberOfChars();
float getComputedTextLength();
@ -38,7 +36,6 @@ interface SVGTextContentElement : SVGGraphicsElement {
[Throws]
float getRotationOfChar(unsigned long charnum);
long getCharNumAtPosition(SVGPoint point);
[Throws]
void selectSubString(unsigned long charnum, unsigned long nchars);
// void selectSubString(unsigned long charnum, unsigned long nchars);
};