Bug 1447889 part 9. Remove nsIDOMRange::CompareBoundaryPoints. r=mystor

MozReview-Commit-ID: 29swD9AoqoF
This commit is contained in:
Boris Zbarsky 2018-03-27 00:35:21 -04:00
Родитель 3906df8d57
Коммит 1731f12f9d
5 изменённых файлов: 47 добавлений и 57 удалений

Просмотреть файл

@ -2431,18 +2431,6 @@ nsRange::ExtractContents(ErrorResult& rv)
return fragment.forget();
}
NS_IMETHODIMP
nsRange::CompareBoundaryPoints(uint16_t aHow, nsIDOMRange* aOtherRange,
int16_t* aCmpRet)
{
nsRange* otherRange = static_cast<nsRange*>(aOtherRange);
NS_ENSURE_TRUE(otherRange, NS_ERROR_NULL_POINTER);
ErrorResult rv;
*aCmpRet = CompareBoundaryPoints(aHow, *otherRange, rv);
return rv.StealNSResult();
}
int16_t
nsRange::CompareBoundaryPoints(uint16_t aHow, nsRange& aOtherRange,
ErrorResult& rv)
@ -2456,25 +2444,25 @@ nsRange::CompareBoundaryPoints(uint16_t aHow, nsRange& aOtherRange,
uint32_t ourOffset, otherOffset;
switch (aHow) {
case nsIDOMRange::START_TO_START:
case RangeBinding::START_TO_START:
ourNode = mStart.Container();
ourOffset = mStart.Offset();
otherNode = aOtherRange.GetStartContainer();
otherOffset = aOtherRange.StartOffset();
break;
case nsIDOMRange::START_TO_END:
case RangeBinding::START_TO_END:
ourNode = mEnd.Container();
ourOffset = mEnd.Offset();
otherNode = aOtherRange.GetStartContainer();
otherOffset = aOtherRange.StartOffset();
break;
case nsIDOMRange::END_TO_START:
case RangeBinding::END_TO_START:
ourNode = mStart.Container();
ourOffset = mStart.Offset();
otherNode = aOtherRange.GetEndContainer();
otherOffset = aOtherRange.EndOffset();
break;
case nsIDOMRange::END_TO_END:
case RangeBinding::END_TO_END:
ourNode = mEnd.Container();
ourOffset = mEnd.Offset();
otherNode = aOtherRange.GetEndContainer();

Просмотреть файл

@ -22,14 +22,6 @@ interface nsIDOMRange : nsISupports
void setEndBefore(in nsIDOMNode refNode);
void setEndAfter(in nsIDOMNode refNode);
// CompareHow
const unsigned short START_TO_START = 0;
const unsigned short START_TO_END = 1;
const unsigned short END_TO_END = 2;
const unsigned short END_TO_START = 3;
short compareBoundaryPoints(in unsigned short how,
in nsIDOMRange sourceRange);
void deleteContents();
nsIDOMDocumentFragment extractContents();
nsIDOMDocumentFragment cloneContents();

Просмотреть файл

@ -24,6 +24,7 @@
#include "mozilla/Unused.h"
#include "mozilla/dom/Selection.h"
#include "mozilla/dom/Element.h"
#include "mozilla/dom/RangeBinding.h"
#include "mozilla/OwningNonNull.h"
#include "mozilla/mozalloc.h"
#include "nsAString.h"
@ -8835,24 +8836,25 @@ HTMLEditRules::UpdateDocChangeRange(nsRange* aRange)
// clone aRange.
mDocChangeRange = aRange->CloneRange();
} else {
int16_t result;
// compare starts of ranges
nsresult rv =
mDocChangeRange->CompareBoundaryPoints(nsIDOMRange::START_TO_START,
aRange, &result);
if (rv == NS_ERROR_NOT_INITIALIZED) {
ErrorResult error;
int16_t result =
mDocChangeRange->CompareBoundaryPoints(RangeBinding::START_TO_START,
*aRange, error);
if (error.ErrorCodeIs(NS_ERROR_NOT_INITIALIZED)) {
// This will happen is mDocChangeRange is non-null, but the range is
// uninitialized. In this case we'll set the start to aRange start.
// The same test won't be needed further down since after we've set
// the start the range will be collapsed to that point.
result = 1;
rv = NS_OK;
error.SuppressException();
}
NS_ENSURE_SUCCESS(rv, rv);
if (NS_WARN_IF(error.Failed())) {
return error.StealNSResult();
}
// Positive result means mDocChangeRange start is after aRange start.
if (result > 0) {
ErrorResult error;
mDocChangeRange->SetStart(atStart.AsRaw(), error);
if (NS_WARN_IF(error.Failed())) {
return error.StealNSResult();
@ -8860,16 +8862,19 @@ HTMLEditRules::UpdateDocChangeRange(nsRange* aRange)
}
// compare ends of ranges
rv = mDocChangeRange->CompareBoundaryPoints(nsIDOMRange::END_TO_END,
aRange, &result);
NS_ENSURE_SUCCESS(rv, rv);
result =
mDocChangeRange->CompareBoundaryPoints(RangeBinding::END_TO_END,
*aRange, error);
if (NS_WARN_IF(error.Failed())) {
return error.StealNSResult();
}
// Negative result means mDocChangeRange end is before aRange end.
if (result < 0) {
const RangeBoundary& atEnd = aRange->EndRef();
if (NS_WARN_IF(!atEnd.IsSet())) {
return NS_ERROR_FAILURE;
}
ErrorResult error;
mDocChangeRange->SetEnd(atEnd.AsRaw(), error);
if (NS_WARN_IF(error.Failed())) {
return error.StealNSResult();

Просмотреть файл

@ -7,6 +7,7 @@
#include "mozilla/Assertions.h" // for MOZ_ASSERT, etc.
#include "mozilla/EditorUtils.h" // for EditorUtils
#include "mozilla/dom/RangeBinding.h"
#include "mozilla/dom/Selection.h" // for Selection
#include "nsAString.h" // for nsAString::Length
#include "nsCycleCollectionParticipant.h"
@ -123,14 +124,15 @@ SelectionState::IsEqual(SelectionState* aSelState)
RefPtr<nsRange> itsRange = aSelState->mArray[i]->GetRange();
NS_ENSURE_TRUE(myRange && itsRange, false);
int16_t compResult;
nsresult rv;
rv = myRange->CompareBoundaryPoints(nsIDOMRange::START_TO_START, itsRange, &compResult);
if (NS_FAILED(rv) || compResult) {
IgnoredErrorResult rv;
int16_t compResult =
myRange->CompareBoundaryPoints(RangeBinding::START_TO_START, *itsRange, rv);
if (rv.Failed() || compResult) {
return false;
}
rv = myRange->CompareBoundaryPoints(nsIDOMRange::END_TO_END, itsRange, &compResult);
if (NS_FAILED(rv) || compResult) {
compResult =
myRange->CompareBoundaryPoints(RangeBinding::END_TO_END, *itsRange, rv);
if (rv.Failed() || compResult) {
return false;
}
}

Просмотреть файл

@ -51,14 +51,15 @@
#include "nsFocusManager.h"
#include "mozilla/dom/Element.h"
#include "mozilla/dom/Link.h"
#include "mozilla/dom/RangeBinding.h"
#include "mozilla/dom/Selection.h"
#include "nsRange.h"
#include "nsXBLBinding.h"
#include "nsTypeAheadFind.h"
using mozilla::dom::Selection;
using mozilla::IgnoreErrors;
using namespace mozilla;
using namespace mozilla::dom;
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsTypeAheadFind)
NS_INTERFACE_MAP_ENTRY(nsITypeAheadFind)
@ -435,12 +436,14 @@ nsTypeAheadFind::FindItNow(nsIPresShell *aPresShell, bool aIsLinksOnly,
return NS_ERROR_FAILURE;
}
int16_t rangeCompareResult = 0;
if (!mStartPointRange) {
mStartPointRange = new nsRange(presShell->GetDocument());
}
mStartPointRange->CompareBoundaryPoints(nsIDOMRange::START_TO_START, mSearchRange, &rangeCompareResult);
// XXXbz Should this really be ignoring errors?
int16_t rangeCompareResult =
mStartPointRange->CompareBoundaryPoints(RangeBinding::START_TO_START,
*mSearchRange, IgnoreErrors());
// No need to wrap find in doc if starting at beginning
bool hasWrapped = (rangeCompareResult < 0);
@ -493,11 +496,11 @@ nsTypeAheadFind::FindItNow(nsIPresShell *aPresShell, bool aIsLinksOnly,
// We can continue at the end of mStartPointRange if its end is before
// the start of returnRange or coincides with it. Otherwise, we need
// to continue at the start of returnRange.
int16_t compareResult;
nsresult rv =
mStartPointRange->CompareBoundaryPoints(nsIDOMRange::START_TO_END,
returnRange, &compareResult);
if (NS_SUCCEEDED(rv) && compareResult <= 0) {
IgnoredErrorResult rv;
int16_t compareResult =
mStartPointRange->CompareBoundaryPoints(RangeBinding::START_TO_END,
*returnRange, rv);
if (!rv.Failed() && compareResult <= 0) {
// OK to start at the end of mStartPointRange
mStartPointRange->Collapse(false);
} else {
@ -509,11 +512,11 @@ nsTypeAheadFind::FindItNow(nsIPresShell *aPresShell, bool aIsLinksOnly,
// We can continue at the start of mStartPointRange if its start is
// after the end of returnRange or coincides with it. Otherwise, we
// need to continue at the end of returnRange.
int16_t compareResult;
nsresult rv =
mStartPointRange->CompareBoundaryPoints(nsIDOMRange::END_TO_START,
returnRange, &compareResult);
if (NS_SUCCEEDED(rv) && compareResult >= 0) {
IgnoredErrorResult rv;
int16_t compareResult =
mStartPointRange->CompareBoundaryPoints(RangeBinding::END_TO_START,
*returnRange, rv);
if (!rv.Failed() && compareResult >= 0) {
// OK to start at the start of mStartPointRange
mStartPointRange->Collapse(true);
} else {