mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-28 12:45:27 +00:00
0da3dae9c9
This way we reuse the same machinery everywhere for the content property. The only difference is that we need to look at the parent style for content instead of just our style, and at a given index. Again, this is fine because changing content reframes, so no chance to mess up. This allows the generated content stuff to not implement nsImageLoadingContent and all that stuff, nor deal with events, which makes it much simpler IMO. Now it just tracks an index. We may not even need for it to be an HTML element, but I've kept that for now. I added a crashtest that used to crash because of the bogus nsCSSFrameConstructor code which trusted the node name without checking it was native anonymous. Differential Revision: https://phabricator.services.mozilla.com/D1897 MozReview-Commit-ID: 1pAzIvRRVnL
80 lines
2.6 KiB
C++
80 lines
2.6 KiB
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef nsContentCreatorFunctions_h__
|
|
#define nsContentCreatorFunctions_h__
|
|
|
|
#include "nsError.h"
|
|
#include "nsCOMPtr.h"
|
|
#include "mozilla/dom/FromParser.h"
|
|
|
|
/**
|
|
* Functions to create content, to be used only inside Gecko
|
|
* (mozilla/content and mozilla/layout).
|
|
*/
|
|
|
|
class nsAtom;
|
|
class nsIContent;
|
|
class nsIDocument;
|
|
class imgRequestProxy;
|
|
class nsGenericHTMLElement;
|
|
|
|
namespace mozilla {
|
|
namespace dom {
|
|
class Element;
|
|
class NodeInfo;
|
|
struct CustomElementDefinition;
|
|
} // namespace dom
|
|
} // namespace mozilla
|
|
|
|
nsresult
|
|
NS_NewElement(mozilla::dom::Element** aResult,
|
|
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo,
|
|
mozilla::dom::FromParser aFromParser,
|
|
const nsAString* aIs = nullptr);
|
|
|
|
nsresult
|
|
NS_NewXMLElement(mozilla::dom::Element** aResult,
|
|
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo);
|
|
|
|
nsresult
|
|
NS_NewHTMLElement(mozilla::dom::Element** aResult,
|
|
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo,
|
|
mozilla::dom::FromParser aFromParser,
|
|
nsAtom* aIsAtom = nullptr,
|
|
mozilla::dom::CustomElementDefinition* aDefinition = nullptr);
|
|
|
|
// First argument should be nsHTMLTag, but that adds dependency to parser
|
|
// for a bunch of files.
|
|
already_AddRefed<nsGenericHTMLElement>
|
|
CreateHTMLElement(uint32_t aNodeType,
|
|
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo,
|
|
mozilla::dom::FromParser aFromParser);
|
|
|
|
nsresult
|
|
NS_NewMathMLElement(mozilla::dom::Element** aResult,
|
|
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo);
|
|
|
|
#ifdef MOZ_XUL
|
|
nsresult
|
|
NS_NewXULElement(mozilla::dom::Element** aResult,
|
|
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo,
|
|
mozilla::dom::FromParser aFromParser,
|
|
nsAtom* aIsAtom = nullptr,
|
|
mozilla::dom::CustomElementDefinition* aDefinition = nullptr);
|
|
|
|
void
|
|
NS_TrustedNewXULElement(mozilla::dom::Element** aResult,
|
|
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo);
|
|
#endif
|
|
|
|
nsresult
|
|
NS_NewSVGElement(mozilla::dom::Element** aResult,
|
|
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo,
|
|
mozilla::dom::FromParser aFromParser);
|
|
|
|
#endif // nsContentCreatorFunctions_h__
|