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 nsTextControlFrame;
namespace mozilla {
namespace dom {
class Element;
} // namespace dom
} // namespace mozilla
// IID for the nsITextControl interface
#define NS_ITEXTCONTROLELEMENT_IID \
{ 0x3dd53b59, 0x9d8f, 0x40a3, \
{ 0x81, 0xd7, 0xb3, 0x43, 0xa0, 0x51, 0xfc, 0xb5 } }
{ 0x3df7db6d, 0xa548, 0x4e20, \
{ 0x97, 0xfd, 0x75, 0xa3, 0x31, 0xa2, 0xf3, 0xd4 } }
/**
* 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.
*/
NS_IMETHOD_(nsIContent*) CreatePlaceholderNode() = 0;
NS_IMETHOD_(mozilla::dom::Element*) CreatePlaceholderNode() = 0;
/**
* 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.

View File

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

View File

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

View File

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

View File

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

View File

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