From de20206bd1a88906be56a601124f4dc2dc666cba Mon Sep 17 00:00:00 2001 From: Ehsan Akhgari Date: Thu, 18 Feb 2010 18:52:12 -0500 Subject: [PATCH] Backed out changeset 70b1ccb14325 --- .../html/content/src/nsHTMLInputElement.cpp | 39 --------------- editor/libeditor/text/nsTextEditRules.cpp | 10 ---- layout/forms/nsTextControlFrame.cpp | 48 ++++++------------- 3 files changed, 15 insertions(+), 82 deletions(-) diff --git a/content/html/content/src/nsHTMLInputElement.cpp b/content/html/content/src/nsHTMLInputElement.cpp index 4538145545c..fb6f3e8f400 100644 --- a/content/html/content/src/nsHTMLInputElement.cpp +++ b/content/html/content/src/nsHTMLInputElement.cpp @@ -417,12 +417,6 @@ protected: */ nsresult UpdateFileList(); - /** - * Determine whether the editor needs to be initialized explicitly for - * a particular event. - */ - PRBool NeedToInitializeEditorForEvent(nsEventChainPreVisitor& aVisitor) const; - nsCOMPtr mControllers; /** @@ -1565,32 +1559,6 @@ nsHTMLInputElement::Click() return NS_OK; } -PRBool -nsHTMLInputElement::NeedToInitializeEditorForEvent(nsEventChainPreVisitor& aVisitor) const -{ - // We only need to initialize the editor for text input controls because they - // are lazily initialized. We don't need to initialize the control for - // certain types of events, because we know that those events are safe to be - // handled without the editor being initialized. These events include: - // mousein/move/out, and DOM mutation events. - if ((mType == NS_FORM_INPUT_TEXT || - mType == NS_FORM_INPUT_PASSWORD) && - aVisitor.mEvent->eventStructType != NS_MUTATION_EVENT) { - - switch (aVisitor.mEvent->message) { - case NS_MOUSE_MOVE: - case NS_MOUSE_ENTER: - case NS_MOUSE_EXIT: - case NS_MOUSE_ENTER_SYNTH: - case NS_MOUSE_EXIT_SYNTH: - return PR_FALSE; - break; - } - return PR_TRUE; - } - return PR_FALSE; -} - nsresult nsHTMLInputElement::PreHandleEvent(nsEventChainPreVisitor& aVisitor) { @@ -1617,13 +1585,6 @@ nsHTMLInputElement::PreHandleEvent(nsEventChainPreVisitor& aVisitor) } } - // Initialize the editor if needed. - if (NeedToInitializeEditorForEvent(aVisitor)) { - nsITextControlFrame* textControlFrame = do_QueryFrame(GetPrimaryFrame()); - if (textControlFrame) - textControlFrame->EnsureEditorInitialized(); - } - //FIXME Allow submission etc. also when there is no prescontext, Bug 329509. if (!aVisitor.mPresContext) { return nsGenericHTMLElement::PreHandleEvent(aVisitor); diff --git a/editor/libeditor/text/nsTextEditRules.cpp b/editor/libeditor/text/nsTextEditRules.cpp index 0c619c4b22f..1e82e34453e 100644 --- a/editor/libeditor/text/nsTextEditRules.cpp +++ b/editor/libeditor/text/nsTextEditRules.cpp @@ -156,16 +156,6 @@ nsTextEditRules::Init(nsPlaintextEditor *aEditor, PRUint32 aFlags) nsresult res = CreateBogusNodeIfNeeded(selection); if (NS_FAILED(res)) return res; - // If the selection hasn't been set up yet, set it up collapsed to the end of - // our editable content. - PRInt32 rangeCount; - res = selection->GetRangeCount(&rangeCount); - NS_ENSURE_SUCCESS(res, res); - if (!rangeCount) { - res = mEditor->EndOfDocument(); - NS_ENSURE_SUCCESS(res, res); - } - if (mFlags & nsIPlaintextEditor::eEditorPlaintextMask) { // ensure trailing br node diff --git a/layout/forms/nsTextControlFrame.cpp b/layout/forms/nsTextControlFrame.cpp index 8c8aad7d331..21365bbda26 100644 --- a/layout/forms/nsTextControlFrame.cpp +++ b/layout/forms/nsTextControlFrame.cpp @@ -1898,7 +1898,7 @@ nsresult nsTextControlFrame::SetFormProperty(nsIAtom* aName, const nsAString& aV mIsProcessing = PR_FALSE; } return NS_OK; -} +} nsresult nsTextControlFrame::GetFormProperty(nsIAtom* aName, nsAString& aValue) const @@ -1910,7 +1910,7 @@ nsTextControlFrame::GetFormProperty(nsIAtom* aName, nsAString& aValue) const GetValue(aValue, PR_FALSE); } return NS_OK; -} +} @@ -1918,10 +1918,6 @@ NS_IMETHODIMP nsTextControlFrame::GetEditor(nsIEditor **aEditor) { NS_ENSURE_ARG_POINTER(aEditor); - - nsresult rv = EnsureEditorInitialized(); - NS_ENSURE_SUCCESS(rv, rv); - *aEditor = mEditor; NS_IF_ADDREF(*aEditor); return NS_OK; @@ -1981,8 +1977,6 @@ nsTextControlFrame::SetSelectionInternal(nsIDOMNode *aStartNode, nsresult nsTextControlFrame::SelectAllOrCollapseToEndOfText(PRBool aSelect) { - EnsureEditorInitialized(); - if (!mEditor) return NS_OK; @@ -2053,9 +2047,8 @@ nsTextControlFrame::SetSelectionEndPoints(PRInt32 aSelStart, PRInt32 aSelEnd) NS_IMETHODIMP nsTextControlFrame::SetSelectionRange(PRInt32 aSelStart, PRInt32 aSelEnd) { - nsresult rv = EnsureEditorInitialized(); - NS_ENSURE_SUCCESS(rv, rv); - + NS_ENSURE_TRUE(mEditor, NS_ERROR_NOT_INITIALIZED); + if (aSelStart > aSelEnd) { // Simulate what we'd see SetSelectionStart() was called, followed // by a SetSelectionEnd(). @@ -2070,12 +2063,11 @@ nsTextControlFrame::SetSelectionRange(PRInt32 aSelStart, PRInt32 aSelEnd) NS_IMETHODIMP nsTextControlFrame::SetSelectionStart(PRInt32 aSelectionStart) { - nsresult rv = EnsureEditorInitialized(); - NS_ENSURE_SUCCESS(rv, rv); + NS_ENSURE_TRUE(mEditor, NS_ERROR_NOT_INITIALIZED); PRInt32 selStart = 0, selEnd = 0; - rv = GetSelectionRange(&selStart, &selEnd); + nsresult rv = GetSelectionRange(&selStart, &selEnd); NS_ENSURE_SUCCESS(rv, rv); if (aSelectionStart > selEnd) { @@ -2091,12 +2083,11 @@ nsTextControlFrame::SetSelectionStart(PRInt32 aSelectionStart) NS_IMETHODIMP nsTextControlFrame::SetSelectionEnd(PRInt32 aSelectionEnd) { - nsresult rv = EnsureEditorInitialized(); - NS_ENSURE_SUCCESS(rv, rv); - + NS_ENSURE_TRUE(mEditor, NS_ERROR_NOT_INITIALIZED); + PRInt32 selStart = 0, selEnd = 0; - rv = GetSelectionRange(&selStart, &selEnd); + nsresult rv = GetSelectionRange(&selStart, &selEnd); NS_ENSURE_SUCCESS(rv, rv); if (aSelectionEnd < selStart) { @@ -2118,9 +2109,6 @@ nsTextControlFrame::DOMPointToOffset(nsIDOMNode* aNode, *aResult = 0; - nsresult rv = EnsureEditorInitialized(); - NS_ENSURE_SUCCESS(rv, rv); - nsCOMPtr rootElement; mEditor->GetRootElement(getter_AddRefs(rootElement)); nsCOMPtr rootNode(do_QueryInterface(rootElement)); @@ -2129,7 +2117,7 @@ nsTextControlFrame::DOMPointToOffset(nsIDOMNode* aNode, nsCOMPtr nodeList; - rv = rootNode->GetChildNodes(getter_AddRefs(nodeList)); + nsresult rv = rootNode->GetChildNodes(getter_AddRefs(nodeList)); NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_TRUE(nodeList, NS_ERROR_FAILURE); @@ -2198,9 +2186,6 @@ nsTextControlFrame::OffsetToDOMPoint(PRInt32 aOffset, *aResult = nsnull; *aPosition = 0; - nsresult rv = EnsureEditorInitialized(); - NS_ENSURE_SUCCESS(rv, rv); - nsCOMPtr rootElement; mEditor->GetRootElement(getter_AddRefs(rootElement)); nsCOMPtr rootNode(do_QueryInterface(rootElement)); @@ -2209,7 +2194,7 @@ nsTextControlFrame::OffsetToDOMPoint(PRInt32 aOffset, nsCOMPtr nodeList; - rv = rootNode->GetChildNodes(getter_AddRefs(nodeList)); + nsresult rv = rootNode->GetChildNodes(getter_AddRefs(nodeList)); NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_TRUE(nodeList, NS_ERROR_FAILURE); @@ -2289,14 +2274,13 @@ NS_IMETHODIMP nsTextControlFrame::GetSelectionRange(PRInt32* aSelectionStart, PRInt32* aSelectionEnd) { // make sure we have an editor - nsresult rv = EnsureEditorInitialized(); - NS_ENSURE_SUCCESS(rv, rv); + NS_ENSURE_TRUE(mEditor, NS_ERROR_NOT_INITIALIZED); *aSelectionStart = 0; *aSelectionEnd = 0; nsCOMPtr selection; - rv = mSelCon->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(selection)); + nsresult rv = mSelCon->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(selection)); NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_TRUE(selection, NS_ERROR_FAILURE); @@ -2451,10 +2435,8 @@ nsresult nsTextControlFrame::GetPhonetic(nsAString& aPhonetic) { aPhonetic.Truncate(0); - - nsresult rv = EnsureEditorInitialized(); - NS_ENSURE_SUCCESS(rv, rv); - + if (!mEditor) + return NS_ERROR_NOT_INITIALIZED; nsCOMPtr imeSupport = do_QueryInterface(mEditor); if (imeSupport) { nsCOMPtr phonetic = do_QueryInterface(imeSupport);