gecko/editor/libeditor/base/SetDocTitleTxn.cpp
Wes Kocher 731dbac067 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

183 lines
5.5 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 "SetDocTitleTxn.h"
#include "mozilla/dom/Element.h" // for Element
#include "nsAString.h"
#include "nsCOMPtr.h" // for nsCOMPtr, getter_AddRefs, etc
#include "nsDebug.h" // for NS_ENSURE_SUCCESS, etc
#include "nsError.h" // for NS_OK, NS_ERROR_FAILURE, etc
#include "nsIDOMCharacterData.h" // for nsIDOMCharacterData
#include "nsIDOMDocument.h" // for nsIDOMDocument
#include "nsIDOMElement.h" // for nsIDOMElement
#include "nsIDOMNode.h" // for nsIDOMNode
#include "nsIDOMNodeList.h" // for nsIDOMNodeList
#include "nsIDOMText.h" // for nsIDOMText
#include "nsIDocument.h" // for nsIDocument
#include "nsIEditor.h" // for nsIEditor
#include "nsIHTMLEditor.h" // for nsIHTMLEditor
#include "nsLiteralString.h" // for NS_LITERAL_STRING
using namespace mozilla;
// note that aEditor is not refcounted
SetDocTitleTxn::SetDocTitleTxn()
: EditTxn()
, mIsTransient(false)
{
}
NS_IMETHODIMP SetDocTitleTxn::Init(nsIHTMLEditor *aEditor,
const nsAString *aValue)
{
NS_ASSERTION(aEditor && aValue, "null args");
if (!aEditor || !aValue) { return NS_ERROR_NULL_POINTER; }
mEditor = aEditor;
mValue = *aValue;
return NS_OK;
}
NS_IMETHODIMP SetDocTitleTxn::DoTransaction(void)
{
return SetDomTitle(mValue);
}
NS_IMETHODIMP SetDocTitleTxn::UndoTransaction(void)
{
// No extra work required; the DOM changes alone are enough
return NS_OK;
}
NS_IMETHODIMP SetDocTitleTxn::RedoTransaction(void)
{
// No extra work required; the DOM changes alone are enough
return NS_OK;
}
nsresult SetDocTitleTxn::SetDomTitle(const nsAString& aTitle)
{
nsCOMPtr<nsIEditor> editor = do_QueryInterface(mEditor);
NS_ENSURE_TRUE(editor, NS_ERROR_FAILURE);
nsCOMPtr<nsIDOMDocument> domDoc;
nsresult res = editor->GetDocument(getter_AddRefs(domDoc));
NS_ENSURE_TRUE(domDoc, NS_ERROR_FAILURE);
nsCOMPtr<nsIDOMNodeList> titleList;
res = domDoc->GetElementsByTagName(NS_LITERAL_STRING("title"), getter_AddRefs(titleList));
NS_ENSURE_SUCCESS(res, res);
// First assume we will NOT really do anything
// (transaction will not be pushed on stack)
mIsTransient = true;
nsCOMPtr<nsIDOMNode>titleNode;
if(titleList)
{
res = titleList->Item(0, getter_AddRefs(titleNode));
NS_ENSURE_SUCCESS(res, res);
if (titleNode)
{
// Delete existing child textnode of title node
// (Note: all contents under a TITLE node are always in a single text node)
nsCOMPtr<nsIDOMNode> child;
res = titleNode->GetFirstChild(getter_AddRefs(child));
if(NS_FAILED(res)) return res;
if(child)
{
// Save current text as the undo value
nsCOMPtr<nsIDOMCharacterData> textNode = do_QueryInterface(child);
if(textNode)
{
textNode->GetData(mUndoValue);
// If title text is identical to what already exists,
// quit now (mIsTransient is now TRUE)
if (mUndoValue == aTitle)
return NS_OK;
}
res = editor->DeleteNode(child);
if(NS_FAILED(res)) return res;
}
}
}
// We didn't return above, thus we really will be changing the title
mIsTransient = false;
// Get the <HEAD> node, create a <TITLE> and insert it under the HEAD
nsCOMPtr<nsIDocument> document = do_QueryInterface(domDoc);
NS_ENSURE_STATE(document);
dom::Element* head = document->GetHeadElement();
NS_ENSURE_STATE(head);
bool newTitleNode = false;
uint32_t newTitleIndex = 0;
if (!titleNode)
{
// Didn't find one above: Create a new one
nsCOMPtr<nsIDOMElement>titleElement;
res = domDoc->CreateElement(NS_LITERAL_STRING("title"), getter_AddRefs(titleElement));
NS_ENSURE_SUCCESS(res, res);
NS_ENSURE_TRUE(titleElement, NS_ERROR_FAILURE);
titleNode = do_QueryInterface(titleElement);
newTitleNode = true;
// Get index so we append new title node after all existing HEAD children.
newTitleIndex = head->GetChildCount();
}
// Append a text node under the TITLE
// only if the title text isn't empty
if (titleNode && !aTitle.IsEmpty())
{
nsCOMPtr<nsIDOMText> textNode;
res = domDoc->CreateTextNode(aTitle, getter_AddRefs(textNode));
NS_ENSURE_SUCCESS(res, res);
nsCOMPtr<nsIDOMNode> newNode = do_QueryInterface(textNode);
NS_ENSURE_TRUE(newNode, NS_ERROR_FAILURE);
if (newTitleNode)
{
// Not undoable: We will insert newTitleNode below
nsCOMPtr<nsIDOMNode> resultNode;
res = titleNode->AppendChild(newNode, getter_AddRefs(resultNode));
}
else
{
// This is an undoable transaction
res = editor->InsertNode(newNode, titleNode, 0);
}
NS_ENSURE_SUCCESS(res, res);
}
if (newTitleNode)
{
// Undoable transaction to insert title+text together
res = editor->InsertNode(titleNode, head->AsDOMNode(), newTitleIndex);
}
return res;
}
NS_IMETHODIMP SetDocTitleTxn::GetTxnDescription(nsAString& aString)
{
aString.AssignLiteral("SetDocTitleTxn: ");
aString += mValue;
return NS_OK;
}
NS_IMETHODIMP SetDocTitleTxn::GetIsTransient(bool *aIsTransient)
{
NS_ENSURE_TRUE(aIsTransient, NS_ERROR_NULL_POINTER);
*aIsTransient = mIsTransient;
return NS_OK;
}