mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-25 03:05:34 +00:00
f8844f0d9b
Now, nobody requires nsIContentIterator interface. So, we can get rid of it. Unfortunately, there is no macro to keep the inherited class, ContentSubtreeIterator, in the cycle collection to make it keep managing ContentSubtreeIterator::mRange without nsISupports interface. Therefore, this patch moves it into ContentIteratorBase temporarily. Anyway, the following patch makes those classes not refcountable. At that time, this issue will be fixed. Differential Revision: https://phabricator.services.mozilla.com/D15927 --HG-- extra : moz-landing-system : lando
60 lines
1.6 KiB
C++
60 lines
1.6 KiB
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
/* 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/. */
|
|
|
|
#ifndef nsFind_h__
|
|
#define nsFind_h__
|
|
|
|
#include "nsIFind.h"
|
|
|
|
#include "nsCOMPtr.h"
|
|
#include "nsCycleCollectionParticipant.h"
|
|
#include "nsINode.h"
|
|
#include "mozilla/intl/WordBreaker.h"
|
|
|
|
class nsIContent;
|
|
class nsRange;
|
|
|
|
#define NS_FIND_CONTRACTID "@mozilla.org/embedcomp/rangefind;1"
|
|
|
|
#define NS_FIND_CID \
|
|
{ \
|
|
0x471f4944, 0x1dd2, 0x11b2, { \
|
|
0x87, 0xac, 0x90, 0xbe, 0x0a, 0x51, 0xd6, 0x09 \
|
|
} \
|
|
}
|
|
|
|
class nsFindContentIterator;
|
|
|
|
class nsFind : public nsIFind {
|
|
public:
|
|
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
|
NS_DECL_NSIFIND
|
|
NS_DECL_CYCLE_COLLECTION_CLASS(nsFind)
|
|
|
|
nsFind();
|
|
|
|
protected:
|
|
virtual ~nsFind();
|
|
|
|
// Parameters set from the interface:
|
|
bool mFindBackward;
|
|
bool mCaseSensitive;
|
|
|
|
// Use "find entire words" mode by setting to a word breaker or null, to
|
|
// disable "entire words" mode.
|
|
RefPtr<mozilla::intl::WordBreaker> mWordBreaker;
|
|
|
|
struct State;
|
|
class StateRestorer;
|
|
|
|
// Get the first character from the next node (last if mFindBackward).
|
|
//
|
|
// This will mutate the state, but then restore it afterwards.
|
|
char16_t PeekNextChar(State&) const;
|
|
};
|
|
|
|
#endif // nsFind_h__
|