gecko-dev/editor/libeditor/base/DeleteRangeTxn.cpp
Wes Kocher c0ef156478 Backed out 6 changesets (bug 1028559, bug 1028565) for android mochitest bustage on a CLOSED TREE
Backed out changeset fdd74c065e5d (bug 1028565)
Backed out changeset 5e9777d38052 (bug 1028565)
Backed out changeset 3510bcdba3fc (bug 1028565)
Backed out changeset 62ad3254903e (bug 1028565)
Backed out changeset e7557f70acfe (bug 1028565)
Backed out changeset 5b1b527abe47 (bug 1028559)

--HG--
rename : editor/composer/nsIEditingSession.idl => editor/composer/public/nsIEditingSession.idl
rename : editor/composer/crashtests/351236-1.html => editor/composer/src/crashtests/351236-1.html
rename : editor/composer/crashtests/407062-1.html => editor/composer/src/crashtests/407062-1.html
rename : editor/composer/crashtests/419563-1.xhtml => editor/composer/src/crashtests/419563-1.xhtml
rename : editor/composer/crashtests/428844-1-inner.xhtml => editor/composer/src/crashtests/428844-1-inner.xhtml
rename : editor/composer/crashtests/428844-1.html => editor/composer/src/crashtests/428844-1.html
rename : editor/composer/crashtests/461049-1.html => editor/composer/src/crashtests/461049-1.html
rename : editor/composer/crashtests/crashtests.list => editor/composer/src/crashtests/crashtests.list
rename : editor/composer/crashtests/removing-editable-xslt-inner.xhtml => editor/composer/src/crashtests/removing-editable-xslt-inner.xhtml
rename : editor/composer/crashtests/removing-editable-xslt.html => editor/composer/src/crashtests/removing-editable-xslt.html
rename : editor/composer/nsComposeTxtSrvFilter.cpp => editor/composer/src/nsComposeTxtSrvFilter.cpp
rename : editor/composer/nsComposeTxtSrvFilter.h => editor/composer/src/nsComposeTxtSrvFilter.h
rename : editor/composer/nsComposerCommands.cpp => editor/composer/src/nsComposerCommands.cpp
rename : editor/composer/nsComposerCommands.h => editor/composer/src/nsComposerCommands.h
rename : editor/composer/nsComposerCommandsUpdater.cpp => editor/composer/src/nsComposerCommandsUpdater.cpp
rename : editor/composer/nsComposerCommandsUpdater.h => editor/composer/src/nsComposerCommandsUpdater.h
rename : editor/composer/nsComposerController.cpp => editor/composer/src/nsComposerController.cpp
rename : editor/composer/nsComposerController.h => editor/composer/src/nsComposerController.h
rename : editor/composer/nsComposerDocumentCommands.cpp => editor/composer/src/nsComposerDocumentCommands.cpp
rename : editor/composer/nsComposerRegistration.cpp => editor/composer/src/nsComposerRegistration.cpp
rename : editor/composer/nsEditingSession.cpp => editor/composer/src/nsEditingSession.cpp
rename : editor/composer/nsEditingSession.h => editor/composer/src/nsEditingSession.h
rename : editor/composer/nsEditorSpellCheck.cpp => editor/composer/src/nsEditorSpellCheck.cpp
rename : editor/composer/nsEditorSpellCheck.h => editor/composer/src/nsEditorSpellCheck.h
rename : editor/composer/res/EditorOverride.css => editor/composer/src/res/EditorOverride.css
rename : editor/composer/res/grabber.gif => editor/composer/src/res/grabber.gif
rename : editor/composer/res/table-add-column-after-active.gif => editor/composer/src/res/table-add-column-after-active.gif
rename : editor/composer/res/table-add-column-after-hover.gif => editor/composer/src/res/table-add-column-after-hover.gif
rename : editor/composer/res/table-add-column-after.gif => editor/composer/src/res/table-add-column-after.gif
rename : editor/composer/res/table-add-column-before-active.gif => editor/composer/src/res/table-add-column-before-active.gif
rename : editor/composer/res/table-add-column-before-hover.gif => editor/composer/src/res/table-add-column-before-hover.gif
rename : editor/composer/res/table-add-column-before.gif => editor/composer/src/res/table-add-column-before.gif
rename : editor/composer/res/table-add-row-after-active.gif => editor/composer/src/res/table-add-row-after-active.gif
rename : editor/composer/res/table-add-row-after-hover.gif => editor/composer/src/res/table-add-row-after-hover.gif
rename : editor/composer/res/table-add-row-after.gif => editor/composer/src/res/table-add-row-after.gif
rename : editor/composer/res/table-add-row-before-active.gif => editor/composer/src/res/table-add-row-before-active.gif
rename : editor/composer/res/table-add-row-before-hover.gif => editor/composer/src/res/table-add-row-before-hover.gif
rename : editor/composer/res/table-add-row-before.gif => editor/composer/src/res/table-add-row-before.gif
rename : editor/composer/res/table-remove-column-active.gif => editor/composer/src/res/table-remove-column-active.gif
rename : editor/composer/res/table-remove-column-hover.gif => editor/composer/src/res/table-remove-column-hover.gif
rename : editor/composer/res/table-remove-column.gif => editor/composer/src/res/table-remove-column.gif
rename : editor/composer/res/table-remove-row-active.gif => editor/composer/src/res/table-remove-row-active.gif
rename : editor/composer/res/table-remove-row-hover.gif => editor/composer/src/res/table-remove-row-hover.gif
rename : editor/composer/res/table-remove-row.gif => editor/composer/src/res/table-remove-row.gif
rename : editor/composer/res/text_caret.png => editor/composer/src/res/text_caret.png
rename : editor/composer/res/text_caret@1.5x.png => editor/composer/src/res/text_caret@1.5x.png
rename : editor/composer/res/text_caret@2.25x.png => editor/composer/src/res/text_caret@2.25x.png
rename : editor/composer/res/text_caret@2x.png => editor/composer/src/res/text_caret@2x.png
rename : editor/composer/res/text_caret_tilt_left.png => editor/composer/src/res/text_caret_tilt_left.png
rename : editor/composer/res/text_caret_tilt_left@1.5x.png => editor/composer/src/res/text_caret_tilt_left@1.5x.png
rename : editor/composer/res/text_caret_tilt_left@2.25x.png => editor/composer/src/res/text_caret_tilt_left@2.25x.png
rename : editor/composer/res/text_caret_tilt_left@2x.png => editor/composer/src/res/text_caret_tilt_left@2x.png
rename : editor/composer/res/text_caret_tilt_right.png => editor/composer/src/res/text_caret_tilt_right.png
rename : editor/composer/res/text_caret_tilt_right@1.5x.png => editor/composer/src/res/text_caret_tilt_right@1.5x.png
rename : editor/composer/res/text_caret_tilt_right@2.25x.png => editor/composer/src/res/text_caret_tilt_right@2.25x.png
rename : editor/composer/res/text_caret_tilt_right@2x.png => editor/composer/src/res/text_caret_tilt_right@2x.png
rename : editor/composer/res/text_selection_handle.png => editor/composer/src/res/text_selection_handle.png
rename : editor/composer/res/text_selection_handle@1.5.png => editor/composer/src/res/text_selection_handle@1.5.png
rename : editor/composer/res/text_selection_handle@2.png => editor/composer/src/res/text_selection_handle@2.png
rename : editor/nsIContentFilter.idl => editor/idl/nsIContentFilter.idl
rename : editor/nsIDocumentStateListener.idl => editor/idl/nsIDocumentStateListener.idl
rename : editor/nsIEditActionListener.idl => editor/idl/nsIEditActionListener.idl
rename : editor/nsIEditor.idl => editor/idl/nsIEditor.idl
rename : editor/nsIEditorIMESupport.idl => editor/idl/nsIEditorIMESupport.idl
rename : editor/nsIEditorMailSupport.idl => editor/idl/nsIEditorMailSupport.idl
rename : editor/nsIEditorObserver.idl => editor/idl/nsIEditorObserver.idl
rename : editor/nsIEditorSpellCheck.idl => editor/idl/nsIEditorSpellCheck.idl
rename : editor/nsIEditorStyleSheets.idl => editor/idl/nsIEditorStyleSheets.idl
rename : editor/nsIHTMLAbsPosEditor.idl => editor/idl/nsIHTMLAbsPosEditor.idl
rename : editor/nsIHTMLEditor.idl => editor/idl/nsIHTMLEditor.idl
rename : editor/nsIHTMLInlineTableEditor.idl => editor/idl/nsIHTMLInlineTableEditor.idl
rename : editor/nsIHTMLObjectResizeListener.idl => editor/idl/nsIHTMLObjectResizeListener.idl
rename : editor/nsIHTMLObjectResizer.idl => editor/idl/nsIHTMLObjectResizer.idl
rename : editor/nsIPlaintextEditor.idl => editor/idl/nsIPlaintextEditor.idl
rename : editor/nsITableEditor.idl => editor/idl/nsITableEditor.idl
rename : editor/nsIURIRefObject.idl => editor/idl/nsIURIRefObject.idl
rename : editor/nsPIEditorTransaction.idl => editor/idl/nsPIEditorTransaction.idl
rename : editor/libeditor/ChangeAttributeTxn.cpp => editor/libeditor/base/ChangeAttributeTxn.cpp
rename : editor/libeditor/ChangeAttributeTxn.h => editor/libeditor/base/ChangeAttributeTxn.h
rename : editor/libeditor/ChangeCSSInlineStyleTxn.cpp => editor/libeditor/base/ChangeCSSInlineStyleTxn.cpp
rename : editor/libeditor/ChangeCSSInlineStyleTxn.h => editor/libeditor/base/ChangeCSSInlineStyleTxn.h
rename : editor/libeditor/CreateElementTxn.cpp => editor/libeditor/base/CreateElementTxn.cpp
rename : editor/libeditor/CreateElementTxn.h => editor/libeditor/base/CreateElementTxn.h
rename : editor/libeditor/DeleteNodeTxn.cpp => editor/libeditor/base/DeleteNodeTxn.cpp
rename : editor/libeditor/DeleteNodeTxn.h => editor/libeditor/base/DeleteNodeTxn.h
rename : editor/libeditor/DeleteRangeTxn.cpp => editor/libeditor/base/DeleteRangeTxn.cpp
rename : editor/libeditor/DeleteRangeTxn.h => editor/libeditor/base/DeleteRangeTxn.h
rename : editor/libeditor/DeleteTextTxn.cpp => editor/libeditor/base/DeleteTextTxn.cpp
rename : editor/libeditor/DeleteTextTxn.h => editor/libeditor/base/DeleteTextTxn.h
rename : editor/libeditor/EditActionListener.h => editor/libeditor/base/EditActionListener.h
rename : editor/libeditor/EditAggregateTxn.cpp => editor/libeditor/base/EditAggregateTxn.cpp
rename : editor/libeditor/EditAggregateTxn.h => editor/libeditor/base/EditAggregateTxn.h
rename : editor/libeditor/EditTxn.cpp => editor/libeditor/base/EditTxn.cpp
rename : editor/libeditor/EditTxn.h => editor/libeditor/base/EditTxn.h
rename : editor/libeditor/IMETextTxn.cpp => editor/libeditor/base/IMETextTxn.cpp
rename : editor/libeditor/IMETextTxn.h => editor/libeditor/base/IMETextTxn.h
rename : editor/libeditor/InsertElementTxn.cpp => editor/libeditor/base/InsertElementTxn.cpp
rename : editor/libeditor/InsertElementTxn.h => editor/libeditor/base/InsertElementTxn.h
rename : editor/libeditor/InsertTextTxn.cpp => editor/libeditor/base/InsertTextTxn.cpp
rename : editor/libeditor/InsertTextTxn.h => editor/libeditor/base/InsertTextTxn.h
rename : editor/libeditor/JoinElementTxn.cpp => editor/libeditor/base/JoinElementTxn.cpp
rename : editor/libeditor/JoinElementTxn.h => editor/libeditor/base/JoinElementTxn.h
rename : editor/libeditor/PlaceholderTxn.cpp => editor/libeditor/base/PlaceholderTxn.cpp
rename : editor/libeditor/PlaceholderTxn.h => editor/libeditor/base/PlaceholderTxn.h
rename : editor/libeditor/SetDocTitleTxn.cpp => editor/libeditor/base/SetDocTitleTxn.cpp
rename : editor/libeditor/SetDocTitleTxn.h => editor/libeditor/base/SetDocTitleTxn.h
rename : editor/libeditor/SplitElementTxn.cpp => editor/libeditor/base/SplitElementTxn.cpp
rename : editor/libeditor/SplitElementTxn.h => editor/libeditor/base/SplitElementTxn.h
rename : editor/libeditor/crashtests/336104.html => editor/libeditor/base/crashtests/336104.html
rename : editor/libeditor/crashtests/382527-1.html => editor/libeditor/base/crashtests/382527-1.html
rename : editor/libeditor/crashtests/402172-1.html => editor/libeditor/base/crashtests/402172-1.html
rename : editor/libeditor/crashtests/407079-1.html => editor/libeditor/base/crashtests/407079-1.html
rename : editor/libeditor/crashtests/407256-1.html => editor/libeditor/base/crashtests/407256-1.html
rename : editor/libeditor/crashtests/430624-1.html => editor/libeditor/base/crashtests/430624-1.html
rename : editor/libeditor/crashtests/459613-iframe.html => editor/libeditor/base/crashtests/459613-iframe.html
rename : editor/libeditor/crashtests/459613.html => editor/libeditor/base/crashtests/459613.html
rename : editor/libeditor/crashtests/475132-1.xhtml => editor/libeditor/base/crashtests/475132-1.xhtml
rename : editor/libeditor/crashtests/633709.xhtml => editor/libeditor/base/crashtests/633709.xhtml
rename : editor/libeditor/crashtests/636074-1.html => editor/libeditor/base/crashtests/636074-1.html
rename : editor/libeditor/crashtests/713427-1.html => editor/libeditor/base/crashtests/713427-1.html
rename : editor/libeditor/crashtests/713427-2.xhtml => editor/libeditor/base/crashtests/713427-2.xhtml
rename : editor/libeditor/crashtests/762183.html => editor/libeditor/base/crashtests/762183.html
rename : editor/libeditor/crashtests/766360.html => editor/libeditor/base/crashtests/766360.html
rename : editor/libeditor/crashtests/766413.html => editor/libeditor/base/crashtests/766413.html
rename : editor/libeditor/crashtests/766845.xhtml => editor/libeditor/base/crashtests/766845.xhtml
rename : editor/libeditor/crashtests/768765.html => editor/libeditor/base/crashtests/768765.html
rename : editor/libeditor/crashtests/771749.html => editor/libeditor/base/crashtests/771749.html
rename : editor/libeditor/crashtests/772282.html => editor/libeditor/base/crashtests/772282.html
rename : editor/libeditor/crashtests/776323.html => editor/libeditor/base/crashtests/776323.html
rename : editor/libeditor/crashtests/crashtests.list => editor/libeditor/base/crashtests/crashtests.list
rename : editor/libeditor/nsEditProperty.h => editor/libeditor/base/nsEditProperty.h
rename : editor/libeditor/nsEditPropertyAtomList.h => editor/libeditor/base/nsEditPropertyAtomList.h
rename : editor/libeditor/nsEditRules.h => editor/libeditor/base/nsEditRules.h
rename : editor/libeditor/nsEditor.cpp => editor/libeditor/base/nsEditor.cpp
rename : editor/libeditor/nsEditor.h => editor/libeditor/base/nsEditor.h
rename : editor/libeditor/nsEditorCommands.cpp => editor/libeditor/base/nsEditorCommands.cpp
rename : editor/libeditor/nsEditorCommands.h => editor/libeditor/base/nsEditorCommands.h
rename : editor/libeditor/nsEditorController.cpp => editor/libeditor/base/nsEditorController.cpp
rename : editor/libeditor/nsEditorController.h => editor/libeditor/base/nsEditorController.h
rename : editor/libeditor/nsEditorEventListener.cpp => editor/libeditor/base/nsEditorEventListener.cpp
rename : editor/libeditor/nsEditorEventListener.h => editor/libeditor/base/nsEditorEventListener.h
rename : editor/libeditor/nsEditorUtils.cpp => editor/libeditor/base/nsEditorUtils.cpp
rename : editor/libeditor/nsEditorUtils.h => editor/libeditor/base/nsEditorUtils.h
rename : editor/libeditor/nsIAbsorbingTransaction.h => editor/libeditor/base/nsIAbsorbingTransaction.h
rename : editor/libeditor/nsSelectionState.cpp => editor/libeditor/base/nsSelectionState.cpp
rename : editor/libeditor/nsSelectionState.h => editor/libeditor/base/nsSelectionState.h
rename : editor/libeditor/nsStyleSheetTxns.cpp => editor/libeditor/base/nsStyleSheetTxns.cpp
rename : editor/libeditor/nsStyleSheetTxns.h => editor/libeditor/base/nsStyleSheetTxns.h
rename : editor/libeditor/tests/chrome.ini => editor/libeditor/base/tests/chrome.ini
rename : editor/libeditor/tests/file_bug586662.html => editor/libeditor/base/tests/file_bug586662.html
rename : editor/libeditor/tests/mochitest.ini => editor/libeditor/base/tests/mochitest.ini
rename : editor/libeditor/tests/moz.build => editor/libeditor/base/tests/moz.build
rename : editor/libeditor/tests/test_bug408231.html => editor/libeditor/base/tests/test_bug408231.html
rename : editor/libeditor/tests/test_bug46555.html => editor/libeditor/base/tests/test_bug46555.html
rename : editor/libeditor/tests/test_bug502673.html => editor/libeditor/base/tests/test_bug502673.html
rename : editor/libeditor/tests/test_bug514156.html => editor/libeditor/base/tests/test_bug514156.html
rename : editor/libeditor/tests/test_bug567213.html => editor/libeditor/base/tests/test_bug567213.html
rename : editor/libeditor/tests/test_bug586662.html => editor/libeditor/base/tests/test_bug586662.html
rename : editor/libeditor/tests/test_bug599983.html => editor/libeditor/base/tests/test_bug599983.html
rename : editor/libeditor/tests/test_bug599983.xul => editor/libeditor/base/tests/test_bug599983.xul
rename : editor/libeditor/tests/test_bug646194.xul => editor/libeditor/base/tests/test_bug646194.xul
rename : editor/libeditor/tests/test_bug742261.html => editor/libeditor/base/tests/test_bug742261.html
rename : editor/libeditor/tests/test_bug773262.html => editor/libeditor/base/tests/test_bug773262.html
rename : editor/libeditor/tests/test_bug795785.html => editor/libeditor/base/tests/test_bug795785.html
rename : editor/libeditor/tests/test_dragdrop.html => editor/libeditor/base/tests/test_dragdrop.html
rename : editor/libeditor/tests/test_selection_move_commands.xul => editor/libeditor/base/tests/test_selection_move_commands.xul
rename : editor/nsEditorCID.h => editor/public/nsEditorCID.h
rename : editor/txmgr/nsITransaction.idl => editor/txmgr/idl/nsITransaction.idl
rename : editor/txmgr/nsITransactionList.idl => editor/txmgr/idl/nsITransactionList.idl
rename : editor/txmgr/nsITransactionListener.idl => editor/txmgr/idl/nsITransactionListener.idl
rename : editor/txmgr/nsITransactionManager.idl => editor/txmgr/idl/nsITransactionManager.idl
rename : editor/txmgr/nsTransactionManagerCID.h => editor/txmgr/public/nsTransactionManagerCID.h
rename : editor/txmgr/nsTransactionItem.cpp => editor/txmgr/src/nsTransactionItem.cpp
rename : editor/txmgr/nsTransactionItem.h => editor/txmgr/src/nsTransactionItem.h
rename : editor/txmgr/nsTransactionList.cpp => editor/txmgr/src/nsTransactionList.cpp
rename : editor/txmgr/nsTransactionList.h => editor/txmgr/src/nsTransactionList.h
rename : editor/txmgr/nsTransactionManager.cpp => editor/txmgr/src/nsTransactionManager.cpp
rename : editor/txmgr/nsTransactionManager.h => editor/txmgr/src/nsTransactionManager.h
rename : editor/txmgr/nsTransactionManagerFactory.cpp => editor/txmgr/src/nsTransactionManagerFactory.cpp
rename : editor/txmgr/nsTransactionStack.cpp => editor/txmgr/src/nsTransactionStack.cpp
rename : editor/txmgr/nsTransactionStack.h => editor/txmgr/src/nsTransactionStack.h
rename : editor/txtsvc/nsIInlineSpellChecker.idl => editor/txtsvc/public/nsIInlineSpellChecker.idl
rename : editor/txtsvc/nsISpellChecker.h => editor/txtsvc/public/nsISpellChecker.h
rename : editor/txtsvc/nsITextService.h => editor/txtsvc/public/nsITextService.h
rename : editor/txtsvc/nsITextServicesDocument.h => editor/txtsvc/public/nsITextServicesDocument.h
rename : editor/txtsvc/nsITextServicesFilter.idl => editor/txtsvc/public/nsITextServicesFilter.idl
rename : editor/txtsvc/nsTextServicesCID.h => editor/txtsvc/public/nsTextServicesCID.h
rename : editor/txtsvc/nsFilteredContentIterator.cpp => editor/txtsvc/src/nsFilteredContentIterator.cpp
rename : editor/txtsvc/nsFilteredContentIterator.h => editor/txtsvc/src/nsFilteredContentIterator.h
rename : editor/txtsvc/nsTSAtomList.h => editor/txtsvc/src/nsTSAtomList.h
rename : editor/txtsvc/nsTextServicesDocument.cpp => editor/txtsvc/src/nsTextServicesDocument.cpp
rename : editor/txtsvc/nsTextServicesDocument.h => editor/txtsvc/src/nsTextServicesDocument.h
rename : editor/txtsvc/nsTextServicesFactory.cpp => editor/txtsvc/src/nsTextServicesFactory.cpp
rename : xpcom/string/nsAString.h => xpcom/string/public/nsAString.h
rename : xpcom/string/nsAlgorithm.h => xpcom/string/public/nsAlgorithm.h
rename : xpcom/string/nsCharTraits.h => xpcom/string/public/nsCharTraits.h
rename : xpcom/string/nsDependentString.h => xpcom/string/public/nsDependentString.h
rename : xpcom/string/nsDependentSubstring.h => xpcom/string/public/nsDependentSubstring.h
rename : xpcom/string/nsEmbedString.h => xpcom/string/public/nsEmbedString.h
rename : xpcom/string/nsLiteralString.h => xpcom/string/public/nsLiteralString.h
rename : xpcom/string/nsPrintfCString.h => xpcom/string/public/nsPrintfCString.h
rename : xpcom/string/nsPromiseFlatString.h => xpcom/string/public/nsPromiseFlatString.h
rename : xpcom/string/nsReadableUtils.h => xpcom/string/public/nsReadableUtils.h
rename : xpcom/string/nsString.h => xpcom/string/public/nsString.h
rename : xpcom/string/nsStringBuffer.h => xpcom/string/public/nsStringBuffer.h
rename : xpcom/string/nsStringFwd.h => xpcom/string/public/nsStringFwd.h
rename : xpcom/string/nsStringIterator.h => xpcom/string/public/nsStringIterator.h
rename : xpcom/string/nsSubstring.h => xpcom/string/public/nsSubstring.h
rename : xpcom/string/nsSubstringTuple.h => xpcom/string/public/nsSubstringTuple.h
rename : xpcom/string/nsTDependentString.h => xpcom/string/public/nsTDependentString.h
rename : xpcom/string/nsTDependentSubstring.h => xpcom/string/public/nsTDependentSubstring.h
rename : xpcom/string/nsTLiteralString.h => xpcom/string/public/nsTLiteralString.h
rename : xpcom/string/nsTPromiseFlatString.h => xpcom/string/public/nsTPromiseFlatString.h
rename : xpcom/string/nsTString.h => xpcom/string/public/nsTString.h
rename : xpcom/string/nsTSubstring.h => xpcom/string/public/nsTSubstring.h
rename : xpcom/string/nsTSubstringTuple.h => xpcom/string/public/nsTSubstringTuple.h
rename : xpcom/string/nsUTF8Utils.h => xpcom/string/public/nsUTF8Utils.h
rename : xpcom/string/nsXPCOMStrings.h => xpcom/string/public/nsXPCOMStrings.h
rename : xpcom/string/nsXPIDLString.h => xpcom/string/public/nsXPIDLString.h
rename : xpcom/string/string-template-def-char.h => xpcom/string/public/string-template-def-char.h
rename : xpcom/string/string-template-def-unichar.h => xpcom/string/public/string-template-def-unichar.h
rename : xpcom/string/string-template-undef.h => xpcom/string/public/string-template-undef.h
rename : xpcom/string/nsDependentString.cpp => xpcom/string/src/nsDependentString.cpp
rename : xpcom/string/nsDependentSubstring.cpp => xpcom/string/src/nsDependentSubstring.cpp
rename : xpcom/string/nsPromiseFlatString.cpp => xpcom/string/src/nsPromiseFlatString.cpp
rename : xpcom/string/nsReadableUtils.cpp => xpcom/string/src/nsReadableUtils.cpp
rename : xpcom/string/nsString.cpp => xpcom/string/src/nsString.cpp
rename : xpcom/string/nsStringComparator.cpp => xpcom/string/src/nsStringComparator.cpp
rename : xpcom/string/nsStringObsolete.cpp => xpcom/string/src/nsStringObsolete.cpp
rename : xpcom/string/nsSubstring.cpp => xpcom/string/src/nsSubstring.cpp
rename : xpcom/string/nsSubstringTuple.cpp => xpcom/string/src/nsSubstringTuple.cpp
rename : xpcom/string/nsTDependentString.cpp => xpcom/string/src/nsTDependentString.cpp
rename : xpcom/string/nsTDependentSubstring.cpp => xpcom/string/src/nsTDependentSubstring.cpp
rename : xpcom/string/nsTPromiseFlatString.cpp => xpcom/string/src/nsTPromiseFlatString.cpp
rename : xpcom/string/nsTString.cpp => xpcom/string/src/nsTString.cpp
rename : xpcom/string/nsTStringComparator.cpp => xpcom/string/src/nsTStringComparator.cpp
rename : xpcom/string/nsTStringObsolete.cpp => xpcom/string/src/nsTStringObsolete.cpp
rename : xpcom/string/nsTSubstring.cpp => xpcom/string/src/nsTSubstring.cpp
rename : xpcom/string/nsTSubstringTuple.cpp => xpcom/string/src/nsTSubstringTuple.cpp
rename : xpcom/string/nsUTF8UtilsSSE2.cpp => xpcom/string/src/nsUTF8UtilsSSE2.cpp
2014-06-24 18:32:55 -07:00

232 lines
6.4 KiB
C++

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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/. */
#include "DeleteNodeTxn.h"
#include "DeleteRangeTxn.h"
#include "DeleteTextTxn.h"
#include "mozilla/Assertions.h"
#include "mozilla/dom/Selection.h"
#include "mozilla/mozalloc.h"
#include "nsCOMPtr.h"
#include "nsDebug.h"
#include "nsEditor.h"
#include "nsError.h"
#include "nsIContent.h"
#include "nsIContentIterator.h"
#include "nsIDOMCharacterData.h"
#include "nsINode.h"
#include "nsAString.h"
class nsIDOMRange;
using namespace mozilla;
using namespace mozilla::dom;
// note that aEditor is not refcounted
DeleteRangeTxn::DeleteRangeTxn()
: EditAggregateTxn(),
mRange(),
mEditor(nullptr),
mRangeUpdater(nullptr)
{
}
NS_IMPL_CYCLE_COLLECTION_INHERITED(DeleteRangeTxn, EditAggregateTxn,
mRange)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DeleteRangeTxn)
NS_INTERFACE_MAP_END_INHERITING(EditAggregateTxn)
nsresult
DeleteRangeTxn::Init(nsEditor* aEditor,
nsRange* aRange,
nsRangeUpdater* aRangeUpdater)
{
MOZ_ASSERT(aEditor && aRange);
mEditor = aEditor;
mRange = aRange->CloneRange();
mRangeUpdater = aRangeUpdater;
NS_ENSURE_TRUE(mEditor->IsModifiableNode(mRange->GetStartParent()),
NS_ERROR_FAILURE);
NS_ENSURE_TRUE(mEditor->IsModifiableNode(mRange->GetEndParent()),
NS_ERROR_FAILURE);
NS_ENSURE_TRUE(mEditor->IsModifiableNode(mRange->GetCommonAncestor()),
NS_ERROR_FAILURE);
return NS_OK;
}
NS_IMETHODIMP
DeleteRangeTxn::DoTransaction()
{
MOZ_ASSERT(mRange && mEditor);
nsresult res;
// build the child transactions
nsCOMPtr<nsINode> startParent = mRange->GetStartParent();
int32_t startOffset = mRange->StartOffset();
nsCOMPtr<nsINode> endParent = mRange->GetEndParent();
int32_t endOffset = mRange->EndOffset();
MOZ_ASSERT(startParent && endParent);
if (startParent == endParent) {
// the selection begins and ends in the same node
res = CreateTxnsToDeleteBetween(startParent, startOffset, endOffset);
NS_ENSURE_SUCCESS(res, res);
} else {
// the selection ends in a different node from where it started. delete
// the relevant content in the start node
res = CreateTxnsToDeleteContent(startParent, startOffset, nsIEditor::eNext);
NS_ENSURE_SUCCESS(res, res);
// delete the intervening nodes
res = CreateTxnsToDeleteNodesBetween();
NS_ENSURE_SUCCESS(res, res);
// delete the relevant content in the end node
res = CreateTxnsToDeleteContent(endParent, endOffset, nsIEditor::ePrevious);
NS_ENSURE_SUCCESS(res, res);
}
// if we've successfully built this aggregate transaction, then do it.
res = EditAggregateTxn::DoTransaction();
NS_ENSURE_SUCCESS(res, res);
// only set selection to deletion point if editor gives permission
bool bAdjustSelection;
mEditor->ShouldTxnSetSelection(&bAdjustSelection);
if (bAdjustSelection) {
nsRefPtr<Selection> selection = mEditor->GetSelection();
NS_ENSURE_TRUE(selection, NS_ERROR_NULL_POINTER);
res = selection->Collapse(startParent, startOffset);
NS_ENSURE_SUCCESS(res, res);
}
// else do nothing - dom range gravity will adjust selection
return NS_OK;
}
NS_IMETHODIMP
DeleteRangeTxn::UndoTransaction()
{
MOZ_ASSERT(mRange && mEditor);
return EditAggregateTxn::UndoTransaction();
}
NS_IMETHODIMP
DeleteRangeTxn::RedoTransaction()
{
MOZ_ASSERT(mRange && mEditor);
return EditAggregateTxn::RedoTransaction();
}
NS_IMETHODIMP
DeleteRangeTxn::GetTxnDescription(nsAString& aString)
{
aString.AssignLiteral("DeleteRangeTxn");
return NS_OK;
}
nsresult
DeleteRangeTxn::CreateTxnsToDeleteBetween(nsINode* aNode,
int32_t aStartOffset,
int32_t aEndOffset)
{
// see what kind of node we have
if (aNode->IsNodeOfType(nsINode::eDATA_NODE)) {
// if the node is a chardata node, then delete chardata content
nsRefPtr<DeleteTextTxn> txn = new DeleteTextTxn();
int32_t numToDel;
if (aStartOffset == aEndOffset) {
numToDel = 1;
} else {
numToDel = aEndOffset - aStartOffset;
}
nsCOMPtr<nsIDOMCharacterData> charDataNode = do_QueryInterface(aNode);
nsresult res = txn->Init(mEditor, charDataNode, aStartOffset, numToDel,
mRangeUpdater);
NS_ENSURE_SUCCESS(res, res);
AppendChild(txn);
return NS_OK;
}
nsCOMPtr<nsIContent> child = aNode->GetChildAt(aStartOffset);
NS_ENSURE_STATE(child);
nsresult res = NS_OK;
for (int32_t i = aStartOffset; i < aEndOffset; ++i) {
nsRefPtr<DeleteNodeTxn> txn = new DeleteNodeTxn();
res = txn->Init(mEditor, child, mRangeUpdater);
if (NS_SUCCEEDED(res)) {
AppendChild(txn);
}
child = child->GetNextSibling();
}
NS_ENSURE_SUCCESS(res, res);
return NS_OK;
}
nsresult
DeleteRangeTxn::CreateTxnsToDeleteContent(nsINode* aNode,
int32_t aOffset,
nsIEditor::EDirection aAction)
{
// see what kind of node we have
if (aNode->IsNodeOfType(nsINode::eDATA_NODE)) {
// if the node is a chardata node, then delete chardata content
uint32_t start, numToDelete;
if (nsIEditor::eNext == aAction) {
start = aOffset;
numToDelete = aNode->Length() - aOffset;
} else {
start = 0;
numToDelete = aOffset;
}
if (numToDelete) {
nsRefPtr<DeleteTextTxn> txn = new DeleteTextTxn();
nsCOMPtr<nsIDOMCharacterData> charDataNode = do_QueryInterface(aNode);
nsresult res = txn->Init(mEditor, charDataNode, start, numToDelete,
mRangeUpdater);
NS_ENSURE_SUCCESS(res, res);
AppendChild(txn);
}
}
return NS_OK;
}
nsresult
DeleteRangeTxn::CreateTxnsToDeleteNodesBetween()
{
nsCOMPtr<nsIContentIterator> iter = NS_NewContentSubtreeIterator();
nsresult res = iter->Init(mRange);
NS_ENSURE_SUCCESS(res, res);
while (!iter->IsDone()) {
nsCOMPtr<nsINode> node = iter->GetCurrentNode();
NS_ENSURE_TRUE(node, NS_ERROR_NULL_POINTER);
nsRefPtr<DeleteNodeTxn> txn = new DeleteNodeTxn();
res = txn->Init(mEditor, node, mRangeUpdater);
NS_ENSURE_SUCCESS(res, res);
AppendChild(txn);
iter->Next();
}
return NS_OK;
}