From 87f40affc10fa4f558839bc985aff946854aa25a Mon Sep 17 00:00:00 2001 From: "kin%netscape.com" Date: Thu, 10 Jun 1999 19:41:40 +0000 Subject: [PATCH] First pass checkin of the JavaScript editor logging mechanism. All changes are ifdef'd with ENABLE_JS_EDITOR_LOG. git-svn-id: svn://10.0.0.236/trunk@34611 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/editor/base/nsEditor.cpp | 104 +++++++++++- mozilla/editor/base/nsEditor.h | 9 +- mozilla/editor/base/nsHTMLEditor.cpp | 157 ++++++++++++++++++ mozilla/editor/base/nsTextEditor.cpp | 81 +++++++++ mozilla/editor/libeditor/base/nsEditor.cpp | 104 +++++++++++- mozilla/editor/libeditor/base/nsEditor.h | 9 +- .../editor/libeditor/html/nsHTMLEditor.cpp | 157 ++++++++++++++++++ 7 files changed, 611 insertions(+), 10 deletions(-) diff --git a/mozilla/editor/base/nsEditor.cpp b/mozilla/editor/base/nsEditor.cpp index b27d8c34395..8a273130281 100644 --- a/mozilla/editor/base/nsEditor.cpp +++ b/mozilla/editor/base/nsEditor.cpp @@ -54,6 +54,10 @@ #include "nsIContentIterator.h" #include "nsLayoutCID.h" +#ifdef ENABLE_JS_EDITOR_LOG +#include "nsJSEditorLog.h" +#endif // ENABLE_JS_EDITOR_LOG + // transactions the editor knows how to build #include "TransactionFactory.h" #include "EditAggregateTxn.h" @@ -290,6 +294,9 @@ nsEditor::nsEditor() , mUpdateCount(0) , mActionListeners(nsnull) , mDoc(nsnull) +#ifdef ENABLE_JS_EDITOR_LOG +, mJSEditorLog(nsnull) +#endif // ENABLE_JS_EDITOR_LOG { //initialize member variables here NS_INIT_REFCNT(); @@ -320,6 +327,14 @@ nsEditor::~nsEditor() mActionListeners = 0; } +#ifdef ENABLE_JS_EDITOR_LOG + if (mJSEditorLog) + { + delete mJSEditorLog; + mJSEditorLog = 0; + } +#endif // ENABLE_JS_EDITOR_LOG + // Release service pointers if (mPrefs) nsServiceManager::ReleaseService(kPrefCID, mPrefs); @@ -518,8 +533,9 @@ nsEditor::Init(nsIDOMDocument *aDoc, nsIPresShell* aPresShell) } // #define DEBUG_WITH_JS_EDITOR_LOG -#ifdef DEBUG_WITH_JS_EDITOR_LOG -#include "nsJSEditorLog.h" +// #define DEBUG_WITH_JS_TXN_LOG +#ifdef DEBUG_WITH_JS_TXN_LOG +#include "nsJSTxnLog.h" #endif NS_IMETHODIMP @@ -539,8 +555,8 @@ nsEditor::EnableUndo(PRBool aEnable) return NS_ERROR_NOT_AVAILABLE; } -#ifdef DEBUG_WITH_JS_EDITOR_LOG - nsJSEditorLog *log = new nsJSEditorLog(); +#ifdef DEBUG_WITH_JS_TXN_LOG + nsJSTxnLog *log = new nsJSTxnLog(); if (log) { NS_ADDREF(log); @@ -548,6 +564,14 @@ nsEditor::EnableUndo(PRBool aEnable) NS_RELEASE(log); } #endif + +#ifdef ENABLE_JS_EDITOR_LOG +#ifdef DEBUG_WITH_JS_EDITOR_LOG + + mJSEditorLog = new nsJSEditorLog(this); + +#endif +#endif // ENABLE_JS_EDITOR_LOG } mTxnMgr->SetMaxTransactionCount(-1); } @@ -832,6 +856,13 @@ nsEditor::Do(nsITransaction *aTxn) NS_IMETHODIMP nsEditor::Undo(PRUint32 aCount) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->Undo(aCount); +#endif // ENABLE_JS_EDITOR_LOG + if (gNoisy) { printf("Editor::Undo ----------\n"); } nsresult result = NS_OK; nsCOMPtrselection; @@ -861,6 +892,13 @@ nsEditor::Undo(PRUint32 aCount) NS_IMETHODIMP nsEditor::Redo(PRUint32 aCount) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->Redo(aCount); +#endif // ENABLE_JS_EDITOR_LOG + if (gNoisy) { printf("Editor::Redo ----------\n"); } nsresult result = NS_OK; nsCOMPtrselection; @@ -885,6 +923,13 @@ nsEditor::Redo(PRUint32 aCount) NS_IMETHODIMP nsEditor::BeginTransaction() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->BeginTransaction(); +#endif // ENABLE_JS_EDITOR_LOG + NS_PRECONDITION(mUpdateCount>=0, "bad state"); nsCOMPtrselection; @@ -917,6 +962,13 @@ nsEditor::BeginTransaction() NS_IMETHODIMP nsEditor::EndTransaction() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->EndTransaction(); +#endif // ENABLE_JS_EDITOR_LOG + NS_PRECONDITION(mUpdateCount>0, "bad state"); if ((nsITransactionManager *)nsnull!=mTxnMgr.get()) @@ -955,6 +1007,13 @@ NS_IMETHODIMP nsEditor::ScrollIntoView(PRBool aScrollToBegin) // XXX: the rule system should tell us which node to select all on (ie, the root, or the body) NS_IMETHODIMP nsEditor::SelectAll() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->SelectAll(); +#endif // ENABLE_JS_EDITOR_LOG + if (!mDoc || !mPresShell) { return NS_ERROR_NOT_INITIALIZED; } nsCOMPtr selection; @@ -990,6 +1049,13 @@ NS_IMETHODIMP nsEditor::SelectAll() NS_IMETHODIMP nsEditor::Cut() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->Cut(); +#endif // ENABLE_JS_EDITOR_LOG + nsCOMPtr selection; nsresult res = mPresShell->GetSelection(getter_AddRefs(selection)); if (!NS_SUCCEEDED(res)) @@ -1008,6 +1074,13 @@ NS_IMETHODIMP nsEditor::Cut() NS_IMETHODIMP nsEditor::Copy() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->Copy(); +#endif // ENABLE_JS_EDITOR_LOG + //printf("nsEditor::Copy\n"); return mPresShell->DoCopy(); @@ -1015,6 +1088,13 @@ NS_IMETHODIMP nsEditor::Copy() NS_IMETHODIMP nsEditor::Paste() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->Paste(); +#endif // ENABLE_JS_EDITOR_LOG + //printf("nsEditor::Paste\n"); nsString stuffToPaste; @@ -1304,6 +1384,15 @@ NS_IMETHODIMP nsEditor::CreateAggregateTxnForDeleteSelection(nsIAtom *aTxnName, NS_IMETHODIMP nsEditor::InsertText(const nsString& aStringToInsert) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertText(aStringToInsert); + + nsAutoEditBatch aeb(this); +#endif // ENABLE_JS_EDITOR_LOG + EditAggregateTxn *aggTxn = nsnull; // Create the "delete current selection" txn nsresult result = CreateAggregateTxnForDeleteSelection(InsertTextTxn::gInsertTextTxnName, &aggTxn); @@ -1673,6 +1762,13 @@ NS_IMETHODIMP nsEditor::DeleteSelectionAndPrepareToCreateNode(nsCOMPtrDeleteSelection(aAction); +#endif // ENABLE_JS_EDITOR_LOG + nsresult result; EditAggregateTxn *txn; diff --git a/mozilla/editor/base/nsEditor.h b/mozilla/editor/base/nsEditor.h index 603969a5c2b..a834d904cd3 100644 --- a/mozilla/editor/base/nsEditor.h +++ b/mozilla/editor/base/nsEditor.h @@ -53,6 +53,10 @@ class nsIStringBundleService; class nsIStringBundle; class nsILocale; +#ifdef ENABLE_JS_EDITOR_LOG +class nsJSEditorLog; +#endif // ENABLE_JS_EDITOR_LOG + //This is the monitor for the editor. PRMonitor *getEditorMonitor(); @@ -77,12 +81,15 @@ private: nsVoidArray *mActionListeners; nsCOMPtr mStringBundle; - protected: nsIDOMDocument * mDoc; // Services are not nsCOMPtr friendly nsIPref* mPrefs; +#ifdef ENABLE_JS_EDITOR_LOG + nsJSEditorLog *mJSEditorLog; +#endif // ENABLE_JS_EDITOR_LOG + public: enum IterDirection diff --git a/mozilla/editor/base/nsHTMLEditor.cpp b/mozilla/editor/base/nsHTMLEditor.cpp index 1cfc698aa32..03f62f91f79 100644 --- a/mozilla/editor/base/nsHTMLEditor.cpp +++ b/mozilla/editor/base/nsHTMLEditor.cpp @@ -47,6 +47,10 @@ #include "nsIDocumentEncoder.h" #include "nsIPresShell.h" +#ifdef ENABLE_JS_EDITOR_LOG +#include "nsJSEditorLog.h" +#endif // ENABLE_JS_EDITOR_LOG + static NS_DEFINE_IID(kInsertHTMLTxnIID, NS_INSERT_HTML_TXN_IID); static NS_DEFINE_CID(kEditorCID, NS_EDITOR_CID); @@ -158,6 +162,13 @@ NS_IMETHODIMP nsHTMLEditor::InsertText(const nsString& aStringToInsert) NS_IMETHODIMP nsHTMLEditor::SetBackgroundColor(const nsString& aColor) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->SetBackgroundColor(aColor); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res; NS_ASSERTION(mDoc, "Missing Editor DOM Document"); @@ -177,6 +188,13 @@ NS_IMETHODIMP nsHTMLEditor::SetBackgroundColor(const nsString& aColor) NS_IMETHODIMP nsHTMLEditor::SetBodyAttribute(const nsString& aAttribute, const nsString& aValue) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->SetBodyAttribute(aAttribute, aValue); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res; // TODO: Check selection for Cell, Row, Column or table and do color on appropriate level @@ -196,6 +214,13 @@ NS_IMETHODIMP nsHTMLEditor::SetBodyAttribute(const nsString& aAttribute, const n NS_IMETHODIMP nsHTMLEditor::InsertBreak() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertBreak(); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res; if (!mRules) { return NS_ERROR_NOT_INITIALIZED; } @@ -278,6 +303,13 @@ NS_IMETHODIMP nsHTMLEditor::GetParagraphFormat(nsString& aParagraphFormat) NS_IMETHODIMP nsHTMLEditor::SetParagraphFormat(const nsString& aParagraphFormat) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->SetParagraphFormat(aParagraphFormat); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res = NS_ERROR_NOT_INITIALIZED; //Kinda sad to waste memory just to force lower case nsAutoString tag = aParagraphFormat; @@ -408,12 +440,26 @@ NS_IMETHODIMP nsHTMLEditor::Paste() // NS_IMETHODIMP nsHTMLEditor::PasteAsQuotation() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->PasteAsQuotation(); +#endif // ENABLE_JS_EDITOR_LOG + nsAutoString citation(""); return PasteAsCitedQuotation(citation); } NS_IMETHODIMP nsHTMLEditor::PasteAsCitedQuotation(const nsString& aCitation) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->PasteAsCitedQuotation(aCitation); +#endif // ENABLE_JS_EDITOR_LOG + printf("nsHTMLEditor::PasteAsQuotation\n"); nsAutoEditBatch beginBatching(this); @@ -456,6 +502,13 @@ NS_IMETHODIMP nsHTMLEditor::PasteAsCitedQuotation(const nsString& aCitation) NS_IMETHODIMP nsHTMLEditor::InsertAsQuotation(const nsString& aQuotedText) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertAsQuotation(aQuotedText); +#endif // ENABLE_JS_EDITOR_LOG + nsAutoString citation (""); return InsertAsCitedQuotation(aQuotedText, citation); } @@ -463,6 +516,13 @@ NS_IMETHODIMP nsHTMLEditor::InsertAsQuotation(const nsString& aQuotedText) NS_IMETHODIMP nsHTMLEditor::InsertAsCitedQuotation(const nsString& aQuotedText, const nsString& aCitation) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertAsCitedQuotation(aQuotedText, aCitation); +#endif // ENABLE_JS_EDITOR_LOG + printf("nsHTMLEditor::InsertAsQuotation\n"); nsAutoEditBatch beginBatching(this); @@ -490,6 +550,13 @@ NS_IMETHODIMP nsHTMLEditor::InsertAsCitedQuotation(const nsString& aQuotedText, NS_IMETHODIMP nsHTMLEditor::InsertHTML(const nsString& aInputString) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertHTML(aInputString); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res; nsAutoEditBatch beginBatching(this); @@ -720,6 +787,13 @@ nsHTMLEditor::GetParagraphStyle(nsStringArray *aTagList) NS_IMETHODIMP nsHTMLEditor::AddBlockParent(nsString& aParentTag) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->AddBlockParent(aParentTag); +#endif // ENABLE_JS_EDITOR_LOG + if (gNoisy) { char *tag = aParentTag.ToNewCString(); @@ -764,6 +838,12 @@ nsHTMLEditor::AddBlockParent(nsString& aParentTag) NS_IMETHODIMP nsHTMLEditor::ReplaceBlockParent(nsString& aParentTag) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->ReplaceBlockParent(aParentTag); +#endif // ENABLE_JS_EDITOR_LOG if (gNoisy) { @@ -1153,6 +1233,13 @@ nsHTMLEditor::ReParentContentOfRange(nsIDOMRange *aRange, NS_IMETHODIMP nsHTMLEditor::RemoveParagraphStyle() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->RemoveParagraphStyle(); +#endif // ENABLE_JS_EDITOR_LOG + if (gNoisy) { printf("---------- nsHTMLEditor::RemoveParagraphStyle ----------\n"); } @@ -1266,6 +1353,13 @@ nsHTMLEditor::RemoveParagraphStyleFromBlockContent(nsIDOMRange *aRange) NS_IMETHODIMP nsHTMLEditor::RemoveParent(const nsString &aParentTag) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->RemoveParent(aParentTag); +#endif // ENABLE_JS_EDITOR_LOG + if (gNoisy) { printf("---------- nsHTMLEditor::RemoveParent ----------\n"); } @@ -1386,6 +1480,13 @@ nsHTMLEditor::RemoveParentFromBlockContent(const nsString &aParentTag, nsIDOMRan NS_IMETHODIMP nsHTMLEditor::Indent(const nsString& aIndent) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->Indent(aIndent); +#endif // ENABLE_JS_EDITOR_LOG + nsAutoEditBatch beginBatching(this); nsCOMPtr node; PRInt32 offset; @@ -1461,6 +1562,13 @@ nsHTMLEditor::Indent(const nsString& aIndent) NS_IMETHODIMP nsHTMLEditor::Align(const nsString& aAlignType) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->Align(aAlignType); +#endif // ENABLE_JS_EDITOR_LOG + nsAutoEditBatch beginBatching(this); nsCOMPtr node; PRInt32 offset; @@ -1497,6 +1605,13 @@ nsHTMLEditor::Align(const nsString& aAlignType) NS_IMETHODIMP nsHTMLEditor::InsertList(const nsString& aListType) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertList(aListType); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res; if (!mRules) { return NS_ERROR_NOT_INITIALIZED; } @@ -1581,6 +1696,13 @@ nsHTMLEditor::InsertList(const nsString& aListType) NS_IMETHODIMP nsHTMLEditor::InsertLink(nsString& aURL) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertLink(aURL); +#endif // ENABLE_JS_EDITOR_LOG + nsAutoEditBatch beginBatching(this); // Find out if the selection is collapsed: @@ -1673,6 +1795,13 @@ nsHTMLEditor::InsertImage(nsString& aURL, nsString& aAlt, nsString& aAlignment) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertImage(aURL, aWidth, aHeight, aHspace, aVspace, aBorder, aAlt, aAlignment); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res; nsCOMPtr newNode; @@ -1935,6 +2064,13 @@ nsHTMLEditor::CreateElementWithDefaults(const nsString& aTagName, nsIDOMElement* NS_IMETHODIMP nsHTMLEditor::InsertElement(nsIDOMElement* aElement, PRBool aDeleteSelection, nsIDOMElement** aReturn) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertElement(aElement, aDeleteSelection, aReturn); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res=NS_ERROR_NOT_INITIALIZED; if (aReturn) *aReturn = nsnull; @@ -1974,6 +2110,13 @@ nsHTMLEditor::InsertElement(nsIDOMElement* aElement, PRBool aDeleteSelection, ns NS_IMETHODIMP nsHTMLEditor::InsertLinkAroundSelection(nsIDOMElement* aAnchorElement) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertLinkAroundSelection(aAnchorElement); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res=NS_ERROR_NULL_POINTER; nsCOMPtr selection; @@ -2053,6 +2196,13 @@ PRBool nsHTMLEditor::IsElementInBody(nsIDOMElement* aElement) NS_IMETHODIMP nsHTMLEditor::SelectElement(nsIDOMElement* aElement) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->SelectElement(aElement); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res = NS_ERROR_NULL_POINTER; // Must be sure that element is contained in the document body @@ -2085,6 +2235,13 @@ nsHTMLEditor::SelectElement(nsIDOMElement* aElement) NS_IMETHODIMP nsHTMLEditor::SetCaretAfterElement(nsIDOMElement* aElement) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->SetCaretAfterElement(aElement); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res = NS_ERROR_NULL_POINTER; // Must be sure that element is contained in the document body diff --git a/mozilla/editor/base/nsTextEditor.cpp b/mozilla/editor/base/nsTextEditor.cpp index ed1af2ff3ab..b5ca81d59a6 100644 --- a/mozilla/editor/base/nsTextEditor.cpp +++ b/mozilla/editor/base/nsTextEditor.cpp @@ -92,6 +92,10 @@ static NS_DEFINE_IID(kCXIFFormatConverterCID, NS_XIFFORMATCONVERTER_CID); #include "nsAOLCiter.h" #include "nsInternetCiter.h" +#ifdef ENABLE_JS_EDITOR_LOG +#include "nsJSEditorLog.h" +#endif // ENABLE_JS_EDITOR_LOG + static NS_DEFINE_CID(kEditorCID, NS_EDITOR_CID); static NS_DEFINE_CID(kTextEditorCID, NS_TEXTEDITOR_CID); static NS_DEFINE_CID(kCContentIteratorCID, NS_CONTENTITERATOR_CID); @@ -378,6 +382,13 @@ NS_IMETHODIMP nsTextEditor::SetTextProperty(nsIAtom *aProperty, const nsString *aAttribute, const nsString *aValue) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->SetTextProperty(aProperty, aAttribute, aValue); +#endif // ENABLE_JS_EDITOR_LOG + if (!aProperty) { return NS_ERROR_NULL_POINTER; } if (!mRules) { return NS_ERROR_NOT_INITIALIZED; } @@ -698,6 +709,13 @@ void nsTextEditor::IsTextPropertySetByContent(nsIDOMNode *aNode, NS_IMETHODIMP nsTextEditor::RemoveTextProperty(nsIAtom *aProperty, const nsString *aAttribute) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->RemoveTextProperty(aProperty, aAttribute); +#endif // ENABLE_JS_EDITOR_LOG + if (!aProperty) { return NS_ERROR_NULL_POINTER; } if (!mRules) { return NS_ERROR_NOT_INITIALIZED; } @@ -945,6 +963,13 @@ void nsTextEditor::ResetTextSelectionForRange(nsIDOMNode *aParent, NS_IMETHODIMP nsTextEditor::DeleteSelection(nsIEditor::ECollapsedSelectionAction aAction) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->DeleteSelection(aAction); +#endif // ENABLE_JS_EDITOR_LOG + if (!mRules) { return NS_ERROR_NOT_INITIALIZED; } nsCOMPtr selection; @@ -973,6 +998,13 @@ NS_IMETHODIMP nsTextEditor::DeleteSelection(nsIEditor::ECollapsedSelectionAction NS_IMETHODIMP nsTextEditor::InsertText(const nsString& aStringToInsert) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertText(aStringToInsert); +#endif // ENABLE_JS_EDITOR_LOG + if (!mRules) { return NS_ERROR_NOT_INITIALIZED; } nsCOMPtr selection; @@ -1010,6 +1042,13 @@ NS_IMETHODIMP nsTextEditor::SetMaxTextLength(PRInt32 aMaxTextLength) NS_IMETHODIMP nsTextEditor::InsertBreak() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertBreak(); +#endif // ENABLE_JS_EDITOR_LOG + nsCOMPtr selection; PRBool cancel= PR_FALSE; @@ -1037,6 +1076,13 @@ NS_IMETHODIMP nsTextEditor::EnableUndo(PRBool aEnable) NS_IMETHODIMP nsTextEditor::Undo(PRUint32 aCount) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->Undo(aCount); +#endif // ENABLE_JS_EDITOR_LOG + nsCOMPtr selection; PRBool cancel= PR_FALSE; @@ -1060,6 +1106,13 @@ NS_IMETHODIMP nsTextEditor::CanUndo(PRBool &aIsEnabled, PRBool &aCanUndo) NS_IMETHODIMP nsTextEditor::Redo(PRUint32 aCount) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->Redo(aCount); +#endif // ENABLE_JS_EDITOR_LOG + nsCOMPtr selection; PRBool cancel= PR_FALSE; @@ -1201,11 +1254,25 @@ NS_IMETHODIMP nsTextEditor::SaveDocument(PRBool saveAs, PRBool saveCopy) NS_IMETHODIMP nsTextEditor::Save() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->Save(); +#endif // ENABLE_JS_EDITOR_LOG + return SaveDocument(PR_FALSE, PR_FALSE); } NS_IMETHODIMP nsTextEditor::SaveAs(PRBool aSavingCopy) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->SaveAs(aSavingCopy); +#endif // ENABLE_JS_EDITOR_LOG + return SaveDocument(PR_TRUE, aSavingCopy); } @@ -1229,6 +1296,13 @@ NS_IMETHODIMP nsTextEditor::Paste() // NS_IMETHODIMP nsTextEditor::PasteAsQuotation() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->PasteAsQuotation(); +#endif // ENABLE_JS_EDITOR_LOG + #ifdef DEBUG_akkana printf("nsTextEditor::PasteAsQuotation\n"); #endif @@ -1281,6 +1355,13 @@ NS_IMETHODIMP nsTextEditor::PasteAsQuotation() NS_IMETHODIMP nsTextEditor::InsertAsQuotation(const nsString& aQuotedText) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertAsQuotation(aQuotedText); +#endif // ENABLE_JS_EDITOR_LOG + // Now we have the text. Cite it appropriately: nsCOMPtr citer; nsCOMPtr prefs; diff --git a/mozilla/editor/libeditor/base/nsEditor.cpp b/mozilla/editor/libeditor/base/nsEditor.cpp index b27d8c34395..8a273130281 100644 --- a/mozilla/editor/libeditor/base/nsEditor.cpp +++ b/mozilla/editor/libeditor/base/nsEditor.cpp @@ -54,6 +54,10 @@ #include "nsIContentIterator.h" #include "nsLayoutCID.h" +#ifdef ENABLE_JS_EDITOR_LOG +#include "nsJSEditorLog.h" +#endif // ENABLE_JS_EDITOR_LOG + // transactions the editor knows how to build #include "TransactionFactory.h" #include "EditAggregateTxn.h" @@ -290,6 +294,9 @@ nsEditor::nsEditor() , mUpdateCount(0) , mActionListeners(nsnull) , mDoc(nsnull) +#ifdef ENABLE_JS_EDITOR_LOG +, mJSEditorLog(nsnull) +#endif // ENABLE_JS_EDITOR_LOG { //initialize member variables here NS_INIT_REFCNT(); @@ -320,6 +327,14 @@ nsEditor::~nsEditor() mActionListeners = 0; } +#ifdef ENABLE_JS_EDITOR_LOG + if (mJSEditorLog) + { + delete mJSEditorLog; + mJSEditorLog = 0; + } +#endif // ENABLE_JS_EDITOR_LOG + // Release service pointers if (mPrefs) nsServiceManager::ReleaseService(kPrefCID, mPrefs); @@ -518,8 +533,9 @@ nsEditor::Init(nsIDOMDocument *aDoc, nsIPresShell* aPresShell) } // #define DEBUG_WITH_JS_EDITOR_LOG -#ifdef DEBUG_WITH_JS_EDITOR_LOG -#include "nsJSEditorLog.h" +// #define DEBUG_WITH_JS_TXN_LOG +#ifdef DEBUG_WITH_JS_TXN_LOG +#include "nsJSTxnLog.h" #endif NS_IMETHODIMP @@ -539,8 +555,8 @@ nsEditor::EnableUndo(PRBool aEnable) return NS_ERROR_NOT_AVAILABLE; } -#ifdef DEBUG_WITH_JS_EDITOR_LOG - nsJSEditorLog *log = new nsJSEditorLog(); +#ifdef DEBUG_WITH_JS_TXN_LOG + nsJSTxnLog *log = new nsJSTxnLog(); if (log) { NS_ADDREF(log); @@ -548,6 +564,14 @@ nsEditor::EnableUndo(PRBool aEnable) NS_RELEASE(log); } #endif + +#ifdef ENABLE_JS_EDITOR_LOG +#ifdef DEBUG_WITH_JS_EDITOR_LOG + + mJSEditorLog = new nsJSEditorLog(this); + +#endif +#endif // ENABLE_JS_EDITOR_LOG } mTxnMgr->SetMaxTransactionCount(-1); } @@ -832,6 +856,13 @@ nsEditor::Do(nsITransaction *aTxn) NS_IMETHODIMP nsEditor::Undo(PRUint32 aCount) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->Undo(aCount); +#endif // ENABLE_JS_EDITOR_LOG + if (gNoisy) { printf("Editor::Undo ----------\n"); } nsresult result = NS_OK; nsCOMPtrselection; @@ -861,6 +892,13 @@ nsEditor::Undo(PRUint32 aCount) NS_IMETHODIMP nsEditor::Redo(PRUint32 aCount) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->Redo(aCount); +#endif // ENABLE_JS_EDITOR_LOG + if (gNoisy) { printf("Editor::Redo ----------\n"); } nsresult result = NS_OK; nsCOMPtrselection; @@ -885,6 +923,13 @@ nsEditor::Redo(PRUint32 aCount) NS_IMETHODIMP nsEditor::BeginTransaction() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->BeginTransaction(); +#endif // ENABLE_JS_EDITOR_LOG + NS_PRECONDITION(mUpdateCount>=0, "bad state"); nsCOMPtrselection; @@ -917,6 +962,13 @@ nsEditor::BeginTransaction() NS_IMETHODIMP nsEditor::EndTransaction() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->EndTransaction(); +#endif // ENABLE_JS_EDITOR_LOG + NS_PRECONDITION(mUpdateCount>0, "bad state"); if ((nsITransactionManager *)nsnull!=mTxnMgr.get()) @@ -955,6 +1007,13 @@ NS_IMETHODIMP nsEditor::ScrollIntoView(PRBool aScrollToBegin) // XXX: the rule system should tell us which node to select all on (ie, the root, or the body) NS_IMETHODIMP nsEditor::SelectAll() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->SelectAll(); +#endif // ENABLE_JS_EDITOR_LOG + if (!mDoc || !mPresShell) { return NS_ERROR_NOT_INITIALIZED; } nsCOMPtr selection; @@ -990,6 +1049,13 @@ NS_IMETHODIMP nsEditor::SelectAll() NS_IMETHODIMP nsEditor::Cut() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->Cut(); +#endif // ENABLE_JS_EDITOR_LOG + nsCOMPtr selection; nsresult res = mPresShell->GetSelection(getter_AddRefs(selection)); if (!NS_SUCCEEDED(res)) @@ -1008,6 +1074,13 @@ NS_IMETHODIMP nsEditor::Cut() NS_IMETHODIMP nsEditor::Copy() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->Copy(); +#endif // ENABLE_JS_EDITOR_LOG + //printf("nsEditor::Copy\n"); return mPresShell->DoCopy(); @@ -1015,6 +1088,13 @@ NS_IMETHODIMP nsEditor::Copy() NS_IMETHODIMP nsEditor::Paste() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->Paste(); +#endif // ENABLE_JS_EDITOR_LOG + //printf("nsEditor::Paste\n"); nsString stuffToPaste; @@ -1304,6 +1384,15 @@ NS_IMETHODIMP nsEditor::CreateAggregateTxnForDeleteSelection(nsIAtom *aTxnName, NS_IMETHODIMP nsEditor::InsertText(const nsString& aStringToInsert) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertText(aStringToInsert); + + nsAutoEditBatch aeb(this); +#endif // ENABLE_JS_EDITOR_LOG + EditAggregateTxn *aggTxn = nsnull; // Create the "delete current selection" txn nsresult result = CreateAggregateTxnForDeleteSelection(InsertTextTxn::gInsertTextTxnName, &aggTxn); @@ -1673,6 +1762,13 @@ NS_IMETHODIMP nsEditor::DeleteSelectionAndPrepareToCreateNode(nsCOMPtrDeleteSelection(aAction); +#endif // ENABLE_JS_EDITOR_LOG + nsresult result; EditAggregateTxn *txn; diff --git a/mozilla/editor/libeditor/base/nsEditor.h b/mozilla/editor/libeditor/base/nsEditor.h index 603969a5c2b..a834d904cd3 100644 --- a/mozilla/editor/libeditor/base/nsEditor.h +++ b/mozilla/editor/libeditor/base/nsEditor.h @@ -53,6 +53,10 @@ class nsIStringBundleService; class nsIStringBundle; class nsILocale; +#ifdef ENABLE_JS_EDITOR_LOG +class nsJSEditorLog; +#endif // ENABLE_JS_EDITOR_LOG + //This is the monitor for the editor. PRMonitor *getEditorMonitor(); @@ -77,12 +81,15 @@ private: nsVoidArray *mActionListeners; nsCOMPtr mStringBundle; - protected: nsIDOMDocument * mDoc; // Services are not nsCOMPtr friendly nsIPref* mPrefs; +#ifdef ENABLE_JS_EDITOR_LOG + nsJSEditorLog *mJSEditorLog; +#endif // ENABLE_JS_EDITOR_LOG + public: enum IterDirection diff --git a/mozilla/editor/libeditor/html/nsHTMLEditor.cpp b/mozilla/editor/libeditor/html/nsHTMLEditor.cpp index 1cfc698aa32..03f62f91f79 100644 --- a/mozilla/editor/libeditor/html/nsHTMLEditor.cpp +++ b/mozilla/editor/libeditor/html/nsHTMLEditor.cpp @@ -47,6 +47,10 @@ #include "nsIDocumentEncoder.h" #include "nsIPresShell.h" +#ifdef ENABLE_JS_EDITOR_LOG +#include "nsJSEditorLog.h" +#endif // ENABLE_JS_EDITOR_LOG + static NS_DEFINE_IID(kInsertHTMLTxnIID, NS_INSERT_HTML_TXN_IID); static NS_DEFINE_CID(kEditorCID, NS_EDITOR_CID); @@ -158,6 +162,13 @@ NS_IMETHODIMP nsHTMLEditor::InsertText(const nsString& aStringToInsert) NS_IMETHODIMP nsHTMLEditor::SetBackgroundColor(const nsString& aColor) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->SetBackgroundColor(aColor); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res; NS_ASSERTION(mDoc, "Missing Editor DOM Document"); @@ -177,6 +188,13 @@ NS_IMETHODIMP nsHTMLEditor::SetBackgroundColor(const nsString& aColor) NS_IMETHODIMP nsHTMLEditor::SetBodyAttribute(const nsString& aAttribute, const nsString& aValue) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->SetBodyAttribute(aAttribute, aValue); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res; // TODO: Check selection for Cell, Row, Column or table and do color on appropriate level @@ -196,6 +214,13 @@ NS_IMETHODIMP nsHTMLEditor::SetBodyAttribute(const nsString& aAttribute, const n NS_IMETHODIMP nsHTMLEditor::InsertBreak() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertBreak(); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res; if (!mRules) { return NS_ERROR_NOT_INITIALIZED; } @@ -278,6 +303,13 @@ NS_IMETHODIMP nsHTMLEditor::GetParagraphFormat(nsString& aParagraphFormat) NS_IMETHODIMP nsHTMLEditor::SetParagraphFormat(const nsString& aParagraphFormat) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->SetParagraphFormat(aParagraphFormat); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res = NS_ERROR_NOT_INITIALIZED; //Kinda sad to waste memory just to force lower case nsAutoString tag = aParagraphFormat; @@ -408,12 +440,26 @@ NS_IMETHODIMP nsHTMLEditor::Paste() // NS_IMETHODIMP nsHTMLEditor::PasteAsQuotation() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->PasteAsQuotation(); +#endif // ENABLE_JS_EDITOR_LOG + nsAutoString citation(""); return PasteAsCitedQuotation(citation); } NS_IMETHODIMP nsHTMLEditor::PasteAsCitedQuotation(const nsString& aCitation) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->PasteAsCitedQuotation(aCitation); +#endif // ENABLE_JS_EDITOR_LOG + printf("nsHTMLEditor::PasteAsQuotation\n"); nsAutoEditBatch beginBatching(this); @@ -456,6 +502,13 @@ NS_IMETHODIMP nsHTMLEditor::PasteAsCitedQuotation(const nsString& aCitation) NS_IMETHODIMP nsHTMLEditor::InsertAsQuotation(const nsString& aQuotedText) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertAsQuotation(aQuotedText); +#endif // ENABLE_JS_EDITOR_LOG + nsAutoString citation (""); return InsertAsCitedQuotation(aQuotedText, citation); } @@ -463,6 +516,13 @@ NS_IMETHODIMP nsHTMLEditor::InsertAsQuotation(const nsString& aQuotedText) NS_IMETHODIMP nsHTMLEditor::InsertAsCitedQuotation(const nsString& aQuotedText, const nsString& aCitation) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertAsCitedQuotation(aQuotedText, aCitation); +#endif // ENABLE_JS_EDITOR_LOG + printf("nsHTMLEditor::InsertAsQuotation\n"); nsAutoEditBatch beginBatching(this); @@ -490,6 +550,13 @@ NS_IMETHODIMP nsHTMLEditor::InsertAsCitedQuotation(const nsString& aQuotedText, NS_IMETHODIMP nsHTMLEditor::InsertHTML(const nsString& aInputString) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertHTML(aInputString); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res; nsAutoEditBatch beginBatching(this); @@ -720,6 +787,13 @@ nsHTMLEditor::GetParagraphStyle(nsStringArray *aTagList) NS_IMETHODIMP nsHTMLEditor::AddBlockParent(nsString& aParentTag) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->AddBlockParent(aParentTag); +#endif // ENABLE_JS_EDITOR_LOG + if (gNoisy) { char *tag = aParentTag.ToNewCString(); @@ -764,6 +838,12 @@ nsHTMLEditor::AddBlockParent(nsString& aParentTag) NS_IMETHODIMP nsHTMLEditor::ReplaceBlockParent(nsString& aParentTag) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->ReplaceBlockParent(aParentTag); +#endif // ENABLE_JS_EDITOR_LOG if (gNoisy) { @@ -1153,6 +1233,13 @@ nsHTMLEditor::ReParentContentOfRange(nsIDOMRange *aRange, NS_IMETHODIMP nsHTMLEditor::RemoveParagraphStyle() { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->RemoveParagraphStyle(); +#endif // ENABLE_JS_EDITOR_LOG + if (gNoisy) { printf("---------- nsHTMLEditor::RemoveParagraphStyle ----------\n"); } @@ -1266,6 +1353,13 @@ nsHTMLEditor::RemoveParagraphStyleFromBlockContent(nsIDOMRange *aRange) NS_IMETHODIMP nsHTMLEditor::RemoveParent(const nsString &aParentTag) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->RemoveParent(aParentTag); +#endif // ENABLE_JS_EDITOR_LOG + if (gNoisy) { printf("---------- nsHTMLEditor::RemoveParent ----------\n"); } @@ -1386,6 +1480,13 @@ nsHTMLEditor::RemoveParentFromBlockContent(const nsString &aParentTag, nsIDOMRan NS_IMETHODIMP nsHTMLEditor::Indent(const nsString& aIndent) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->Indent(aIndent); +#endif // ENABLE_JS_EDITOR_LOG + nsAutoEditBatch beginBatching(this); nsCOMPtr node; PRInt32 offset; @@ -1461,6 +1562,13 @@ nsHTMLEditor::Indent(const nsString& aIndent) NS_IMETHODIMP nsHTMLEditor::Align(const nsString& aAlignType) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->Align(aAlignType); +#endif // ENABLE_JS_EDITOR_LOG + nsAutoEditBatch beginBatching(this); nsCOMPtr node; PRInt32 offset; @@ -1497,6 +1605,13 @@ nsHTMLEditor::Align(const nsString& aAlignType) NS_IMETHODIMP nsHTMLEditor::InsertList(const nsString& aListType) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertList(aListType); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res; if (!mRules) { return NS_ERROR_NOT_INITIALIZED; } @@ -1581,6 +1696,13 @@ nsHTMLEditor::InsertList(const nsString& aListType) NS_IMETHODIMP nsHTMLEditor::InsertLink(nsString& aURL) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertLink(aURL); +#endif // ENABLE_JS_EDITOR_LOG + nsAutoEditBatch beginBatching(this); // Find out if the selection is collapsed: @@ -1673,6 +1795,13 @@ nsHTMLEditor::InsertImage(nsString& aURL, nsString& aAlt, nsString& aAlignment) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertImage(aURL, aWidth, aHeight, aHspace, aVspace, aBorder, aAlt, aAlignment); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res; nsCOMPtr newNode; @@ -1935,6 +2064,13 @@ nsHTMLEditor::CreateElementWithDefaults(const nsString& aTagName, nsIDOMElement* NS_IMETHODIMP nsHTMLEditor::InsertElement(nsIDOMElement* aElement, PRBool aDeleteSelection, nsIDOMElement** aReturn) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertElement(aElement, aDeleteSelection, aReturn); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res=NS_ERROR_NOT_INITIALIZED; if (aReturn) *aReturn = nsnull; @@ -1974,6 +2110,13 @@ nsHTMLEditor::InsertElement(nsIDOMElement* aElement, PRBool aDeleteSelection, ns NS_IMETHODIMP nsHTMLEditor::InsertLinkAroundSelection(nsIDOMElement* aAnchorElement) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->InsertLinkAroundSelection(aAnchorElement); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res=NS_ERROR_NULL_POINTER; nsCOMPtr selection; @@ -2053,6 +2196,13 @@ PRBool nsHTMLEditor::IsElementInBody(nsIDOMElement* aElement) NS_IMETHODIMP nsHTMLEditor::SelectElement(nsIDOMElement* aElement) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->SelectElement(aElement); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res = NS_ERROR_NULL_POINTER; // Must be sure that element is contained in the document body @@ -2085,6 +2235,13 @@ nsHTMLEditor::SelectElement(nsIDOMElement* aElement) NS_IMETHODIMP nsHTMLEditor::SetCaretAfterElement(nsIDOMElement* aElement) { +#ifdef ENABLE_JS_EDITOR_LOG + nsAutoJSEditorLogLock logLock(mJSEditorLog); + + if (mJSEditorLog) + mJSEditorLog->SetCaretAfterElement(aElement); +#endif // ENABLE_JS_EDITOR_LOG + nsresult res = NS_ERROR_NULL_POINTER; // Must be sure that element is contained in the document body