diff --git a/mozilla/accessible/src/html/nsHTMLFormControlAccessible.cpp b/mozilla/accessible/src/html/nsHTMLFormControlAccessible.cpp
index cd3fa551722..08d8a388364 100644
--- a/mozilla/accessible/src/html/nsHTMLFormControlAccessible.cpp
+++ b/mozilla/accessible/src/html/nsHTMLFormControlAccessible.cpp
@@ -41,6 +41,7 @@
#include "nsAccessibilityAtoms.h"
#include "nsHTMLFormControlAccessible.h"
#include "nsIDOMHTMLInputElement.h"
+#include "nsIDOMNSEditableElement.h"
#include "nsIDOMNSHTMLButtonElement.h"
#include "nsIDOMHTMLLegendElement.h"
#include "nsIDOMHTMLTextAreaElement.h"
@@ -417,15 +418,15 @@ void nsHTMLTextFieldAccessible::SetEditor(nsIEditor* aEditor)
void nsHTMLTextFieldAccessible::CheckForEditor()
{
- nsIFrame *frame = GetFrame();
- if (frame) {
- nsITextControlFrame *textFrame;
- frame->QueryInterface(NS_GET_IID(nsITextControlFrame), (void**)&textFrame);
- if (textFrame) {
- nsCOMPtr editor;
- textFrame->GetEditor(getter_AddRefs(editor));
- SetEditor(editor);
- }
+ nsCOMPtr editableElt(do_QueryInterface(mDOMNode));
+ if (!editableElt) {
+ return;
+ }
+
+ nsCOMPtr editor;
+ nsresult rv = editableElt->GetEditor(getter_AddRefs(editor));
+ if (NS_SUCCEEDED(rv)) {
+ SetEditor(editor);
}
}
diff --git a/mozilla/accessible/src/xul/nsXULFormControlAccessible.cpp b/mozilla/accessible/src/xul/nsXULFormControlAccessible.cpp
index 7dc6aca5f3a..ba3c940a35a 100644
--- a/mozilla/accessible/src/xul/nsXULFormControlAccessible.cpp
+++ b/mozilla/accessible/src/xul/nsXULFormControlAccessible.cpp
@@ -43,6 +43,7 @@
#include "nsAccessibilityAtoms.h"
#include "nsAccessibleTreeWalker.h"
#include "nsIDOMHTMLInputElement.h"
+#include "nsIDOMNSEditableElement.h"
#include "nsIDOMXULButtonElement.h"
#include "nsIDOMXULCheckboxElement.h"
#include "nsIDOMXULMenuListElement.h"
@@ -797,23 +798,18 @@ void nsXULTextFieldAccessible::CheckForEditor()
nsCOMPtr inputField;
textBox->GetInputField(getter_AddRefs(inputField));
- nsCOMPtr inputContent = do_QueryInterface(inputField);
- if (!inputContent) {
+ if (!inputField) {
return;
}
-
- nsCOMPtr presShell = GetPresShell();
- nsIFrame *inputFrame = presShell->GetPrimaryFrameFor(inputContent);
- if (!inputFrame) {
+
+ nsCOMPtr editableElt(do_QueryInterface(inputField));
+ if (!editableElt) {
return;
}
-
- nsITextControlFrame *textFrame;
- inputFrame->QueryInterface(NS_GET_IID(nsITextControlFrame), (void**)&textFrame);
- if (textFrame) {
- nsCOMPtr editor;
- textFrame->GetEditor(getter_AddRefs(editor));
+
+ nsCOMPtr editor;
+ nsresult rv = editableElt->GetEditor(getter_AddRefs(editor));
+ if (NS_SUCCEEDED(rv)) {
SetEditor(editor);
}
}
-