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
323 lines
9.9 KiB
C++
323 lines
9.9 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/. */
|
|
|
|
#ifndef __selectionstate_h__
|
|
#define __selectionstate_h__
|
|
|
|
#include "nsCOMPtr.h"
|
|
#include "nsIDOMNode.h"
|
|
#include "nsINode.h"
|
|
#include "nsTArray.h"
|
|
#include "nscore.h"
|
|
|
|
class nsCycleCollectionTraversalCallback;
|
|
class nsIDOMCharacterData;
|
|
class nsIDOMRange;
|
|
class nsISelection;
|
|
class nsRange;
|
|
namespace mozilla {
|
|
namespace dom {
|
|
class Selection;
|
|
}
|
|
}
|
|
|
|
/***************************************************************************
|
|
* class for recording selection info. stores selection as collection of
|
|
* { {startnode, startoffset} , {endnode, endoffset} } tuples. Can't store
|
|
* ranges since dom gravity will possibly change the ranges.
|
|
*/
|
|
|
|
// first a helper struct for saving/setting ranges
|
|
struct nsRangeStore MOZ_FINAL
|
|
{
|
|
nsRangeStore();
|
|
|
|
private:
|
|
// Private destructor, to discourage deletion outside of Release():
|
|
~nsRangeStore();
|
|
|
|
public:
|
|
void StoreRange(nsRange* aRange);
|
|
already_AddRefed<nsRange> GetRange();
|
|
|
|
NS_INLINE_DECL_REFCOUNTING(nsRangeStore)
|
|
|
|
nsCOMPtr<nsINode> startNode;
|
|
int32_t startOffset;
|
|
nsCOMPtr<nsINode> endNode;
|
|
int32_t endOffset;
|
|
};
|
|
|
|
class nsSelectionState
|
|
{
|
|
public:
|
|
|
|
nsSelectionState();
|
|
~nsSelectionState();
|
|
|
|
void DoTraverse(nsCycleCollectionTraversalCallback &cb);
|
|
void DoUnlink() { MakeEmpty(); }
|
|
|
|
void SaveSelection(mozilla::dom::Selection *aSel);
|
|
nsresult RestoreSelection(nsISelection *aSel);
|
|
bool IsCollapsed();
|
|
bool IsEqual(nsSelectionState *aSelState);
|
|
void MakeEmpty();
|
|
bool IsEmpty();
|
|
protected:
|
|
nsTArray<nsRefPtr<nsRangeStore> > mArray;
|
|
|
|
friend class nsRangeUpdater;
|
|
};
|
|
|
|
class nsRangeUpdater
|
|
{
|
|
public:
|
|
|
|
nsRangeUpdater();
|
|
~nsRangeUpdater();
|
|
|
|
void RegisterRangeItem(nsRangeStore *aRangeItem);
|
|
void DropRangeItem(nsRangeStore *aRangeItem);
|
|
nsresult RegisterSelectionState(nsSelectionState &aSelState);
|
|
nsresult DropSelectionState(nsSelectionState &aSelState);
|
|
|
|
// editor selection gravity routines. Note that we can't always depend on
|
|
// DOM Range gravity to do what we want to the "real" selection. For instance,
|
|
// if you move a node, that corresponds to deleting it and reinserting it.
|
|
// DOM Range gravity will promote the selection out of the node on deletion,
|
|
// which is not what you want if you know you are reinserting it.
|
|
nsresult SelAdjCreateNode(nsINode* aParent, int32_t aPosition);
|
|
nsresult SelAdjCreateNode(nsIDOMNode *aParent, int32_t aPosition);
|
|
nsresult SelAdjInsertNode(nsINode* aParent, int32_t aPosition);
|
|
nsresult SelAdjInsertNode(nsIDOMNode *aParent, int32_t aPosition);
|
|
void SelAdjDeleteNode(nsINode* aNode);
|
|
void SelAdjDeleteNode(nsIDOMNode *aNode);
|
|
nsresult SelAdjSplitNode(nsINode* aOldRightNode, int32_t aOffset,
|
|
nsINode* aNewLeftNode);
|
|
nsresult SelAdjSplitNode(nsIDOMNode *aOldRightNode, int32_t aOffset, nsIDOMNode *aNewLeftNode);
|
|
nsresult SelAdjJoinNodes(nsINode* aLeftNode,
|
|
nsINode* aRightNode,
|
|
nsINode* aParent,
|
|
int32_t aOffset,
|
|
int32_t aOldLeftNodeLength);
|
|
nsresult SelAdjJoinNodes(nsIDOMNode *aLeftNode,
|
|
nsIDOMNode *aRightNode,
|
|
nsIDOMNode *aParent,
|
|
int32_t aOffset,
|
|
int32_t aOldLeftNodeLength);
|
|
nsresult SelAdjInsertText(nsIContent* aTextNode, int32_t aOffset,
|
|
const nsAString &aString);
|
|
nsresult SelAdjInsertText(nsIDOMCharacterData *aTextNode, int32_t aOffset, const nsAString &aString);
|
|
nsresult SelAdjDeleteText(nsIContent* aTextNode, int32_t aOffset,
|
|
int32_t aLength);
|
|
nsresult SelAdjDeleteText(nsIDOMCharacterData *aTextNode, int32_t aOffset, int32_t aLength);
|
|
// the following gravity routines need will/did sandwiches, because the other gravity
|
|
// routines will be called inside of these sandwiches, but should be ignored.
|
|
nsresult WillReplaceContainer();
|
|
nsresult DidReplaceContainer(nsINode* aOriginalNode, nsINode* aNewNode);
|
|
nsresult DidReplaceContainer(nsIDOMNode *aOriginalNode, nsIDOMNode *aNewNode);
|
|
nsresult WillRemoveContainer();
|
|
nsresult DidRemoveContainer(nsINode* aNode, nsINode* aParent,
|
|
int32_t aOffset, uint32_t aNodeOrigLen);
|
|
nsresult DidRemoveContainer(nsIDOMNode *aNode, nsIDOMNode *aParent, int32_t aOffset, uint32_t aNodeOrigLen);
|
|
nsresult WillInsertContainer();
|
|
nsresult DidInsertContainer();
|
|
void WillMoveNode();
|
|
void DidMoveNode(nsINode* aOldParent, int32_t aOldOffset,
|
|
nsINode* aNewParent, int32_t aNewOffset);
|
|
protected:
|
|
nsTArray<nsRefPtr<nsRangeStore> > mArray;
|
|
bool mLock;
|
|
};
|
|
|
|
|
|
/***************************************************************************
|
|
* helper class for using nsSelectionState. stack based class for doing
|
|
* preservation of dom points across editor actions
|
|
*/
|
|
|
|
class MOZ_STACK_CLASS nsAutoTrackDOMPoint
|
|
{
|
|
private:
|
|
nsRangeUpdater &mRU;
|
|
// Allow tracking either nsIDOMNode or nsINode until nsIDOMNode is gone
|
|
nsCOMPtr<nsINode>* mNode;
|
|
nsCOMPtr<nsIDOMNode>* mDOMNode;
|
|
int32_t* mOffset;
|
|
nsRefPtr<nsRangeStore> mRangeItem;
|
|
public:
|
|
nsAutoTrackDOMPoint(nsRangeUpdater &aRangeUpdater,
|
|
nsCOMPtr<nsINode>* aNode, int32_t* aOffset)
|
|
: mRU(aRangeUpdater)
|
|
, mNode(aNode)
|
|
, mDOMNode(nullptr)
|
|
, mOffset(aOffset)
|
|
{
|
|
mRangeItem = new nsRangeStore();
|
|
mRangeItem->startNode = *mNode;
|
|
mRangeItem->endNode = *mNode;
|
|
mRangeItem->startOffset = *mOffset;
|
|
mRangeItem->endOffset = *mOffset;
|
|
mRU.RegisterRangeItem(mRangeItem);
|
|
}
|
|
|
|
nsAutoTrackDOMPoint(nsRangeUpdater &aRangeUpdater,
|
|
nsCOMPtr<nsIDOMNode>* aNode, int32_t* aOffset)
|
|
: mRU(aRangeUpdater)
|
|
, mNode(nullptr)
|
|
, mDOMNode(aNode)
|
|
, mOffset(aOffset)
|
|
{
|
|
mRangeItem = new nsRangeStore();
|
|
mRangeItem->startNode = do_QueryInterface(*mDOMNode);
|
|
mRangeItem->endNode = do_QueryInterface(*mDOMNode);
|
|
mRangeItem->startOffset = *mOffset;
|
|
mRangeItem->endOffset = *mOffset;
|
|
mRU.RegisterRangeItem(mRangeItem);
|
|
}
|
|
|
|
~nsAutoTrackDOMPoint()
|
|
{
|
|
mRU.DropRangeItem(mRangeItem);
|
|
if (mNode) {
|
|
*mNode = mRangeItem->startNode;
|
|
} else {
|
|
*mDOMNode = GetAsDOMNode(mRangeItem->startNode);
|
|
}
|
|
*mOffset = mRangeItem->startOffset;
|
|
}
|
|
};
|
|
|
|
|
|
|
|
/***************************************************************************
|
|
* another helper class for nsSelectionState. stack based class for doing
|
|
* Will/DidReplaceContainer()
|
|
*/
|
|
|
|
class MOZ_STACK_CLASS nsAutoReplaceContainerSelNotify
|
|
{
|
|
private:
|
|
nsRangeUpdater &mRU;
|
|
nsIDOMNode *mOriginalNode;
|
|
nsIDOMNode *mNewNode;
|
|
|
|
public:
|
|
nsAutoReplaceContainerSelNotify(nsRangeUpdater &aRangeUpdater, nsIDOMNode *aOriginalNode, nsIDOMNode *aNewNode) :
|
|
mRU(aRangeUpdater)
|
|
,mOriginalNode(aOriginalNode)
|
|
,mNewNode(aNewNode)
|
|
{
|
|
mRU.WillReplaceContainer();
|
|
}
|
|
|
|
~nsAutoReplaceContainerSelNotify()
|
|
{
|
|
mRU.DidReplaceContainer(mOriginalNode, mNewNode);
|
|
}
|
|
};
|
|
|
|
|
|
/***************************************************************************
|
|
* another helper class for nsSelectionState. stack based class for doing
|
|
* Will/DidRemoveContainer()
|
|
*/
|
|
|
|
class MOZ_STACK_CLASS nsAutoRemoveContainerSelNotify
|
|
{
|
|
private:
|
|
nsRangeUpdater &mRU;
|
|
nsIDOMNode *mNode;
|
|
nsIDOMNode *mParent;
|
|
int32_t mOffset;
|
|
uint32_t mNodeOrigLen;
|
|
|
|
public:
|
|
nsAutoRemoveContainerSelNotify(nsRangeUpdater& aRangeUpdater,
|
|
nsINode* aNode,
|
|
nsINode* aParent,
|
|
int32_t aOffset,
|
|
uint32_t aNodeOrigLen)
|
|
: mRU(aRangeUpdater)
|
|
, mNode(aNode->AsDOMNode())
|
|
, mParent(aParent->AsDOMNode())
|
|
, mOffset(aOffset)
|
|
, mNodeOrigLen(aNodeOrigLen)
|
|
{
|
|
mRU.WillRemoveContainer();
|
|
}
|
|
|
|
~nsAutoRemoveContainerSelNotify()
|
|
{
|
|
mRU.DidRemoveContainer(mNode, mParent, mOffset, mNodeOrigLen);
|
|
}
|
|
};
|
|
|
|
/***************************************************************************
|
|
* another helper class for nsSelectionState. stack based class for doing
|
|
* Will/DidInsertContainer()
|
|
*/
|
|
|
|
class MOZ_STACK_CLASS nsAutoInsertContainerSelNotify
|
|
{
|
|
private:
|
|
nsRangeUpdater &mRU;
|
|
|
|
public:
|
|
nsAutoInsertContainerSelNotify(nsRangeUpdater &aRangeUpdater) :
|
|
mRU(aRangeUpdater)
|
|
{
|
|
mRU.WillInsertContainer();
|
|
}
|
|
|
|
~nsAutoInsertContainerSelNotify()
|
|
{
|
|
mRU.DidInsertContainer();
|
|
}
|
|
};
|
|
|
|
|
|
/***************************************************************************
|
|
* another helper class for nsSelectionState. stack based class for doing
|
|
* Will/DidMoveNode()
|
|
*/
|
|
|
|
class MOZ_STACK_CLASS nsAutoMoveNodeSelNotify
|
|
{
|
|
private:
|
|
nsRangeUpdater &mRU;
|
|
nsINode* mOldParent;
|
|
nsINode* mNewParent;
|
|
int32_t mOldOffset;
|
|
int32_t mNewOffset;
|
|
|
|
public:
|
|
nsAutoMoveNodeSelNotify(nsRangeUpdater &aRangeUpdater,
|
|
nsINode* aOldParent,
|
|
int32_t aOldOffset,
|
|
nsINode* aNewParent,
|
|
int32_t aNewOffset)
|
|
: mRU(aRangeUpdater)
|
|
, mOldParent(aOldParent)
|
|
, mNewParent(aNewParent)
|
|
, mOldOffset(aOldOffset)
|
|
, mNewOffset(aNewOffset)
|
|
{
|
|
MOZ_ASSERT(aOldParent);
|
|
MOZ_ASSERT(aNewParent);
|
|
mRU.WillMoveNode();
|
|
}
|
|
|
|
~nsAutoMoveNodeSelNotify()
|
|
{
|
|
mRU.DidMoveNode(mOldParent, mOldOffset, mNewParent, mNewOffset);
|
|
}
|
|
};
|
|
|
|
#endif
|
|
|
|
|