Bug 1260651 part.32 Rename EditTxn to mozilla::EditTransactionBase r=mccr8

This patch also renames NS_DECL_EDITTXN to NS_DECL_EDIT_TRANSACTION_BASE.

MozReview-Commit-ID: 29TQbKBBEhD

--HG--
rename : editor/libeditor/EditTxn.cpp => editor/libeditor/EditTransactionBase.cpp
rename : editor/libeditor/EditTxn.h => editor/libeditor/EditTransactionBase.h
This commit is contained in:
Masayuki Nakano 2016-07-08 09:48:34 +09:00
Родитель fb4c83aca3
Коммит 5fb3db78b5
33 изменённых файлов: 187 добавлений и 165 удалений

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

@ -17,7 +17,7 @@ using namespace dom;
ChangeAttributeTransaction::ChangeAttributeTransaction(Element& aElement,
nsIAtom& aAttribute,
const nsAString* aValue)
: EditTxn()
: EditTransactionBase()
, mElement(&aElement)
, mAttribute(&aAttribute)
, mValue(aValue ? *aValue : EmptyString())
@ -31,13 +31,14 @@ ChangeAttributeTransaction::~ChangeAttributeTransaction()
{
}
NS_IMPL_CYCLE_COLLECTION_INHERITED(ChangeAttributeTransaction, EditTxn,
NS_IMPL_CYCLE_COLLECTION_INHERITED(ChangeAttributeTransaction,
EditTransactionBase,
mElement)
NS_IMPL_ADDREF_INHERITED(ChangeAttributeTransaction, EditTxn)
NS_IMPL_RELEASE_INHERITED(ChangeAttributeTransaction, EditTxn)
NS_IMPL_ADDREF_INHERITED(ChangeAttributeTransaction, EditTransactionBase)
NS_IMPL_RELEASE_INHERITED(ChangeAttributeTransaction, EditTransactionBase)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ChangeAttributeTransaction)
NS_INTERFACE_MAP_END_INHERITING(EditTxn)
NS_INTERFACE_MAP_END_INHERITING(EditTransactionBase)
NS_IMETHODIMP
ChangeAttributeTransaction::DoTransaction()

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

@ -6,7 +6,7 @@
#ifndef ChangeAttributeTransaction_h
#define ChangeAttributeTransaction_h
#include "EditTxn.h" // base class
#include "EditTransactionBase.h" // base class
#include "mozilla/Attributes.h" // override
#include "nsCOMPtr.h" // nsCOMPtr members
#include "nsCycleCollectionParticipant.h" // NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED
@ -25,7 +25,7 @@ class Element;
* A transaction that changes an attribute of a content node. This transaction
* covers add, remove, and change attribute.
*/
class ChangeAttributeTransaction final : public EditTxn
class ChangeAttributeTransaction final : public EditTransactionBase
{
public:
/**
@ -38,9 +38,10 @@ public:
const nsAString* aValue);
NS_DECL_ISUPPORTS_INHERITED
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(ChangeAttributeTransaction, EditTxn)
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(ChangeAttributeTransaction,
EditTransactionBase)
NS_DECL_EDITTXN
NS_DECL_EDITTRANSACTIONBASE
NS_IMETHOD RedoTransaction() override;

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

@ -24,13 +24,14 @@ using namespace dom;
#define kNullCh (char16_t('\0'))
NS_IMPL_CYCLE_COLLECTION_INHERITED(ChangeStyleTransaction, EditTxn, mElement)
NS_IMPL_CYCLE_COLLECTION_INHERITED(ChangeStyleTransaction, EditTransactionBase,
mElement)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ChangeStyleTransaction)
NS_INTERFACE_MAP_END_INHERITING(EditTxn)
NS_INTERFACE_MAP_END_INHERITING(EditTransactionBase)
NS_IMPL_ADDREF_INHERITED(ChangeStyleTransaction, EditTxn)
NS_IMPL_RELEASE_INHERITED(ChangeStyleTransaction, EditTxn)
NS_IMPL_ADDREF_INHERITED(ChangeStyleTransaction, EditTransactionBase)
NS_IMPL_RELEASE_INHERITED(ChangeStyleTransaction, EditTransactionBase)
ChangeStyleTransaction::~ChangeStyleTransaction()
{
@ -122,7 +123,7 @@ ChangeStyleTransaction::ChangeStyleTransaction(Element& aElement,
nsIAtom& aProperty,
const nsAString& aValue,
EChangeType aChangeType)
: EditTxn()
: EditTransactionBase()
, mElement(&aElement)
, mProperty(&aProperty)
, mValue(aValue)

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

@ -6,7 +6,7 @@
#ifndef ChangeStyleTransaction_h
#define ChangeStyleTransaction_h
#include "EditTxn.h" // base class
#include "EditTransactionBase.h" // base class
#include "nsCOMPtr.h" // nsCOMPtr members
#include "nsCycleCollectionParticipant.h" // various macros
#include "nsString.h" // nsString members
@ -24,14 +24,15 @@ class Element;
* A transaction that changes the value of a CSS inline style of a content
* node. This transaction covers add, remove, and change a property's value.
*/
class ChangeStyleTransaction final : public EditTxn
class ChangeStyleTransaction final : public EditTransactionBase
{
public:
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(ChangeStyleTransaction, EditTxn)
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(ChangeStyleTransaction,
EditTransactionBase)
NS_DECL_ISUPPORTS_INHERITED
NS_DECL_EDITTXN
NS_DECL_EDITTRANSACTIONBASE
NS_IMETHOD RedoTransaction() override;

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

@ -40,7 +40,7 @@ CompositionTransaction::~CompositionTransaction()
{
}
NS_IMPL_CYCLE_COLLECTION_INHERITED(CompositionTransaction, EditTxn,
NS_IMPL_CYCLE_COLLECTION_INHERITED(CompositionTransaction, EditTransactionBase,
mTextNode)
// mRangeList can't lead to cycles
@ -48,10 +48,10 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(CompositionTransaction)
if (aIID.Equals(NS_GET_IID(CompositionTransaction))) {
foundInterface = static_cast<nsITransaction*>(this);
} else
NS_INTERFACE_MAP_END_INHERITING(EditTxn)
NS_INTERFACE_MAP_END_INHERITING(EditTransactionBase)
NS_IMPL_ADDREF_INHERITED(CompositionTransaction, EditTxn)
NS_IMPL_RELEASE_INHERITED(CompositionTransaction, EditTxn)
NS_IMPL_ADDREF_INHERITED(CompositionTransaction, EditTransactionBase)
NS_IMPL_RELEASE_INHERITED(CompositionTransaction, EditTransactionBase)
NS_IMETHODIMP
CompositionTransaction::DoTransaction()

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

@ -6,7 +6,7 @@
#ifndef CompositionTransaction_h
#define CompositionTransaction_h
#include "EditTxn.h" // base class
#include "EditTransactionBase.h" // base class
#include "nsCycleCollectionParticipant.h" // various macros
#include "nsString.h" // mStringToInsert
@ -30,7 +30,7 @@ class Text;
* composition string, modifying the composition string or its IME selection
* ranges and commit or cancel the composition.
*/
class CompositionTransaction final : public EditTxn
class CompositionTransaction final : public EditTransactionBase
{
public:
NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMETEXTTXN_IID)
@ -51,11 +51,12 @@ public:
const nsAString& aString,
nsEditor& aEditor);
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(CompositionTransaction, EditTxn)
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(CompositionTransaction,
EditTransactionBase)
NS_DECL_ISUPPORTS_INHERITED
NS_DECL_EDITTXN
NS_DECL_EDITTRANSACTIONBASE
NS_IMETHOD Merge(nsITransaction* aTransaction, bool* aDidMerge) override;

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

@ -36,7 +36,7 @@ CreateElementTransaction::CreateElementTransaction(nsEditor& aEditor,
nsIAtom& aTag,
nsINode& aParent,
int32_t aOffsetInParent)
: EditTxn()
: EditTransactionBase()
, mEditor(&aEditor)
, mTag(&aTag)
, mParent(&aParent)
@ -48,15 +48,16 @@ CreateElementTransaction::~CreateElementTransaction()
{
}
NS_IMPL_CYCLE_COLLECTION_INHERITED(CreateElementTransaction, EditTxn,
NS_IMPL_CYCLE_COLLECTION_INHERITED(CreateElementTransaction,
EditTransactionBase,
mParent,
mNewNode,
mRefNode)
NS_IMPL_ADDREF_INHERITED(CreateElementTransaction, EditTxn)
NS_IMPL_RELEASE_INHERITED(CreateElementTransaction, EditTxn)
NS_IMPL_ADDREF_INHERITED(CreateElementTransaction, EditTransactionBase)
NS_IMPL_RELEASE_INHERITED(CreateElementTransaction, EditTransactionBase)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(CreateElementTransaction)
NS_INTERFACE_MAP_END_INHERITING(EditTxn)
NS_INTERFACE_MAP_END_INHERITING(EditTransactionBase)
NS_IMETHODIMP

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

@ -6,7 +6,7 @@
#ifndef CreateElementTransaction_h
#define CreateElementTransaction_h
#include "EditTxn.h"
#include "EditTransactionBase.h"
#include "nsCOMPtr.h"
#include "nsCycleCollectionParticipant.h"
#include "nsISupportsImpl.h"
@ -25,7 +25,7 @@ namespace dom {
class Element;
} // namespace dom
class CreateElementTransaction final : public EditTxn
class CreateElementTransaction final : public EditTransactionBase
{
public:
/**
@ -44,9 +44,10 @@ public:
int32_t aOffsetInParent);
NS_DECL_ISUPPORTS_INHERITED
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(CreateElementTransaction, EditTxn)
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(CreateElementTransaction,
EditTransactionBase)
NS_DECL_EDITTXN
NS_DECL_EDITTRANSACTIONBASE
NS_IMETHOD RedoTransaction() override;

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

@ -22,15 +22,15 @@ DeleteNodeTransaction::~DeleteNodeTransaction()
{
}
NS_IMPL_CYCLE_COLLECTION_INHERITED(DeleteNodeTransaction, EditTxn,
NS_IMPL_CYCLE_COLLECTION_INHERITED(DeleteNodeTransaction, EditTransactionBase,
mNode,
mParent,
mRefNode)
NS_IMPL_ADDREF_INHERITED(DeleteNodeTransaction, EditTxn)
NS_IMPL_RELEASE_INHERITED(DeleteNodeTransaction, EditTxn)
NS_IMPL_ADDREF_INHERITED(DeleteNodeTransaction, EditTransactionBase)
NS_IMPL_RELEASE_INHERITED(DeleteNodeTransaction, EditTransactionBase)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DeleteNodeTransaction)
NS_INTERFACE_MAP_END_INHERITING(EditTxn)
NS_INTERFACE_MAP_END_INHERITING(EditTransactionBase)
nsresult
DeleteNodeTransaction::Init(nsEditor* aEditor,

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

@ -6,7 +6,7 @@
#ifndef DeleteNodeTransaction_h
#define DeleteNodeTransaction_h
#include "EditTxn.h"
#include "EditTransactionBase.h"
#include "nsCOMPtr.h"
#include "nsCycleCollectionParticipant.h"
#include "nsIContent.h"
@ -22,7 +22,7 @@ namespace mozilla {
/**
* A transaction that deletes a single element
*/
class DeleteNodeTransaction final : public EditTxn
class DeleteNodeTransaction final : public EditTransactionBase
{
public:
/**
@ -35,9 +35,10 @@ public:
DeleteNodeTransaction();
NS_DECL_ISUPPORTS_INHERITED
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(DeleteNodeTransaction, EditTxn)
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(DeleteNodeTransaction,
EditTransactionBase)
NS_DECL_EDITTXN
NS_DECL_EDITTRANSACTIONBASE
NS_IMETHOD RedoTransaction() override;

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

@ -7,7 +7,6 @@
#define DeleteRangeTransaction_h
#include "EditAggregateTransaction.h"
#include "EditTxn.h"
#include "nsCycleCollectionParticipant.h"
#include "nsID.h"
#include "nsIEditor.h"
@ -42,7 +41,7 @@ public:
EditAggregateTransaction)
NS_IMETHOD QueryInterface(REFNSIID aIID, void** aInstancePtr) override;
NS_DECL_EDITTXN
NS_DECL_EDITTRANSACTIONBASE
NS_IMETHOD RedoTransaction() override;

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

@ -34,11 +34,11 @@ DeleteTextTransaction::DeleteTextTransaction(
"Trying to delete more characters than in node");
}
NS_IMPL_CYCLE_COLLECTION_INHERITED(DeleteTextTransaction, EditTxn,
NS_IMPL_CYCLE_COLLECTION_INHERITED(DeleteTextTransaction, EditTransactionBase,
mCharData)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DeleteTextTransaction)
NS_INTERFACE_MAP_END_INHERITING(EditTxn)
NS_INTERFACE_MAP_END_INHERITING(EditTransactionBase)
nsresult
DeleteTextTransaction::Init()

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

@ -6,7 +6,7 @@
#ifndef DeleteTextTransaction_h
#define DeleteTextTransaction_h
#include "EditTxn.h"
#include "EditTransactionBase.h"
#include "nsCOMPtr.h"
#include "nsCycleCollectionParticipant.h"
#include "nsGenericDOMDataNode.h"
@ -22,7 +22,7 @@ namespace mozilla {
/**
* A transaction that removes text from a content node.
*/
class DeleteTextTransaction final : public EditTxn
class DeleteTextTransaction final : public EditTransactionBase
{
public:
/**
@ -41,10 +41,11 @@ public:
nsresult Init();
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(DeleteTextTransaction, EditTxn)
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(DeleteTextTransaction,
EditTransactionBase)
NS_IMETHOD QueryInterface(REFNSIID aIID, void** aInstancePtr) override;
NS_DECL_EDITTXN
NS_DECL_EDITTRANSACTIONBASE
uint32_t GetOffset() { return mOffset; }

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

@ -21,13 +21,14 @@ EditAggregateTransaction::~EditAggregateTransaction()
{
}
NS_IMPL_CYCLE_COLLECTION_INHERITED(EditAggregateTransaction, EditTxn,
NS_IMPL_CYCLE_COLLECTION_INHERITED(EditAggregateTransaction,
EditTransactionBase,
mChildren)
NS_IMPL_ADDREF_INHERITED(EditAggregateTransaction, EditTxn)
NS_IMPL_RELEASE_INHERITED(EditAggregateTransaction, EditTxn)
NS_IMPL_ADDREF_INHERITED(EditAggregateTransaction, EditTransactionBase)
NS_IMPL_RELEASE_INHERITED(EditAggregateTransaction, EditTransactionBase)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(EditAggregateTransaction)
NS_INTERFACE_MAP_END_INHERITING(EditTxn)
NS_INTERFACE_MAP_END_INHERITING(EditTransactionBase)
NS_IMETHODIMP
EditAggregateTransaction::DoTransaction()
@ -109,13 +110,13 @@ EditAggregateTransaction::GetTxnDescription(nsAString& aString)
}
NS_IMETHODIMP
EditAggregateTransaction::AppendChild(EditTxn* aTransaction)
EditAggregateTransaction::AppendChild(EditTransactionBase* aTransaction)
{
if (!aTransaction) {
return NS_ERROR_NULL_POINTER;
}
RefPtr<EditTxn> *slot = mChildren.AppendElement();
RefPtr<EditTransactionBase>* slot = mChildren.AppendElement();
if (!slot) {
return NS_ERROR_OUT_OF_MEMORY;
}

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

@ -6,7 +6,7 @@
#ifndef EditAggregateTransaction_h
#define EditAggregateTransaction_h
#include "EditTxn.h"
#include "EditTransactionBase.h"
#include "nsCOMPtr.h"
#include "nsCycleCollectionParticipant.h"
#include "nsIAtom.h"
@ -22,15 +22,16 @@ namespace mozilla {
* base class for all document editing transactions that require aggregation.
* provides a list of child transactions.
*/
class EditAggregateTransaction : public EditTxn
class EditAggregateTransaction : public EditTransactionBase
{
public:
EditAggregateTransaction();
NS_DECL_ISUPPORTS_INHERITED
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(EditAggregateTransaction, EditTxn)
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(EditAggregateTransaction,
EditTransactionBase)
NS_DECL_EDITTXN
NS_DECL_EDITTRANSACTIONBASE
NS_IMETHOD RedoTransaction() override;
NS_IMETHOD Merge(nsITransaction* aTransaction, bool* aDidMerge) override;
@ -38,7 +39,7 @@ public:
/**
* Append a transaction to this aggregate.
*/
NS_IMETHOD AppendChild(EditTxn* aTxn);
NS_IMETHOD AppendChild(EditTransactionBase* aTransaction);
/**
* Get the name assigned to this transaction.
@ -48,7 +49,7 @@ public:
protected:
virtual ~EditAggregateTransaction();
nsTArray<RefPtr<EditTxn>> mChildren;
nsTArray<RefPtr<EditTransactionBase>> mChildren;
nsCOMPtr<nsIAtom> mName;
};

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

@ -3,38 +3,41 @@
* 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 "EditTxn.h"
#include "EditTransactionBase.h"
#include "nsError.h"
#include "nsISupportsBase.h"
NS_IMPL_CYCLE_COLLECTION_CLASS(EditTxn)
namespace mozilla {
NS_IMPL_CYCLE_COLLECTION_UNLINK_0(EditTxn)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(EditTxn)
NS_IMPL_CYCLE_COLLECTION_CLASS(EditTransactionBase)
NS_IMPL_CYCLE_COLLECTION_UNLINK_0(EditTransactionBase)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(EditTransactionBase)
// We don't have anything to traverse, but some of our subclasses do.
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(EditTxn)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(EditTransactionBase)
NS_INTERFACE_MAP_ENTRY(nsITransaction)
NS_INTERFACE_MAP_ENTRY(nsPIEditorTransaction)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsITransaction)
NS_INTERFACE_MAP_END
NS_IMPL_CYCLE_COLLECTING_ADDREF(EditTxn)
NS_IMPL_CYCLE_COLLECTING_RELEASE_WITH_LAST_RELEASE(EditTxn, LastRelease())
NS_IMPL_CYCLE_COLLECTING_ADDREF(EditTransactionBase)
NS_IMPL_CYCLE_COLLECTING_RELEASE_WITH_LAST_RELEASE(EditTransactionBase,
LastRelease())
EditTxn::~EditTxn()
EditTransactionBase::~EditTransactionBase()
{
}
NS_IMETHODIMP
EditTxn::RedoTransaction(void)
EditTransactionBase::RedoTransaction()
{
return DoTransaction();
}
NS_IMETHODIMP
EditTxn::GetIsTransient(bool *aIsTransient)
EditTransactionBase::GetIsTransient(bool* aIsTransient)
{
*aIsTransient = false;
@ -42,9 +45,11 @@ EditTxn::GetIsTransient(bool *aIsTransient)
}
NS_IMETHODIMP
EditTxn::Merge(nsITransaction *aTransaction, bool *aDidMerge)
EditTransactionBase::Merge(nsITransaction* aTransaction, bool* aDidMerge)
{
*aDidMerge = false;
return NS_OK;
}
} // namespace mozilla

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

@ -3,8 +3,8 @@
* 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 EditTxn_h__
#define EditTxn_h__
#ifndef EditTransactionBase_h
#define EditTransactionBase_h
#include "nsCycleCollectionParticipant.h"
#include "nsISupportsImpl.h"
@ -12,29 +12,33 @@
#include "nsPIEditorTransaction.h"
#include "nscore.h"
namespace mozilla {
/**
* Base class for all document editing transactions.
*/
class EditTxn : public nsITransaction,
public nsPIEditorTransaction
class EditTransactionBase : public nsITransaction
, public nsPIEditorTransaction
{
public:
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(EditTxn, nsITransaction)
NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(EditTransactionBase, nsITransaction)
virtual void LastRelease() {}
NS_IMETHOD RedoTransaction(void) override;
NS_IMETHOD GetIsTransient(bool *aIsTransient) override;
NS_IMETHOD Merge(nsITransaction *aTransaction, bool *aDidMerge) override;
NS_IMETHOD GetIsTransient(bool* aIsTransient) override;
NS_IMETHOD Merge(nsITransaction* aTransaction, bool* aDidMerge) override;
protected:
virtual ~EditTxn();
virtual ~EditTransactionBase();
};
#define NS_DECL_EDITTXN \
} // namespace mozilla
#define NS_DECL_EDITTRANSACTIONBASE \
NS_IMETHOD DoTransaction() override; \
NS_IMETHOD UndoTransaction() override; \
NS_IMETHOD GetTxnDescription(nsAString& aTxnDescription) override;
NS_IMETHOD GetTxnDescription(nsAString& aTransactionDescription) override;
#endif
#endif // #ifndef EditTransactionBase_h

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

@ -35,14 +35,14 @@ InsertNodeTransaction::~InsertNodeTransaction()
{
}
NS_IMPL_CYCLE_COLLECTION_INHERITED(InsertNodeTransaction, EditTxn,
NS_IMPL_CYCLE_COLLECTION_INHERITED(InsertNodeTransaction, EditTransactionBase,
mNode,
mParent)
NS_IMPL_ADDREF_INHERITED(InsertNodeTransaction, EditTxn)
NS_IMPL_RELEASE_INHERITED(InsertNodeTransaction, EditTxn)
NS_IMPL_ADDREF_INHERITED(InsertNodeTransaction, EditTransactionBase)
NS_IMPL_RELEASE_INHERITED(InsertNodeTransaction, EditTransactionBase)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(InsertNodeTransaction)
NS_INTERFACE_MAP_END_INHERITING(EditTxn)
NS_INTERFACE_MAP_END_INHERITING(EditTransactionBase)
NS_IMETHODIMP
InsertNodeTransaction::DoTransaction()

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

@ -6,7 +6,7 @@
#ifndef InsertNodeTransaction_h
#define InsertNodeTransaction_h
#include "EditTxn.h" // for EditTxn, NS_DECL_EDITTXN
#include "EditTransactionBase.h" // for EditTransactionBase, etc
#include "nsCOMPtr.h" // for nsCOMPtr
#include "nsCycleCollectionParticipant.h"
#include "nsIContent.h" // for nsIContent
@ -19,7 +19,7 @@ namespace mozilla {
/**
* A transaction that inserts a single element
*/
class InsertNodeTransaction final : public EditTxn
class InsertNodeTransaction final : public EditTransactionBase
{
public:
/**
@ -32,9 +32,10 @@ public:
nsEditor& aEditor);
NS_DECL_ISUPPORTS_INHERITED
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(InsertNodeTransaction, EditTxn)
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(InsertNodeTransaction,
EditTransactionBase)
NS_DECL_EDITTXN
NS_DECL_EDITTRANSACTIONBASE
protected:
virtual ~InsertNodeTransaction();

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

@ -32,16 +32,16 @@ InsertTextTransaction::~InsertTextTransaction()
{
}
NS_IMPL_CYCLE_COLLECTION_INHERITED(InsertTextTransaction, EditTxn,
NS_IMPL_CYCLE_COLLECTION_INHERITED(InsertTextTransaction, EditTransactionBase,
mTextNode)
NS_IMPL_ADDREF_INHERITED(InsertTextTransaction, EditTxn)
NS_IMPL_RELEASE_INHERITED(InsertTextTransaction, EditTxn)
NS_IMPL_ADDREF_INHERITED(InsertTextTransaction, EditTransactionBase)
NS_IMPL_RELEASE_INHERITED(InsertTextTransaction, EditTransactionBase)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(InsertTextTransaction)
if (aIID.Equals(NS_GET_IID(InsertTextTransaction))) {
foundInterface = static_cast<nsITransaction*>(this);
} else
NS_INTERFACE_MAP_END_INHERITING(EditTxn)
NS_INTERFACE_MAP_END_INHERITING(EditTransactionBase)
NS_IMETHODIMP

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

@ -6,7 +6,7 @@
#ifndef InsertTextTransaction_h
#define InsertTextTransaction_h
#include "EditTxn.h" // base class
#include "EditTransactionBase.h" // base class
#include "nsCycleCollectionParticipant.h" // various macros
#include "nsID.h" // NS_DECLARE_STATIC_IID_ACCESSOR
#include "nsISupportsImpl.h" // NS_DECL_ISUPPORTS_INHERITED
@ -29,7 +29,7 @@ class Text;
/**
* A transaction that inserts text into a content node.
*/
class InsertTextTransaction final : public EditTxn
class InsertTextTransaction final : public EditTransactionBase
{
public:
NS_DECLARE_STATIC_IID_ACCESSOR(NS_INSERTTEXTTXN_IID)
@ -44,9 +44,10 @@ public:
const nsAString& aString, nsEditor& aEditor);
NS_DECL_ISUPPORTS_INHERITED
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(InsertTextTransaction, EditTxn)
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(InsertTextTransaction,
EditTransactionBase)
NS_DECL_EDITTXN
NS_DECL_EDITTRANSACTIONBASE
NS_IMETHOD Merge(nsITransaction* aTransaction, bool* aDidMerge) override;

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

@ -11,7 +11,7 @@
#include "nsIContent.h" // for nsIContent
#include "nsIDOMCharacterData.h" // for nsIDOMCharacterData
#include "nsIEditor.h" // for nsEditor::IsModifiableNode
#include "nsISupportsImpl.h" // for EditTxn::QueryInterface, etc
#include "nsISupportsImpl.h" // for QueryInterface, etc
namespace mozilla {
@ -27,13 +27,13 @@ JoinNodeTransaction::JoinNodeTransaction(nsEditor& aEditor,
{
}
NS_IMPL_CYCLE_COLLECTION_INHERITED(JoinNodeTransaction, EditTxn,
NS_IMPL_CYCLE_COLLECTION_INHERITED(JoinNodeTransaction, EditTransactionBase,
mLeftNode,
mRightNode,
mParent)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(JoinNodeTransaction)
NS_INTERFACE_MAP_END_INHERITING(EditTxn)
NS_INTERFACE_MAP_END_INHERITING(EditTransactionBase)
nsresult
JoinNodeTransaction::CheckValidity()

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

@ -6,7 +6,7 @@
#ifndef JoinNodeTransaction_h
#define JoinNodeTransaction_h
#include "EditTxn.h" // for EditTxn, NS_DECL_EDITTXN
#include "EditTransactionBase.h" // for EditTransactionBase, etc
#include "nsCOMPtr.h" // for nsCOMPtr
#include "nsCycleCollectionParticipant.h"
#include "nsID.h" // for REFNSIID
@ -23,7 +23,7 @@ namespace mozilla {
* children of E2. After DoTransaction() and RedoTransaction(), E1 is removed
* from the content tree and E2 remains.
*/
class JoinNodeTransaction final : public EditTxn
class JoinNodeTransaction final : public EditTransactionBase
{
public:
/**
@ -39,10 +39,11 @@ public:
*/
nsresult CheckValidity();
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(JoinNodeTransaction, EditTxn)
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(JoinNodeTransaction,
EditTransactionBase)
NS_IMETHOD QueryInterface(REFNSIID aIID, void** aInstancePtr) override;
NS_DECL_EDITTXN
NS_DECL_EDITTRANSACTIONBASE
protected:
nsEditor& mEditor;

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

@ -125,13 +125,14 @@ PlaceholderTransaction::Merge(nsITransaction* aTransaction,
nsCOMPtr<nsPIEditorTransaction> pTxn = do_QueryInterface(aTransaction);
NS_ENSURE_TRUE(pTxn, NS_OK); // it's foreign so just bail!
EditTxn *editTxn = (EditTxn*)aTransaction; //XXX: hack, not safe! need nsIEditTransaction!
// XXX: hack, not safe! need nsIEditTransaction!
EditTransactionBase* editTransactionBase = (EditTransactionBase*)aTransaction;
// determine if this incoming txn is a placeholder txn
nsCOMPtr<nsIAbsorbingTransaction> plcTxn = do_QueryObject(editTxn);
nsCOMPtr<nsIAbsorbingTransaction> absorbingTransaction =
do_QueryObject(editTransactionBase);
// we are absorbing all txn's if mAbsorb is lit.
if (mAbsorb)
{
// We are absorbing all transactions if mAbsorb is lit.
if (mAbsorb) {
RefPtr<CompositionTransaction> otherTransaction =
do_QueryObject(aTransaction);
if (otherTransaction) {
@ -140,7 +141,7 @@ PlaceholderTransaction::Merge(nsITransaction* aTransaction,
if (!mCompositionTransaction) {
// this is the first IME txn in the placeholder
mCompositionTransaction = otherTransaction;
AppendChild(editTxn);
AppendChild(editTransactionBase);
} else {
bool didMerge;
mCompositionTransaction->Merge(otherTransaction, &didMerge);
@ -149,42 +150,37 @@ PlaceholderTransaction::Merge(nsITransaction* aTransaction,
// not absorb further IME txns. So just stack this one after it
// and remember it as a candidate for further merges.
mCompositionTransaction = otherTransaction;
AppendChild(editTxn);
AppendChild(editTransactionBase);
}
}
} else if (!plcTxn) {
} else if (!absorbingTransaction) {
// See bug 171243: just drop incoming placeholders on the floor.
// Their children will be swallowed by this preexisting one.
AppendChild(editTxn);
AppendChild(editTransactionBase);
}
*aDidMerge = true;
// RememberEndingSelection();
// efficiency hack: no need to remember selection here, as we haven't yet
// finished the initial batch and we know we will be told when the batch ends.
// we can remeber the selection then.
}
else
{ // merge typing or IME or deletion transactions if the selection matches
} else {
// merge typing or IME or deletion transactions if the selection matches
if (((mName.get() == nsGkAtoms::TypingTxnName) ||
(mName.get() == nsGkAtoms::IMETxnName) ||
(mName.get() == nsGkAtoms::DeleteTxnName))
&& !mCommitted )
{
nsCOMPtr<nsIAbsorbingTransaction> plcTxn = do_QueryObject(editTxn);
if (plcTxn) {
&& !mCommitted) {
if (absorbingTransaction) {
nsCOMPtr<nsIAtom> atom;
plcTxn->GetTxnName(getter_AddRefs(atom));
if (atom && (atom == mName))
{
absorbingTransaction->GetTxnName(getter_AddRefs(atom));
if (atom && atom == mName) {
// check if start selection of next placeholder matches
// end selection of this placeholder
bool isSame;
plcTxn->StartSelectionEquals(&mEndSel, &isSame);
if (isSame)
{
absorbingTransaction->StartSelectionEquals(&mEndSel, &isSame);
if (isSame) {
mAbsorb = true; // we need to start absorbing again
plcTxn->ForwardEndBatchTo(this);
// AppendChild(editTxn);
absorbingTransaction->ForwardEndBatchTo(this);
// AppendChild(editTransactionBase);
// see bug 171243: we don't need to merge placeholders
// into placeholders. We just reactivate merging in the pre-existing
// placeholder and drop the new one on the floor. The EndPlaceHolderBatch()

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

@ -39,7 +39,7 @@ public:
EditAggregateTransaction)
// ------------ EditAggregateTransaction -----------------------
NS_DECL_EDITTXN
NS_DECL_EDITTRANSACTIONBASE
NS_IMETHOD RedoTransaction() override;
NS_IMETHOD Merge(nsITransaction* aTransaction, bool* aDidMerge) override;

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

@ -6,7 +6,7 @@
#ifndef SetDocumentTitleTransaction_h
#define SetDocumentTitleTransaction_h
#include "EditTxn.h" // for EditTxn, NS_DECL_EDITTXN
#include "EditTransactionBase.h" // for EditTransactionBase, etc
#include "nsString.h" // for nsString
#include "nscore.h" // for NS_IMETHOD, nsAString, etc
@ -19,7 +19,7 @@ namespace mozilla {
* which is a text node under the <title> tag in a page's <head> section
* provides default concrete behavior for all nsITransaction methods.
*/
class SetDocumentTitleTransaction final : public EditTxn
class SetDocumentTitleTransaction final : public EditTransactionBase
{
public:
/**
@ -35,7 +35,7 @@ private:
nsresult SetDomTitle(const nsAString& aTitle);
public:
NS_DECL_EDITTXN
NS_DECL_EDITTRANSACTIONBASE
NS_IMETHOD RedoTransaction() override;
NS_IMETHOD GetIsTransient(bool *aIsTransient) override;

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

@ -29,14 +29,14 @@ SplitNodeTransaction::~SplitNodeTransaction()
{
}
NS_IMPL_CYCLE_COLLECTION_INHERITED(SplitNodeTransaction, EditTxn,
NS_IMPL_CYCLE_COLLECTION_INHERITED(SplitNodeTransaction, EditTransactionBase,
mParent,
mNewLeftNode)
NS_IMPL_ADDREF_INHERITED(SplitNodeTransaction, EditTxn)
NS_IMPL_RELEASE_INHERITED(SplitNodeTransaction, EditTxn)
NS_IMPL_ADDREF_INHERITED(SplitNodeTransaction, EditTransactionBase)
NS_IMPL_RELEASE_INHERITED(SplitNodeTransaction, EditTransactionBase)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(SplitNodeTransaction)
NS_INTERFACE_MAP_END_INHERITING(EditTxn)
NS_INTERFACE_MAP_END_INHERITING(EditTransactionBase)
NS_IMETHODIMP
SplitNodeTransaction::DoTransaction()

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

@ -6,7 +6,7 @@
#ifndef SplitNodeTransaction_h
#define SplitNodeTransaction_h
#include "EditTxn.h" // for EditTxn, NS_DECL_EDITTXN
#include "EditTransactionBase.h" // for EditTxn, etc
#include "nsCOMPtr.h" // for nsCOMPtr
#include "nsCycleCollectionParticipant.h"
#include "nsISupportsImpl.h" // for NS_DECL_ISUPPORTS_INHERITED
@ -22,7 +22,7 @@ namespace mozilla {
* A transaction that splits a node into two identical nodes, with the children
* divided between the new nodes.
*/
class SplitNodeTransaction final : public EditTxn
class SplitNodeTransaction final : public EditTransactionBase
{
public:
/**
@ -35,9 +35,10 @@ public:
SplitNodeTransaction(nsEditor& aEditor, nsIContent& aNode, int32_t aOffset);
NS_DECL_ISUPPORTS_INHERITED
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(SplitNodeTransaction, EditTxn)
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(SplitNodeTransaction,
EditTransactionBase)
NS_DECL_EDITTXN
NS_DECL_EDITTRANSACTIONBASE
NS_IMETHOD RedoTransaction() override;

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

@ -55,11 +55,12 @@ AddStyleSheetTransaction::AddStyleSheetTransaction()
{
}
NS_IMPL_CYCLE_COLLECTION_INHERITED(AddStyleSheetTransaction, EditTxn,
NS_IMPL_CYCLE_COLLECTION_INHERITED(AddStyleSheetTransaction,
EditTransactionBase,
mSheet)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(AddStyleSheetTransaction)
NS_INTERFACE_MAP_END_INHERITING(EditTxn)
NS_INTERFACE_MAP_END_INHERITING(EditTransactionBase)
NS_IMETHODIMP
AddStyleSheetTransaction::Init(nsIEditor* aEditor,
@ -108,11 +109,12 @@ RemoveStyleSheetTransaction::RemoveStyleSheetTransaction()
{
}
NS_IMPL_CYCLE_COLLECTION_INHERITED(RemoveStyleSheetTransaction, EditTxn,
NS_IMPL_CYCLE_COLLECTION_INHERITED(RemoveStyleSheetTransaction,
EditTransactionBase,
mSheet)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(RemoveStyleSheetTransaction)
NS_INTERFACE_MAP_END_INHERITING(EditTxn)
NS_INTERFACE_MAP_END_INHERITING(EditTransactionBase)
NS_IMETHODIMP
RemoveStyleSheetTransaction::Init(nsIEditor* aEditor,

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

@ -6,7 +6,7 @@
#ifndef StylesheetTransactions_h
#define StylesheetTransactions_h
#include "EditTxn.h" // for EditTxn, NS_DECL_EDITTXN
#include "EditTransactionBase.h" // for EditTransactionBase, etc
#include "mozilla/StyleSheetHandle.h" // for mozilla::StyleSheetHandle
#include "nsCycleCollectionParticipant.h"
#include "nsID.h" // for REFNSIID
@ -16,7 +16,7 @@ class nsIEditor;
namespace mozilla {
class AddStyleSheetTransaction final : public EditTxn
class AddStyleSheetTransaction final : public EditTransactionBase
{
public:
/**
@ -28,10 +28,11 @@ public:
AddStyleSheetTransaction();
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(AddStyleSheetTransaction, EditTxn)
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(AddStyleSheetTransaction,
EditTransactionBase)
NS_IMETHOD QueryInterface(REFNSIID aIID, void** aInstancePtr) override;
NS_DECL_EDITTXN
NS_DECL_EDITTRANSACTIONBASE
protected:
// The editor that created this transaction.
@ -41,7 +42,7 @@ protected:
};
class RemoveStyleSheetTransaction final : public EditTxn
class RemoveStyleSheetTransaction final : public EditTransactionBase
{
public:
/**
@ -53,10 +54,11 @@ public:
RemoveStyleSheetTransaction();
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(RemoveStyleSheetTransaction, EditTxn)
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(RemoveStyleSheetTransaction,
EditTransactionBase)
NS_IMETHOD QueryInterface(REFNSIID aIID, void** aInstancePtr) override;
NS_DECL_EDITTXN
NS_DECL_EDITTRANSACTIONBASE
protected:
// The editor that created this transaction.

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

@ -23,7 +23,7 @@ UNIFIED_SOURCES += [
'DeleteTextTransaction.cpp',
'EditAggregateTransaction.cpp',
'EditorUtils.cpp',
'EditTxn.cpp',
'EditTransactionBase.cpp',
'HTMLEditUtils.cpp',
'InsertNodeTransaction.cpp',
'InsertTextTransaction.cpp',

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

@ -18,7 +18,7 @@
#include "DeleteTextTransaction.h" // for DeleteTextTransaction
#include "EditAggregateTransaction.h" // for EditAggregateTransaction
#include "EditorUtils.h" // for AutoRules, etc
#include "EditTxn.h" // for EditTxn
#include "EditTransactionBase.h" // for EditTransactionBase
#include "InsertNodeTransaction.h" // for InsertNodeTransaction
#include "InsertTextTransaction.h" // for InsertTextTransaction
#include "JoinNodeTransaction.h" // for JoinNodeTransaction
@ -2408,7 +2408,7 @@ nsEditor::InsertTextIntoTextNodeImpl(const nsAString& aStringToInsert,
Text& aTextNode,
int32_t aOffset, bool aSuppressIME)
{
RefPtr<EditTxn> txn;
RefPtr<EditTransactionBase> transaction;
bool isIMETransaction = false;
int32_t replacedOffset = 0;
int32_t replacedLength = 0;
@ -2436,7 +2436,7 @@ nsEditor::InsertTextIntoTextNodeImpl(const nsAString& aStringToInsert,
textRange.mStartOffset, textRange.Length());
}
txn = CreateTxnForComposition(aStringToInsert);
transaction = CreateTxnForComposition(aStringToInsert);
isIMETransaction = true;
// All characters of the composition string will be replaced with
// aStringToInsert. So, we need to emulate to remove the composition
@ -2445,7 +2445,7 @@ nsEditor::InsertTextIntoTextNodeImpl(const nsAString& aStringToInsert,
replacedLength = mIMETextLength;
mIMETextLength = aStringToInsert.Length();
} else {
txn = CreateTxnForInsertText(aStringToInsert, aTextNode, aOffset);
transaction = CreateTxnForInsertText(aStringToInsert, aTextNode, aOffset);
}
// Let listeners know what's up
@ -2458,7 +2458,7 @@ nsEditor::InsertTextIntoTextNodeImpl(const nsAString& aStringToInsert,
// XXX We may not need these view batches anymore. This is handled at a
// higher level now I believe.
BeginUpdateViewBatch();
nsresult res = DoTransaction(txn);
nsresult rv = DoTransaction(transaction);
EndUpdateViewBatch();
if (replacedLength) {
@ -2472,7 +2472,7 @@ nsEditor::InsertTextIntoTextNodeImpl(const nsAString& aStringToInsert,
for (auto& listener : mActionListeners) {
listener->DidInsertText(
static_cast<nsIDOMCharacterData*>(aTextNode.AsDOMNode()),
aOffset, aStringToInsert, res);
aOffset, aStringToInsert, rv);
}
// Added some cruft here for bug 43366. Layout was crashing because we left
@ -2490,11 +2490,11 @@ nsEditor::InsertTextIntoTextNodeImpl(const nsAString& aStringToInsert,
if (!len) {
DeleteNode(mIMETextNode);
mIMETextNode = nullptr;
static_cast<CompositionTransaction*>(txn.get())->MarkFixed();
static_cast<CompositionTransaction*>(transaction.get())->MarkFixed();
}
}
return res;
return rv;
}

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

@ -6,7 +6,6 @@
#include "nsHTMLCSSUtils.h"
#include "ChangeStyleTransaction.h"
#include "EditTxn.h"
#include "mozilla/Assertions.h"
#include "mozilla/Preferences.h"
#include "mozilla/css/Declaration.h"