mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-27 10:57:34 +09:00
Merge remote-tracking branch 'origin/master' into custom
This commit is contained in:
commit
c7bc87cff9
313 changed files with 18135 additions and 13978 deletions
|
|
@ -15,31 +15,28 @@ using namespace mozilla;
|
|||
using namespace mozilla::dom;
|
||||
|
||||
// Hash table that maps nsIAtom* SVG tags to an offset index
|
||||
// within the array sContentCreatorCallbacks (offset by TABLE_VALUE_OFFSET)
|
||||
// within the array sSVGContentCreatorFunctions (offset by TABLE_VALUE_OFFSET)
|
||||
static PLHashTable* sTagAtomTable = nullptr;
|
||||
|
||||
// We don't want to store 0 in the hash table as a return value of 0 from
|
||||
// PL_HashTableLookupConst indicates that the value is not found
|
||||
#define TABLE_VALUE_OFFSET 1
|
||||
|
||||
#define SVG_TAG(_tag, _classname) \
|
||||
nsresult \
|
||||
NS_NewSVG##_classname##Element(nsIContent** aResult, \
|
||||
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo); \
|
||||
\
|
||||
static inline nsresult \
|
||||
Create##_classname##Element(nsIContent** aResult, \
|
||||
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo, \
|
||||
FromParser aFromParser) \
|
||||
{ \
|
||||
return NS_NewSVG##_classname##Element(aResult, mozilla::Move(aNodeInfo)); \
|
||||
}
|
||||
#define SVG_TAG(_tag, _classname) \
|
||||
nsresult NS_NewSVG##_classname##Element( \
|
||||
nsIContent** aResult, \
|
||||
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo); \
|
||||
\
|
||||
nsresult NS_NewSVG##_classname##Element( \
|
||||
nsIContent** aResult, \
|
||||
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo, \
|
||||
FromParser aFromParser) \
|
||||
{ \
|
||||
return NS_NewSVG##_classname##Element(aResult, mozilla::Move(aNodeInfo)); \
|
||||
}
|
||||
|
||||
#define SVG_FROM_PARSER_TAG(_tag, _classname)
|
||||
|
||||
#define SVG_FROM_PARSER_TAG(_tag, _classname) \
|
||||
nsresult \
|
||||
NS_NewSVG##_classname##Element(nsIContent** aResult, \
|
||||
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo, \
|
||||
FromParser aFromParser);
|
||||
#include "SVGTagList.h"
|
||||
#undef SVG_TAG
|
||||
#undef SVG_FROM_PARSER_TAG
|
||||
|
|
@ -48,13 +45,8 @@ nsresult
|
|||
NS_NewSVGElement(Element** aResult,
|
||||
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo);
|
||||
|
||||
typedef nsresult
|
||||
(*contentCreatorCallback)(nsIContent** aResult,
|
||||
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo,
|
||||
FromParser aFromParser);
|
||||
|
||||
static const contentCreatorCallback sContentCreatorCallbacks[] = {
|
||||
#define SVG_TAG(_tag, _classname) Create##_classname##Element,
|
||||
static const SVGContentCreatorFunction sSVGContentCreatorFunctions[] = {
|
||||
#define SVG_TAG(_tag, _classname) NS_NewSVG##_classname##Element,
|
||||
#define SVG_FROM_PARSER_TAG(_tag, _classname) NS_NewSVG##_classname##Element,
|
||||
#include "SVGTagList.h"
|
||||
#undef SVG_TAG
|
||||
|
|
@ -124,7 +116,7 @@ NS_NewSVGElement(Element** aResult, already_AddRefed<mozilla::dom::NodeInfo>&& a
|
|||
MOZ_CRASH();
|
||||
}
|
||||
|
||||
contentCreatorCallback cb = sContentCreatorCallbacks[index];
|
||||
SVGContentCreatorFunction cb = sSVGContentCreatorFunctions[index];
|
||||
|
||||
nsCOMPtr<nsIContent> content;
|
||||
nsresult rv = cb(getter_AddRefs(content), ni.forget(), aFromParser);
|
||||
|
|
@ -135,3 +127,15 @@ NS_NewSVGElement(Element** aResult, already_AddRefed<mozilla::dom::NodeInfo>&& a
|
|||
// if we don't know what to create, just create a standard svg element:
|
||||
return NS_NewSVGElement(aResult, ni.forget());
|
||||
}
|
||||
|
||||
nsresult
|
||||
NS_NewSVGUnknownElement(nsIContent** aResult,
|
||||
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo,
|
||||
FromParser aFromParser)
|
||||
{
|
||||
RefPtr<mozilla::dom::NodeInfo> ni = aNodeInfo;
|
||||
nsCOMPtr<Element> element;
|
||||
nsresult rv = NS_NewSVGElement(getter_AddRefs(element), ni.forget());
|
||||
element.forget(aResult);
|
||||
return rv;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,32 @@ public:
|
|||
static void Shutdown();
|
||||
};
|
||||
|
||||
typedef nsresult (*SVGContentCreatorFunction)(
|
||||
nsIContent** aResult,
|
||||
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo,
|
||||
mozilla::dom::FromParser aFromParser);
|
||||
|
||||
} // namespace dom
|
||||
} // namespace mozilla
|
||||
|
||||
#define SVG_TAG(_tag, _classname) \
|
||||
nsresult NS_NewSVG##_classname##Element( \
|
||||
nsIContent** aResult, \
|
||||
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo, \
|
||||
mozilla::dom::FromParser aFromParser);
|
||||
|
||||
#define SVG_FROM_PARSER_TAG(_tag, _classname) \
|
||||
nsresult NS_NewSVG##_classname##Element( \
|
||||
nsIContent** aResult, \
|
||||
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo, \
|
||||
mozilla::dom::FromParser aFromParser);
|
||||
#include "SVGTagList.h"
|
||||
#undef SVG_TAG
|
||||
#undef SVG_FROM_PARSER_TAG
|
||||
|
||||
nsresult
|
||||
NS_NewSVGUnknownElement(nsIContent** aResult,
|
||||
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo,
|
||||
mozilla::dom::FromParser aFromParser);
|
||||
|
||||
#endif /* mozilla_dom_SVGElementFactory_h */
|
||||
|
|
|
|||
|
|
@ -9,7 +9,14 @@
|
|||
This file contains the list of all SVG tags.
|
||||
|
||||
It is designed to be used as inline input to SVGElementFactory.cpp
|
||||
*only* through the magic of C preprocessing.
|
||||
through the magic of C preprocessing.
|
||||
|
||||
Additionally, it is consumed by the self-regeneration code in
|
||||
ElementName.java from which nsHtml5ElementName.cpp/h is translated.
|
||||
See parser/html/java/README.txt.
|
||||
|
||||
If you edit this list, you need to re-run ElementName.java
|
||||
self-regeneration and the HTML parser Java to C++ translation.
|
||||
|
||||
All entries must be enclosed in the macro SVG_TAG or SVG_FROM_PARSER_TAG
|
||||
which will have cruel and unusual things done to them.
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ EXPORTS += [
|
|||
'SVGContentUtils.h',
|
||||
'SVGPreserveAspectRatio.h',
|
||||
'SVGStringList.h',
|
||||
'SVGTagList.h',
|
||||
]
|
||||
|
||||
EXPORTS.mozilla.dom += [
|
||||
|
|
@ -39,6 +40,7 @@ EXPORTS.mozilla.dom += [
|
|||
'SVGDefsElement.h',
|
||||
'SVGDescElement.h',
|
||||
'SVGDocument.h',
|
||||
'SVGElementFactory.h',
|
||||
'SVGEllipseElement.h',
|
||||
'SVGFEBlendElement.h',
|
||||
'SVGFEColorMatrixElement.h',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue