mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-13 05:15:45 +00:00
Bug 884400. Remove the non-WebIDL version of NS_IMPL_NS_NEW_HTML_ELEMENT. r=peterv
This commit is contained in:
parent
77bebdc268
commit
82d227bc23
@ -54,12 +54,10 @@ NS_NewHTMLTrackElement(already_AddRefed<nsINodeInfo> aNodeInfo,
|
||||
mozilla::dom::FromParser aFromParser)
|
||||
{
|
||||
if (!mozilla::dom::HTMLTrackElement::IsWebVTTEnabled()) {
|
||||
return mozilla::dom::NewHTMLElementHelper::Create<nsHTMLUnknownElement,
|
||||
mozilla::dom::HTMLUnknownElement>(aNodeInfo);
|
||||
return new mozilla::dom::HTMLUnknownElement(aNodeInfo);
|
||||
}
|
||||
|
||||
return mozilla::dom::NewHTMLElementHelper::Create<nsHTMLTrackElement,
|
||||
mozilla::dom::HTMLTrackElement>(aNodeInfo);
|
||||
return new mozilla::dom::HTMLTrackElement(aNodeInfo);
|
||||
}
|
||||
|
||||
namespace mozilla {
|
||||
|
@ -1711,7 +1711,6 @@ protected:
|
||||
* A macro to declare the NS_NewHTMLXXXElement() functions.
|
||||
*/
|
||||
#define NS_DECLARE_NS_NEW_HTML_ELEMENT(_elementName) \
|
||||
class nsHTML##_elementName##Element; \
|
||||
namespace mozilla { \
|
||||
namespace dom { \
|
||||
class HTML##_elementName##Element; \
|
||||
@ -1729,55 +1728,6 @@ NS_NewHTML##_elementName##Element(already_AddRefed<nsINodeInfo> aNodeInfo, \
|
||||
return NS_NewHTMLSharedElement(aNodeInfo, aFromParser); \
|
||||
}
|
||||
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
// A helper struct to automatically detect whether HTMLFooElement is implemented
|
||||
// as nsHTMLFooElement or as mozilla::dom::HTMLFooElement by using SFINAE to
|
||||
// look for the InNavQuirksMode function (which lives on nsGenericHTMLElement)
|
||||
// on both types and using whichever one the substitution succeeds with.
|
||||
|
||||
struct NewHTMLElementHelper
|
||||
{
|
||||
template<typename V, V> struct SFINAE;
|
||||
typedef bool (*InNavQuirksMode)(nsIDocument*);
|
||||
|
||||
template<typename T, typename U>
|
||||
static nsGenericHTMLElement*
|
||||
Create(already_AddRefed<nsINodeInfo> aNodeInfo,
|
||||
SFINAE<InNavQuirksMode, T::InNavQuirksMode>* dummy=nullptr)
|
||||
{
|
||||
return new T(aNodeInfo);
|
||||
}
|
||||
template<typename T, typename U>
|
||||
static nsGenericHTMLElement*
|
||||
Create(already_AddRefed<nsINodeInfo> aNodeInfo,
|
||||
SFINAE<InNavQuirksMode, U::InNavQuirksMode>* dummy=nullptr)
|
||||
{
|
||||
return new U(aNodeInfo);
|
||||
}
|
||||
|
||||
template<typename T, typename U>
|
||||
static nsGenericHTMLElement*
|
||||
Create(already_AddRefed<nsINodeInfo> aNodeInfo,
|
||||
mozilla::dom::FromParser aFromParser,
|
||||
SFINAE<InNavQuirksMode, U::InNavQuirksMode>* dummy=nullptr)
|
||||
{
|
||||
return new U(aNodeInfo, aFromParser);
|
||||
}
|
||||
template<typename T, typename U>
|
||||
static nsGenericHTMLElement*
|
||||
Create(already_AddRefed<nsINodeInfo> aNodeInfo,
|
||||
mozilla::dom::FromParser aFromParser,
|
||||
SFINAE<InNavQuirksMode, T::InNavQuirksMode>* dummy=nullptr)
|
||||
{
|
||||
return new T(aNodeInfo, aFromParser);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A macro to implement the NS_NewHTMLXXXElement() functions.
|
||||
*/
|
||||
@ -1786,9 +1736,7 @@ nsGenericHTMLElement* \
|
||||
NS_NewHTML##_elementName##Element(already_AddRefed<nsINodeInfo> aNodeInfo, \
|
||||
mozilla::dom::FromParser aFromParser) \
|
||||
{ \
|
||||
return mozilla::dom::NewHTMLElementHelper:: \
|
||||
Create<nsHTML##_elementName##Element, \
|
||||
mozilla::dom::HTML##_elementName##Element>(aNodeInfo); \
|
||||
return new mozilla::dom::HTML##_elementName##Element(aNodeInfo); \
|
||||
}
|
||||
|
||||
#define NS_IMPL_NS_NEW_HTML_ELEMENT_CHECK_PARSER(_elementName) \
|
||||
@ -1796,10 +1744,8 @@ nsGenericHTMLElement* \
|
||||
NS_NewHTML##_elementName##Element(already_AddRefed<nsINodeInfo> aNodeInfo, \
|
||||
mozilla::dom::FromParser aFromParser) \
|
||||
{ \
|
||||
return mozilla::dom::NewHTMLElementHelper:: \
|
||||
Create<nsHTML##_elementName##Element, \
|
||||
mozilla::dom::HTML##_elementName##Element>(aNodeInfo, \
|
||||
aFromParser); \
|
||||
return new mozilla::dom::HTML##_elementName##Element(aNodeInfo, \
|
||||
aFromParser); \
|
||||
}
|
||||
|
||||
// Here, we expand 'NS_DECLARE_NS_NEW_HTML_ELEMENT()' by hand.
|
||||
|
Loading…
Reference in New Issue
Block a user