Bug 1339629 Part 12: Define UUID for ServoStyleSheet, which is needed for tests.
MozReview-Commit-ID: GVUcZ7L0Ro5
--- a/layout/style/ServoStyleSheet.cpp
+++ b/layout/style/ServoStyleSheet.cpp
@@ -10,17 +10,19 @@
#include "mozilla/StyleBackendType.h"
#include "mozilla/ServoBindings.h"
#include "mozilla/ServoMediaList.h"
#include "mozilla/ServoCSSRuleList.h"
#include "mozilla/css/GroupRule.h"
#include "mozilla/dom/CSSRuleList.h"
#include "mozilla/dom/MediaList.h"
+
#include "mozAutoDocUpdate.h"
+#include "nsIDOMCSSStyleSheet.h"
using namespace mozilla::dom;
namespace mozilla {
// -------------------------------
// CSS Style Sheet Inner Data Container
//
@@ -91,16 +93,20 @@ ServoStyleSheet::~ServoStyleSheet()
{
UnparentChildren();
DropRuleList();
}
// QueryInterface implementation for ServoStyleSheet
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ServoStyleSheet)
+ NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDOMCSSStyleSheet)
+ if (aIID.Equals(NS_GET_IID(ServoStyleSheet)))
+ foundInterface = reinterpret_cast<nsISupports*>(this);
+ else
NS_INTERFACE_MAP_END_INHERITING(StyleSheet)
NS_IMPL_ADDREF_INHERITED(ServoStyleSheet, StyleSheet)
NS_IMPL_RELEASE_INHERITED(ServoStyleSheet, StyleSheet)
NS_IMPL_CYCLE_COLLECTION_CLASS(ServoStyleSheet)
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(ServoStyleSheet)
--- a/layout/style/ServoStyleSheet.h
+++ b/layout/style/ServoStyleSheet.h
@@ -50,27 +50,37 @@ struct ServoStyleSheetInner : public Sty
// inside RawServoStyleSheet. We may want to just use that instead.
RefPtr<URLExtraData> mURLData;
};
/**
* CSS style sheet object that is a wrapper for a Servo Stylesheet.
*/
+
+// CID for the ServoStyleSheet class
+// a6f31472-ab69-4beb-860f-c221431ead77
+#define NS_SERVO_STYLE_SHEET_IMPL_CID \
+{ 0xa6f31472, 0xab69, 0x4beb, \
+ { 0x86, 0x0f, 0xc2, 0x21, 0x43, 0x1e, 0xad, 0x77 } }
+
+
class ServoStyleSheet : public StyleSheet
{
public:
ServoStyleSheet(css::SheetParsingMode aParsingMode,
CORSMode aCORSMode,
net::ReferrerPolicy aReferrerPolicy,
const dom::SRIMetadata& aIntegrity);
NS_DECL_ISUPPORTS_INHERITED
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(ServoStyleSheet, StyleSheet)
+ NS_DECLARE_STATIC_IID_ACCESSOR(NS_SERVO_STYLE_SHEET_IMPL_CID)
+
bool HasRules() const;
MOZ_MUST_USE nsresult ParseSheet(css::Loader* aLoader,
const nsAString& aInput,
nsIURI* aSheetURI,
nsIURI* aBaseURI,
nsIPrincipal* aSheetPrincipal,
uint32_t aLineNumber,
@@ -142,11 +152,13 @@ private:
void DropRuleList();
RefPtr<ServoCSSRuleList> mRuleList;
friend class StyleSheet;
};
+NS_DEFINE_STATIC_IID_ACCESSOR(ServoStyleSheet, NS_SERVO_STYLE_SHEET_IMPL_CID)
+
} // namespace mozilla
#endif // mozilla_ServoStyleSheet_h