Bug 366946 - WRONG_DOCUMENT_ERR not thrown for Range.compareBoundaryPoints
p=Ryan Jones <sciguyryan@gmail.com> r+sr=peterv
This commit is contained in:
Родитель
448ce7cc20
Коммит
aae78ae840
|
@ -52,13 +52,19 @@ public:
|
|||
NS_DECLARE_STATIC_IID_ACCESSOR(NS_IRANGE_IID)
|
||||
|
||||
nsIRange()
|
||||
: mStartOffset(0),
|
||||
: mRoot(nsnull),
|
||||
mStartOffset(0),
|
||||
mEndOffset(0),
|
||||
mIsPositioned(PR_FALSE),
|
||||
mIsDetached(PR_FALSE)
|
||||
{
|
||||
}
|
||||
|
||||
nsINode* GetRoot()
|
||||
{
|
||||
return mRoot;
|
||||
}
|
||||
|
||||
nsINode* GetStartParent()
|
||||
{
|
||||
return mStartParent;
|
||||
|
@ -100,6 +106,7 @@ public:
|
|||
virtual void Reset() = 0;
|
||||
|
||||
protected:
|
||||
nsINode* mRoot;
|
||||
nsCOMPtr<nsINode> mStartParent;
|
||||
nsCOMPtr<nsINode> mEndParent;
|
||||
PRInt32 mStartOffset;
|
||||
|
|
|
@ -1236,6 +1236,9 @@ nsRange::CompareBoundaryPoints(PRUint16 aHow, nsIDOMRange* aOtherRange,
|
|||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
}
|
||||
|
||||
if (mRoot != otherRange->GetRoot())
|
||||
return NS_ERROR_DOM_WRONG_DOCUMENT_ERR;
|
||||
|
||||
*aCmpRet = nsContentUtils::ComparePoints(ourNode, ourOffset,
|
||||
otherNode, otherOffset);
|
||||
|
||||
|
|
|
@ -81,7 +81,6 @@ class nsRange : public nsIRange,
|
|||
{
|
||||
public:
|
||||
nsRange()
|
||||
: mRoot(nsnull)
|
||||
{
|
||||
}
|
||||
virtual ~nsRange();
|
||||
|
@ -130,8 +129,6 @@ public:
|
|||
PRBool *outNodeAfter);
|
||||
|
||||
protected:
|
||||
nsINode* mRoot;
|
||||
|
||||
void DoSetRange(nsINode* aStartN, PRInt32 aStartOffset,
|
||||
nsINode* aEndN, PRInt32 aEndOffset,
|
||||
nsINode* aRoot);
|
||||
|
|
Загрузка…
Ссылка в новой задаче