mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-06 17:16:12 +00:00
c0ef156478
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
232 lines
6.4 KiB
C++
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;
|
|
}
|