diff --git a/content/html/style/public/nsICSSStyleSheet.h b/content/html/style/public/nsICSSStyleSheet.h
new file mode 100644
index 00000000000..bf1e5d80c37
--- /dev/null
+++ b/content/html/style/public/nsICSSStyleSheet.h
@@ -0,0 +1,54 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *
+ * The contents of this file are subject to the Netscape Public License
+ * Version 1.0 (the "NPL"); you may not use this file except in
+ * compliance with the NPL. You may obtain a copy of the NPL at
+ * http://www.mozilla.org/NPL/
+ *
+ * Software distributed under the NPL is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+ * for the specific language governing rights and limitations under the
+ * NPL.
+ *
+ * The Initial Developer of this code under the NPL is Netscape
+ * Communications Corporation. Portions created by Netscape are
+ * Copyright (C) 1998 Netscape Communications Corporation. All Rights
+ * Reserved.
+ */
+#ifndef nsICSSStyleSheet_h___
+#define nsICSSStyleSheet_h___
+
+#include "nslayout.h"
+#include "nsIStyleSheet.h"
+
+class nsICSSStyleRule;
+class nsIDOMNode;
+
+// IID for the nsICSSStyleSheet interface {8f83b0f0-b21a-11d1-8031-006008159b5a}
+#define NS_ICSS_STYLE_SHEET_IID \
+{0x8f83b0f0, 0xb21a, 0x11d1, {0x80, 0x31, 0x00, 0x60, 0x08, 0x15, 0x9b, 0x5a}}
+
+class nsICSSStyleSheet : public nsIStyleSheet {
+public:
+ virtual PRBool ContainsStyleSheet(nsIURL* aURL) const = 0;
+
+ virtual void AppendStyleSheet(nsICSSStyleSheet* aSheet) = 0;
+
+ virtual void PrependStyleRule(nsICSSStyleRule* aRule) = 0;
+ virtual void AppendStyleRule(nsICSSStyleRule* aRule) = 0;
+
+ virtual PRInt32 StyleRuleCount(void) const = 0;
+ virtual nsresult GetStyleRuleAt(PRInt32 aIndex, nsICSSStyleRule*& aRule) const = 0;
+
+ virtual PRInt32 StyleSheetCount(void) const = 0;
+ virtual nsresult GetStyleSheetAt(PRInt32 aIndex, nsICSSStyleSheet*& aSheet) const = 0;
+
+ NS_IMETHOD SetTitle(const nsString& aTitle) = 0;
+ NS_IMETHOD AppendMedium(const nsString& aMedium) = 0;
+ NS_IMETHOD SetOwningNode(nsIDOMNode* aOwningNode) = 0;
+};
+
+extern NS_HTML nsresult
+ NS_NewCSSStyleSheet(nsICSSStyleSheet** aInstancePtrResult, nsIURL* aURL);
+
+#endif /* nsICSSStyleSheet_h___ */
diff --git a/layout/html/style/public/MANIFEST b/layout/html/style/public/MANIFEST
index 2c6dda7012a..284524ad3e5 100644
--- a/layout/html/style/public/MANIFEST
+++ b/layout/html/style/public/MANIFEST
@@ -3,4 +3,5 @@
#
nsICSSParser.h
+nsICSSStyleSheet.h
nsStyleUtil.h
diff --git a/layout/html/style/public/Makefile.in b/layout/html/style/public/Makefile.in
index a7dd5da002e..cb11f5b3a42 100644
--- a/layout/html/style/public/Makefile.in
+++ b/layout/html/style/public/Makefile.in
@@ -26,6 +26,7 @@ MODULE = raptor
EXPORTS = \
nsICSSParser.h \
+ nsICSSStyleSheet.h \
nsStyleUtil.h \
$(NULL)
diff --git a/layout/html/style/public/makefile.win b/layout/html/style/public/makefile.win
index 8d236949ee2..43bf79d4c8c 100644
--- a/layout/html/style/public/makefile.win
+++ b/layout/html/style/public/makefile.win
@@ -17,7 +17,7 @@
DEPTH=..\..\..\..
-EXPORTS=nsICSSParser.h nsStyleUtil.h
+EXPORTS=nsICSSParser.h nsICSSStyleSheet.h nsStyleUtil.h
MODULE=raptor
include <$(DEPTH)\layout\config\rules.mak>
diff --git a/layout/html/style/public/nsICSSStyleSheet.h b/layout/html/style/public/nsICSSStyleSheet.h
new file mode 100644
index 00000000000..bf1e5d80c37
--- /dev/null
+++ b/layout/html/style/public/nsICSSStyleSheet.h
@@ -0,0 +1,54 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *
+ * The contents of this file are subject to the Netscape Public License
+ * Version 1.0 (the "NPL"); you may not use this file except in
+ * compliance with the NPL. You may obtain a copy of the NPL at
+ * http://www.mozilla.org/NPL/
+ *
+ * Software distributed under the NPL is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+ * for the specific language governing rights and limitations under the
+ * NPL.
+ *
+ * The Initial Developer of this code under the NPL is Netscape
+ * Communications Corporation. Portions created by Netscape are
+ * Copyright (C) 1998 Netscape Communications Corporation. All Rights
+ * Reserved.
+ */
+#ifndef nsICSSStyleSheet_h___
+#define nsICSSStyleSheet_h___
+
+#include "nslayout.h"
+#include "nsIStyleSheet.h"
+
+class nsICSSStyleRule;
+class nsIDOMNode;
+
+// IID for the nsICSSStyleSheet interface {8f83b0f0-b21a-11d1-8031-006008159b5a}
+#define NS_ICSS_STYLE_SHEET_IID \
+{0x8f83b0f0, 0xb21a, 0x11d1, {0x80, 0x31, 0x00, 0x60, 0x08, 0x15, 0x9b, 0x5a}}
+
+class nsICSSStyleSheet : public nsIStyleSheet {
+public:
+ virtual PRBool ContainsStyleSheet(nsIURL* aURL) const = 0;
+
+ virtual void AppendStyleSheet(nsICSSStyleSheet* aSheet) = 0;
+
+ virtual void PrependStyleRule(nsICSSStyleRule* aRule) = 0;
+ virtual void AppendStyleRule(nsICSSStyleRule* aRule) = 0;
+
+ virtual PRInt32 StyleRuleCount(void) const = 0;
+ virtual nsresult GetStyleRuleAt(PRInt32 aIndex, nsICSSStyleRule*& aRule) const = 0;
+
+ virtual PRInt32 StyleSheetCount(void) const = 0;
+ virtual nsresult GetStyleSheetAt(PRInt32 aIndex, nsICSSStyleSheet*& aSheet) const = 0;
+
+ NS_IMETHOD SetTitle(const nsString& aTitle) = 0;
+ NS_IMETHOD AppendMedium(const nsString& aMedium) = 0;
+ NS_IMETHOD SetOwningNode(nsIDOMNode* aOwningNode) = 0;
+};
+
+extern NS_HTML nsresult
+ NS_NewCSSStyleSheet(nsICSSStyleSheet** aInstancePtrResult, nsIURL* aURL);
+
+#endif /* nsICSSStyleSheet_h___ */
diff --git a/layout/html/style/src/Makefile.in b/layout/html/style/src/Makefile.in
index 8900d260449..97f2c179f31 100644
--- a/layout/html/style/src/Makefile.in
+++ b/layout/html/style/src/Makefile.in
@@ -53,7 +53,6 @@ EXPORTS = \
nsCSSProps.h \
nsCSSPropIDs.h \
nsCSSValue.h \
- nsICSSStyleSheet.h \
nsICSSStyleRule.h \
nsICSSDeclaration.h \
nsHTMLValue.h \
diff --git a/layout/html/style/src/makefile.win b/layout/html/style/src/makefile.win
index 98d3c9c770b..48c5dc4f6dc 100644
--- a/layout/html/style/src/makefile.win
+++ b/layout/html/style/src/makefile.win
@@ -27,7 +27,6 @@ EXPORTS = \
nsCSSProps.h \
nsCSSPropIDs.h \
nsCSSValue.h \
- nsICSSStyleSheet.h \
nsICSSStyleRule.h \
nsICSSDeclaration.h \
nsHTMLValue.h \
diff --git a/layout/html/style/src/nsICSSStyleSheet.h b/layout/html/style/src/nsICSSStyleSheet.h
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/layout/style/nsICSSStyleSheet.h b/layout/style/nsICSSStyleSheet.h
new file mode 100644
index 00000000000..bf1e5d80c37
--- /dev/null
+++ b/layout/style/nsICSSStyleSheet.h
@@ -0,0 +1,54 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *
+ * The contents of this file are subject to the Netscape Public License
+ * Version 1.0 (the "NPL"); you may not use this file except in
+ * compliance with the NPL. You may obtain a copy of the NPL at
+ * http://www.mozilla.org/NPL/
+ *
+ * Software distributed under the NPL is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+ * for the specific language governing rights and limitations under the
+ * NPL.
+ *
+ * The Initial Developer of this code under the NPL is Netscape
+ * Communications Corporation. Portions created by Netscape are
+ * Copyright (C) 1998 Netscape Communications Corporation. All Rights
+ * Reserved.
+ */
+#ifndef nsICSSStyleSheet_h___
+#define nsICSSStyleSheet_h___
+
+#include "nslayout.h"
+#include "nsIStyleSheet.h"
+
+class nsICSSStyleRule;
+class nsIDOMNode;
+
+// IID for the nsICSSStyleSheet interface {8f83b0f0-b21a-11d1-8031-006008159b5a}
+#define NS_ICSS_STYLE_SHEET_IID \
+{0x8f83b0f0, 0xb21a, 0x11d1, {0x80, 0x31, 0x00, 0x60, 0x08, 0x15, 0x9b, 0x5a}}
+
+class nsICSSStyleSheet : public nsIStyleSheet {
+public:
+ virtual PRBool ContainsStyleSheet(nsIURL* aURL) const = 0;
+
+ virtual void AppendStyleSheet(nsICSSStyleSheet* aSheet) = 0;
+
+ virtual void PrependStyleRule(nsICSSStyleRule* aRule) = 0;
+ virtual void AppendStyleRule(nsICSSStyleRule* aRule) = 0;
+
+ virtual PRInt32 StyleRuleCount(void) const = 0;
+ virtual nsresult GetStyleRuleAt(PRInt32 aIndex, nsICSSStyleRule*& aRule) const = 0;
+
+ virtual PRInt32 StyleSheetCount(void) const = 0;
+ virtual nsresult GetStyleSheetAt(PRInt32 aIndex, nsICSSStyleSheet*& aSheet) const = 0;
+
+ NS_IMETHOD SetTitle(const nsString& aTitle) = 0;
+ NS_IMETHOD AppendMedium(const nsString& aMedium) = 0;
+ NS_IMETHOD SetOwningNode(nsIDOMNode* aOwningNode) = 0;
+};
+
+extern NS_HTML nsresult
+ NS_NewCSSStyleSheet(nsICSSStyleSheet** aInstancePtrResult, nsIURL* aURL);
+
+#endif /* nsICSSStyleSheet_h___ */