Bug 945573. Make nsITextControlElement::GetPlaceholderNode return Element*. r=smaug

This commit is contained in:
Boris Zbarsky 2013-12-03 09:40:12 -05:00
parent 58a7c3f5a4
commit ecda4675ae
6 changed files with 19 additions and 17 deletions

View File

@ -16,10 +16,16 @@ class nsISelectionController;
class nsFrameSelection; class nsFrameSelection;
class nsTextControlFrame; class nsTextControlFrame;
namespace mozilla {
namespace dom {
class Element;
} // namespace dom
} // namespace mozilla
// IID for the nsITextControl interface // IID for the nsITextControl interface
#define NS_ITEXTCONTROLELEMENT_IID \ #define NS_ITEXTCONTROLELEMENT_IID \
{ 0x3dd53b59, 0x9d8f, 0x40a3, \ { 0x3df7db6d, 0xa548, 0x4e20, \
{ 0x81, 0xd7, 0xb3, 0x43, 0xa0, 0x51, 0xfc, 0xb5 } } { 0x97, 0xfd, 0x75, 0xa3, 0x31, 0xa2, 0xf3, 0xd4 } }
/** /**
* This interface is used for the text control frame to get the editor and * This interface is used for the text control frame to get the editor and
@ -138,12 +144,12 @@ public:
/** /**
* Create the placeholder anonymous node for the text control and returns it. * Create the placeholder anonymous node for the text control and returns it.
*/ */
NS_IMETHOD_(nsIContent*) CreatePlaceholderNode() = 0; NS_IMETHOD_(mozilla::dom::Element*) CreatePlaceholderNode() = 0;
/** /**
* Get the placeholder anonymous node for the text control. * Get the placeholder anonymous node for the text control.
*/ */
NS_IMETHOD_(nsIContent*) GetPlaceholderNode() = 0; NS_IMETHOD_(mozilla::dom::Element*) GetPlaceholderNode() = 0;
/** /**
* Initialize the keyboard event listeners. * Initialize the keyboard event listeners.

View File

@ -2375,7 +2375,7 @@ HTMLInputElement::GetRootEditorNode()
return nullptr; return nullptr;
} }
NS_IMETHODIMP_(nsIContent*) NS_IMETHODIMP_(Element*)
HTMLInputElement::CreatePlaceholderNode() HTMLInputElement::CreatePlaceholderNode()
{ {
nsTextEditorState* state = GetEditorState(); nsTextEditorState* state = GetEditorState();
@ -2386,7 +2386,7 @@ HTMLInputElement::CreatePlaceholderNode()
return nullptr; return nullptr;
} }
NS_IMETHODIMP_(nsIContent*) NS_IMETHODIMP_(Element*)
HTMLInputElement::GetPlaceholderNode() HTMLInputElement::GetPlaceholderNode()
{ {
nsTextEditorState* state = GetEditorState(); nsTextEditorState* state = GetEditorState();

View File

@ -185,8 +185,8 @@ public:
NS_IMETHOD_(void) UnbindFromFrame(nsTextControlFrame* aFrame) MOZ_OVERRIDE; NS_IMETHOD_(void) UnbindFromFrame(nsTextControlFrame* aFrame) MOZ_OVERRIDE;
NS_IMETHOD CreateEditor() MOZ_OVERRIDE; NS_IMETHOD CreateEditor() MOZ_OVERRIDE;
NS_IMETHOD_(nsIContent*) GetRootEditorNode() MOZ_OVERRIDE; NS_IMETHOD_(nsIContent*) GetRootEditorNode() MOZ_OVERRIDE;
NS_IMETHOD_(nsIContent*) CreatePlaceholderNode() MOZ_OVERRIDE; NS_IMETHOD_(Element*) CreatePlaceholderNode() MOZ_OVERRIDE;
NS_IMETHOD_(nsIContent*) GetPlaceholderNode() MOZ_OVERRIDE; NS_IMETHOD_(Element*) GetPlaceholderNode() MOZ_OVERRIDE;
NS_IMETHOD_(void) UpdatePlaceholderVisibility(bool aNotify) MOZ_OVERRIDE; NS_IMETHOD_(void) UpdatePlaceholderVisibility(bool aNotify) MOZ_OVERRIDE;
NS_IMETHOD_(bool) GetPlaceholderVisibility() MOZ_OVERRIDE; NS_IMETHOD_(bool) GetPlaceholderVisibility() MOZ_OVERRIDE;
NS_IMETHOD_(void) InitializeKeyboardEventListeners() MOZ_OVERRIDE; NS_IMETHOD_(void) InitializeKeyboardEventListeners() MOZ_OVERRIDE;

View File

@ -268,14 +268,14 @@ HTMLTextAreaElement::GetRootEditorNode()
return mState.GetRootNode(); return mState.GetRootNode();
} }
NS_IMETHODIMP_(nsIContent*) NS_IMETHODIMP_(Element*)
HTMLTextAreaElement::CreatePlaceholderNode() HTMLTextAreaElement::CreatePlaceholderNode()
{ {
NS_ENSURE_SUCCESS(mState.CreatePlaceholderNode(), nullptr); NS_ENSURE_SUCCESS(mState.CreatePlaceholderNode(), nullptr);
return mState.GetPlaceholderNode(); return mState.GetPlaceholderNode();
} }
NS_IMETHODIMP_(nsIContent*) NS_IMETHODIMP_(Element*)
HTMLTextAreaElement::GetPlaceholderNode() HTMLTextAreaElement::GetPlaceholderNode()
{ {
return mState.GetPlaceholderNode(); return mState.GetPlaceholderNode();

View File

@ -90,8 +90,8 @@ public:
NS_IMETHOD_(void) UnbindFromFrame(nsTextControlFrame* aFrame) MOZ_OVERRIDE; NS_IMETHOD_(void) UnbindFromFrame(nsTextControlFrame* aFrame) MOZ_OVERRIDE;
NS_IMETHOD CreateEditor() MOZ_OVERRIDE; NS_IMETHOD CreateEditor() MOZ_OVERRIDE;
NS_IMETHOD_(nsIContent*) GetRootEditorNode() MOZ_OVERRIDE; NS_IMETHOD_(nsIContent*) GetRootEditorNode() MOZ_OVERRIDE;
NS_IMETHOD_(nsIContent*) CreatePlaceholderNode() MOZ_OVERRIDE; NS_IMETHOD_(Element*) CreatePlaceholderNode() MOZ_OVERRIDE;
NS_IMETHOD_(nsIContent*) GetPlaceholderNode() MOZ_OVERRIDE; NS_IMETHOD_(Element*) GetPlaceholderNode() MOZ_OVERRIDE;
NS_IMETHOD_(void) UpdatePlaceholderVisibility(bool aNotify) MOZ_OVERRIDE; NS_IMETHOD_(void) UpdatePlaceholderVisibility(bool aNotify) MOZ_OVERRIDE;
NS_IMETHOD_(bool) GetPlaceholderVisibility() MOZ_OVERRIDE; NS_IMETHOD_(bool) GetPlaceholderVisibility() MOZ_OVERRIDE;
NS_IMETHOD_(void) InitializeKeyboardEventListeners() MOZ_OVERRIDE; NS_IMETHOD_(void) InitializeKeyboardEventListeners() MOZ_OVERRIDE;

View File

@ -1437,11 +1437,7 @@ nsTextControlFrame::GetPseudoElement(nsCSSPseudoElements::Type aType)
{ {
if (aType == nsCSSPseudoElements::ePseudo_mozPlaceholder) { if (aType == nsCSSPseudoElements::ePseudo_mozPlaceholder) {
nsCOMPtr<nsITextControlElement> txtCtrl = do_QueryInterface(GetContent()); nsCOMPtr<nsITextControlElement> txtCtrl = do_QueryInterface(GetContent());
nsIContent* placeholderNode = txtCtrl->GetPlaceholderNode(); return txtCtrl->GetPlaceholderNode();
if (placeholderNode && placeholderNode->IsElement()) {
return placeholderNode->AsElement();
}
return nullptr;
} }
return nsContainerFrame::GetPseudoElement(aType); return nsContainerFrame::GetPseudoElement(aType);