Bug 1339629 Part 12: Define UUID for ServoStyleSheet, which is needed for tests. draft
authorBrad Werth <bwerth@mozilla.com>
Thu, 18 May 2017 16:36:44 -0700
changeset 584206 8cd7c33c9fe5404418cd8c5d479a19a91b3fb56d
parent 584205 efb86a9896d11a65a2d22b87c20c04d1495bc1c7
child 584207 c853932e072da198cfc21e1794cf442692ef68d4
push id60647
push userbwerth@mozilla.com
push dateThu, 25 May 2017 00:33:14 +0000
bugs1339629
milestone55.0a1
Bug 1339629 Part 12: Define UUID for ServoStyleSheet, which is needed for tests. MozReview-Commit-ID: GVUcZ7L0Ro5
layout/style/ServoStyleSheet.cpp
layout/style/ServoStyleSheet.h
--- 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