Remove nsCSSOMFactory/nsICSSOMFactory. (
Bug 376111) r+sr=bzbarsky
--- a/content/base/src/nsStyledElement.cpp
+++ b/content/base/src/nsStyledElement.cpp
@@ -39,17 +39,17 @@
* ***** END LICENSE BLOCK ***** */
#include "nsStyledElement.h"
#include "nsGkAtoms.h"
#include "nsAttrValue.h"
#include "nsGenericElement.h"
#include "nsMutationEvent.h"
#include "nsDOMCSSDeclaration.h"
-#include "nsICSSOMFactory.h"
+#include "nsDOMCSSAttrDeclaration.h"
#include "nsServiceManagerUtils.h"
#include "nsIDocument.h"
#include "nsICSSStyleRule.h"
#include "nsICSSParser.h"
#include "nsICSSLoader.h"
#ifdef MOZ_SVG
#include "nsIDOMSVGStylable.h"
@@ -162,38 +162,28 @@ nsStyledElement::BindToTree(nsIDocument*
ReparseStyleAttribute(PR_FALSE);
return rv;
}
// ---------------------------------------------------------------
// Others and helpers
-static nsICSSOMFactory* gCSSOMFactory = nsnull;
-static NS_DEFINE_CID(kCSSOMFactoryCID, NS_CSSOMFACTORY_CID);
-
nsresult
nsStyledElement::GetStyle(nsIDOMCSSStyleDeclaration** aStyle)
{
nsGenericElement::nsDOMSlots *slots = GetDOMSlots();
NS_ENSURE_TRUE(slots, NS_ERROR_OUT_OF_MEMORY);
if (!slots->mStyle) {
// Just in case...
ReparseStyleAttribute(PR_TRUE);
- nsresult rv;
- if (!gCSSOMFactory) {
- rv = CallGetService(kCSSOMFactoryCID, &gCSSOMFactory);
- NS_ENSURE_SUCCESS(rv, rv);
- }
-
- rv = gCSSOMFactory->CreateDOMCSSAttributeDeclaration(this,
- getter_AddRefs(slots->mStyle));
- NS_ENSURE_SUCCESS(rv, rv);
+ slots->mStyle = new nsDOMCSSAttributeDeclaration(this);
+ NS_ENSURE_TRUE(slots->mStyle, NS_ERROR_OUT_OF_MEMORY);
SetFlags(NODE_MAY_HAVE_STYLE);
}
// Why bother with QI?
NS_ADDREF(*aStyle = slots->mStyle);
return NS_OK;
}
@@ -260,15 +250,8 @@ nsStyledElement::ParseStyleAttribute(nsI
return;
}
}
}
}
aResult.SetTo(aValue);
}
-
-
-/* static */ void
-nsStyledElement::Shutdown()
-{
- NS_IF_RELEASE(gCSSOMFactory);
-}
--- a/content/base/src/nsStyledElement.h
+++ b/content/base/src/nsStyledElement.h
@@ -84,18 +84,16 @@ public:
* @param aValue the value to parse
* @param aResult the resulting HTMLValue [OUT]
*/
static void ParseStyleAttribute(nsIContent* aContent,
const nsAString& aValue,
nsAttrValue& aResult,
PRBool aForceInDataDoc);
- static void Shutdown();
-
protected:
virtual PRBool ParseAttribute(PRInt32 aNamespaceID, nsIAtom* aAttribute,
const nsAString& aValue, nsAttrValue& aResult);
nsresult GetStyle(nsIDOMCSSStyleDeclaration** aStyle);
/**
--- a/content/html/content/src/nsGenericHTMLElement.cpp
+++ b/content/html/content/src/nsGenericHTMLElement.cpp
@@ -88,17 +88,16 @@
#include "nsContentUtils.h"
#include "nsString.h"
#include "nsUnicharUtils.h"
#include "nsGkAtoms.h"
#include "nsIEventStateManager.h"
#include "nsIDOMEvent.h"
#include "nsIDOMNSEvent.h"
#include "nsDOMCSSDeclaration.h"
-#include "nsICSSOMFactory.h"
#include "nsITextControlFrame.h"
#include "nsIForm.h"
#include "nsIFormControl.h"
#include "nsIDOMHTMLFormElement.h"
#include "nsMutationEvent.h"
#include "nsContentCID.h"
--- a/content/xul/content/src/nsXULElement.cpp
+++ b/content/xul/content/src/nsXULElement.cpp
@@ -98,16 +98,17 @@
#include "nsIRDFService.h"
#include "nsIScriptContext.h"
#include "nsIScriptRuntime.h"
#include "nsIScriptGlobalObject.h"
#include "nsIScriptGlobalObjectOwner.h"
#include "nsIServiceManager.h"
#include "nsICSSStyleRule.h"
#include "nsIStyleSheet.h"
+#include "nsDOMCSSAttrDeclaration.h"
#include "nsIURL.h"
#include "nsIViewManager.h"
#include "nsIWidget.h"
#include "nsIXULDocument.h"
#include "nsIXULTemplateBuilder.h"
#include "nsIXBLService.h"
#include "nsLayoutCID.h"
#include "nsContentCID.h"
@@ -154,17 +155,16 @@
#include "mozAutoDocUpdate.h"
#include "nsIDOMXULCommandEvent.h"
#include "nsIDOMNSEvent.h"
#include "nsCCUncollectableMarker.h"
// Global object maintenance
nsICSSParser* nsXULPrototypeElement::sCSSParser = nsnull;
nsIXBLService * nsXULElement::gXBLService = nsnull;
-nsICSSOMFactory* nsXULElement::gCSSOMFactory = nsnull;
/**
* A tearoff class for nsXULElement to implement nsIScriptEventHandlerOwner.
*/
class nsScriptEventHandlerOwnerTearoff : public nsIScriptEventHandlerOwner
{
public:
nsScriptEventHandlerOwnerTearoff(nsXULElement* aElement)
@@ -186,17 +186,16 @@ public:
private:
nsRefPtr<nsXULElement> mElement;
};
//----------------------------------------------------------------------
static NS_DEFINE_CID(kXULPopupListenerCID, NS_XULPOPUPLISTENER_CID);
-static NS_DEFINE_CID(kCSSOMFactoryCID, NS_CSSOMFACTORY_CID);
//----------------------------------------------------------------------
#ifdef XUL_PROTOTYPE_ATTRIBUTE_METERING
PRUint32 nsXULPrototypeAttribute::gNumElements;
PRUint32 nsXULPrototypeAttribute::gNumAttributes;
PRUint32 nsXULPrototypeAttribute::gNumEventHandlers;
PRUint32 nsXULPrototypeAttribute::gNumCacheTests;
@@ -1924,24 +1923,18 @@ nsXULElement::GetStyle(nsIDOMCSSStyleDec
NS_ENSURE_SUCCESS(rv, rv);
}
}
nsDOMSlots* slots = GetDOMSlots();
NS_ENSURE_TRUE(slots, NS_ERROR_OUT_OF_MEMORY);
if (!slots->mStyle) {
- if (!gCSSOMFactory) {
- rv = CallGetService(kCSSOMFactoryCID, &gCSSOMFactory);
- NS_ENSURE_SUCCESS(rv, rv);
- }
-
- rv = gCSSOMFactory->CreateDOMCSSAttributeDeclaration(this,
- getter_AddRefs(slots->mStyle));
- NS_ENSURE_SUCCESS(rv, rv);
+ slots->mStyle = new nsDOMCSSAttributeDeclaration(this);
+ NS_ENSURE_TRUE(slots->mStyle, NS_ERROR_OUT_OF_MEMORY);
SetFlags(NODE_MAY_HAVE_STYLE);
}
NS_IF_ADDREF(*aStyle = slots->mStyle);
return NS_OK;
}
--- a/content/xul/content/src/nsXULElement.h
+++ b/content/xul/content/src/nsXULElement.h
@@ -65,17 +65,16 @@
#include "nsIRDFCompositeDataSource.h"
#include "nsIRDFResource.h"
#include "nsIScriptObjectOwner.h"
#include "nsBindingManager.h"
#include "nsIURI.h"
#include "nsIXULTemplateBuilder.h"
#include "nsIBoxObject.h"
#include "nsIXBLService.h"
-#include "nsICSSOMFactory.h"
#include "nsLayoutCID.h"
#include "nsAttrAndChildArray.h"
#include "nsGkAtoms.h"
#include "nsAutoPtr.h"
#include "nsGenericElement.h"
#include "nsDOMScriptObjectHolder.h"
#include "nsIFrameLoader.h"
@@ -485,23 +484,21 @@ public:
public:
static nsIXBLService* GetXBLService() {
if (!gXBLService)
CallGetService("@mozilla.org/xbl;1", &gXBLService);
return gXBLService;
}
static void ReleaseGlobals() {
NS_IF_RELEASE(gXBLService);
- NS_IF_RELEASE(gCSSOMFactory);
}
protected:
// pseudo-constants
static nsIXBLService* gXBLService;
- static nsICSSOMFactory* gCSSOMFactory;
public:
static nsresult
Create(nsXULPrototypeElement* aPrototype, nsIDocument* aDocument,
PRBool aIsScriptable, nsIContent** aResult);
// nsISupports
NS_DECL_ISUPPORTS_INHERITED
--- a/layout/build/nsLayoutModule.cpp
+++ b/layout/build/nsLayoutModule.cpp
@@ -38,17 +38,16 @@
#include "nsLayoutStatics.h"
#include "nsContentCID.h"
#include "nsContentDLF.h"
#include "nsContentPolicyUtils.h"
#include "nsDataDocumentContentPolicy.h"
#include "nsNoDataProtocolContentPolicy.h"
#include "nsDOMCID.h"
-#include "nsCSSOMFactory.h"
#include "nsInspectorCSSUtils.h"
#include "nsHTMLContentSerializer.h"
#include "nsHTMLParts.h"
#include "nsGenericHTMLElement.h"
#include "nsICSSLoader.h"
#include "nsICSSParser.h"
#include "nsICSSStyleSheet.h"
#include "nsICategoryManager.h"
@@ -517,17 +516,16 @@ MAKE_CTOR(CreateXULDocument,
// NS_NewXULPrototypeCache
MAKE_CTOR(CreateXULPopupManager, nsISupports, NS_NewXULPopupManager)
#endif
#ifdef MOZ_XTF
MAKE_CTOR(CreateXTFService, nsIXTFService, NS_NewXTFService)
MAKE_CTOR(CreateXMLContentBuilder, nsIXMLContentBuilder, NS_NewXMLContentBuilder)
#endif
MAKE_CTOR(CreateContentDLF, nsIDocumentLoaderFactory, NS_NewContentDocumentLoaderFactory)
-NS_GENERIC_FACTORY_CONSTRUCTOR(nsCSSOMFactory)
NS_GENERIC_FACTORY_CONSTRUCTOR(nsInspectorCSSUtils)
NS_GENERIC_FACTORY_CONSTRUCTOR(nsWyciwygProtocolHandler)
NS_GENERIC_FACTORY_CONSTRUCTOR(nsContentAreaDragDrop)
NS_GENERIC_FACTORY_CONSTRUCTOR(nsDataDocumentContentPolicy)
NS_GENERIC_FACTORY_CONSTRUCTOR(nsNoDataProtocolContentPolicy)
NS_GENERIC_FACTORY_CONSTRUCTOR(nsSyncLoadService)
MAKE_CTOR(CreatePluginDocument, nsIDocument, NS_NewPluginDocument)
#ifdef MOZ_MEDIA
@@ -990,21 +988,16 @@ static const nsModuleComponentInfo gComp
"@mozilla.org/content/pre-content-iterator;1",
CreatePreContentIterator },
{ "Subtree iterator",
NS_SUBTREEITERATOR_CID,
"@mozilla.org/content/subtree-content-iterator;1",
CreateSubtreeIterator },
- { "CSS Object Model Factory",
- NS_CSSOMFACTORY_CID,
- nsnull,
- nsCSSOMFactoryConstructor },
-
{ "Inspector CSS Utils",
NS_INSPECTORCSSUTILS_CID,
nsnull,
nsInspectorCSSUtilsConstructor },
// Needed to support "new Option;" and "new Image;" in JavaScript
{ "HTML img element",
NS_HTMLIMAGEELEMENT_CID,
--- a/layout/build/nsLayoutStatics.cpp
+++ b/layout/build/nsLayoutStatics.cpp
@@ -54,17 +54,16 @@
#include "nsCSSRendering.h"
#include "nsCSSScanner.h"
#include "nsICSSStyleSheet.h"
#include "nsDOMAttribute.h"
#include "nsDOMClassInfo.h"
#include "nsEventListenerManager.h"
#include "nsFrame.h"
#include "nsGenericElement.h" // for nsDOMEventRTTearoff
-#include "nsStyledElement.h"
#include "nsGlobalWindow.h"
#include "nsGkAtoms.h"
#include "nsImageFrame.h"
#include "nsLayoutStylesheetCache.h"
#include "nsNodeInfo.h"
#include "nsRange.h"
#include "nsRepeatService.h"
#include "nsFloatManager.h"
@@ -316,17 +315,16 @@ nsLayoutStatics::Shutdown()
nsCSSFrameConstructor::ReleaseGlobals();
nsFloatManager::Shutdown();
nsImageFrame::ReleaseGlobals();
nsCSSScanner::ReleaseGlobals();
NS_IF_RELEASE(nsRuleNode::gLangService);
- nsStyledElement::Shutdown();
nsTextFragment::Shutdown();
nsAttrValue::Shutdown();
nsContentUtils::Shutdown();
nsNodeInfo::ClearCache();
nsLayoutStylesheetCache::Shutdown();
NS_NameSpaceManagerShutdown();
--- a/layout/style/Makefile.in
+++ b/layout/style/Makefile.in
@@ -86,24 +86,24 @@ EXPORTS = \
nsCSSPseudoClassList.h \
nsCSSPseudoClasses.h \
nsCSSPseudoElementList.h \
nsCSSPseudoElements.h \
nsCSSRuleProcessor.h \
nsCSSStyleSheet.h \
nsCSSStruct.h \
nsCSSValue.h \
+ nsDOMCSSAttrDeclaration.h \
nsDOMCSSDeclaration.h \
nsICSSDeclaration.h \
nsICSSGroupRule.h \
nsICSSImportRule.h \
nsICSSLoader.h \
nsICSSLoaderObserver.h \
nsICSSNameSpaceRule.h \
- nsICSSOMFactory.h \
nsICSSParser.h \
nsICSSPseudoComparator.h \
nsICSSRule.h \
nsICSSRuleList.h \
nsICSSStyleRule.h \
nsICSSStyleRuleDOMWrapper.h \
nsICSSStyleSheet.h \
nsIComputedDOMStyle.h \
@@ -128,17 +128,16 @@ EXPORTS = \
$(NULL)
CPPSRCS = \
nsCSSAnonBoxes.cpp \
nsCSSDataBlock.cpp \
nsCSSDeclaration.cpp \
nsCSSKeywords.cpp \
nsCSSLoader.cpp \
- nsCSSOMFactory.cpp \
nsCSSParser.cpp \
nsCSSProps.cpp \
nsCSSPseudoClasses.cpp \
nsCSSPseudoElements.cpp \
nsCSSRule.cpp \
nsCSSRuleProcessor.cpp \
nsCSSRules.cpp \
nsCSSScanner.cpp \
deleted file mode 100644
--- a/layout/style/nsCSSOMFactory.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-// vim:cindent:ts=8:et:sw=4:
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 2001
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * L. David Baron <dbaron@dbaron.org> (original author)
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-/* an XPCOM service for cross-module creation of DOM .style objects */
-
-#include "nsCSSOMFactory.h"
-#include "nsDOMCSSAttrDeclaration.h"
-
-nsCSSOMFactory::nsCSSOMFactory()
-{
-}
-
-nsCSSOMFactory::~nsCSSOMFactory()
-{
-}
-
-NS_IMPL_ISUPPORTS1(nsCSSOMFactory, nsICSSOMFactory)
-
-NS_IMETHODIMP
-nsCSSOMFactory::CreateDOMCSSAttributeDeclaration(nsIContent *aContent,
- nsDOMCSSDeclaration **aResult)
-{
- nsDOMCSSDeclaration *result = new nsDOMCSSAttributeDeclaration(aContent);
- if (!result) {
- *aResult = 0;
- return NS_ERROR_OUT_OF_MEMORY;
- }
- NS_ADDREF(result);
- *aResult = result;
- return NS_OK;
-}
deleted file mode 100644
--- a/layout/style/nsCSSOMFactory.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-// vim:cindent:ts=8:et:sw=4:
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 2001
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * L. David Baron <dbaron@dbaron.org> (original author)
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-/* an XPCOM service for cross-module creation of DOM .style objects */
-
-#ifndef nsCSSOMFactory_h___
-#define nsCSSOMFactory_h___
-
-#include "nsICSSOMFactory.h"
-
-class nsCSSOMFactory : public nsICSSOMFactory {
-
-public:
-
- nsCSSOMFactory();
- virtual ~nsCSSOMFactory();
-
- NS_DECL_ISUPPORTS
-
- NS_IMETHOD CreateDOMCSSAttributeDeclaration(nsIContent *aContent,
- nsDOMCSSDeclaration **aResult);
-
-};
-
-#endif /* nsCSSOMFactory_h___ */
deleted file mode 100644
--- a/layout/style/nsICSSOMFactory.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-// vim:cindent:ts=8:et:sw=4:
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 2001
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * L. David Baron <dbaron@dbaron.org> (original author)
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-/* an XPCOM service for cross-module creation of DOM .style objects */
-
-#ifndef nsICSSOMFactory_h___
-#define nsICSSOMFactory_h___
-
-#include "nsISupports.h"
-class nsDOMCSSDeclaration;
-class nsIContent;
-
-// f2fb43bf-81a1-4b0d-907a-893fe6727dbb
-#define NS_ICSSOMFACTORY_IID \
- { 0xf2fb43bf, 0x81a1, 0x4b0d, \
- { 0x90, 0x7a, 0x89, 0x3f, 0xe6, 0x72, 0x7d, 0xbb } }
-
-// 5fcaa2c1-7ca4-4f73-a357-93e79d709376
-#define NS_CSSOMFACTORY_CID \
- { 0x5fcaa2c1, 0x7ca4, 0x4f73, \
- {0xa3, 0x57, 0x93, 0xe7, 0x9d, 0x70, 0x93, 0x76 } }
-
-class nsICSSOMFactory : public nsISupports {
-public:
- NS_DECLARE_STATIC_IID_ACCESSOR(NS_ICSSOMFACTORY_IID)
-
- NS_IMETHOD CreateDOMCSSAttributeDeclaration(nsIContent *aContent,
- nsDOMCSSDeclaration **aResult) = 0;
-};
-
-NS_DEFINE_STATIC_IID_ACCESSOR(nsICSSOMFactory, NS_ICSSOMFACTORY_IID)
-
-#endif /* nsICSSOMFactory_h___ */