Loading content/base/public/nsIDocument.h +8 −3 Original line number Diff line number Diff line Loading @@ -435,10 +435,11 @@ public: virtual void EnsureCatalogStyleSheet(const char *aStyleSheetURI) = 0; /** * Get this document's CSSLoader. May return null in error * conditions (OOM) * Get this document's CSSLoader. This is guaranteed to not return null. */ virtual nsICSSLoader* GetCSSLoader() = 0; nsICSSLoader* CSSLoader() const { return mCSSLoader; } /** * Get this document's attribute stylesheet. May return null if Loading Loading @@ -698,6 +699,10 @@ protected: nsCOMPtr<nsIBindingManager> mBindingManager; nsNodeInfoManager* mNodeInfoManager; // [STRONG] nsICSSLoader* mCSSLoader; // [STRONG; not a COMPtr to avoid // including nsICSSLoader.h; the ownership // is managed by nsDocument] // Table of element properties for this document. nsPropertyTable mPropertyTable; Loading content/base/src/nsContentSink.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -181,7 +181,7 @@ nsContentSink::Init(nsIDocument* aDoc, nsresult rv = loader->AddObserver(proxy); NS_ENSURE_SUCCESS(rv, rv); mCSSLoader = aDoc->GetCSSLoader(); mCSSLoader = aDoc->CSSLoader(); ProcessHTTPHeaders(aChannel); Loading content/base/src/nsDocument.cpp +15 −19 Original line number Diff line number Diff line Loading @@ -586,7 +586,9 @@ nsDocument::~nsDocument() } if (mCSSLoader) { // Could be null here if Init() failed mCSSLoader->DropDocumentReference(); NS_RELEASE(mCSSLoader); } // XXX Ideally we'd do this cleanup in the nsIDocument destructor. Loading Loading @@ -666,6 +668,10 @@ NS_IMPL_RELEASE(nsDocument) nsresult nsDocument::Init() { if (mBindingManager || mCSSLoader || mNodeInfoManager) { return NS_ERROR_ALREADY_INITIALIZED; } // Force initialization. nsBindingManager *bindingManager = new nsBindingManager(); NS_ENSURE_TRUE(bindingManager, NS_ERROR_OUT_OF_MEMORY); Loading @@ -675,9 +681,11 @@ nsDocument::Init() // (static cast to the correct interface pointer) mObservers.InsertElementAt(NS_STATIC_CAST(nsIDocumentObserver*, bindingManager), 0); if (mNodeInfoManager) { return NS_ERROR_ALREADY_INITIALIZED; } NS_NewCSSLoader(this, &mCSSLoader); NS_ENSURE_TRUE(mCSSLoader, NS_ERROR_OUT_OF_MEMORY); // Assume we're not HTML and not quirky, until we know otherwise mCSSLoader->SetCaseSensitive(PR_TRUE); mCSSLoader->SetCompatibilityMode(eCompatibility_FullStandards); mNodeInfoManager = new nsNodeInfoManager(); NS_ENSURE_TRUE(mNodeInfoManager, NS_ERROR_OUT_OF_MEMORY); Loading Loading @@ -1221,14 +1229,7 @@ nsDocument::SetHeaderData(nsIAtom* aHeaderField, const nsAString& aData) nsAutoString title; PRInt32 index; // We lazily create our CSSLoader. // XXXbz why? Wouldn't it make more sense to just create it at // document creation and not do all these null-checks all over? nsICSSLoader* cssLoader = GetCSSLoader(); if (!cssLoader) { return; } cssLoader->SetPreferredSheet(aData); CSSLoader()->SetPreferredSheet(aData); PRInt32 count = mStyleSheets.Count(); for (index = 0; index < count; index++) { Loading Loading @@ -1793,9 +1794,9 @@ nsDocument::AddCatalogStyleSheet(nsIStyleSheet* aSheet) void nsDocument::EnsureCatalogStyleSheet(const char *aStyleSheetURI) { nsICSSLoader* cssLoader = GetCSSLoader(); nsICSSLoader* cssLoader = CSSLoader(); PRBool enabled; if (cssLoader && NS_SUCCEEDED(cssLoader->GetEnabled(&enabled)) && enabled) { if (NS_SUCCEEDED(cssLoader->GetEnabled(&enabled)) && enabled) { PRInt32 sheetCount = GetNumberOfCatalogStyleSheets(); for (PRInt32 i = 0; i < sheetCount; i++) { nsIStyleSheet* sheet = GetCatalogStyleSheetAt(i); Loading Loading @@ -2622,12 +2623,7 @@ nsDocument::GetStyleSheets(nsIDOMStyleSheetList** aStyleSheets) NS_IMETHODIMP nsDocument::GetPreferredStylesheetSet(nsAString& aStyleTitle) { if (mCSSLoader) { mCSSLoader->GetPreferredSheet(aStyleTitle); } else { aStyleTitle.Truncate(); } CSSLoader()->GetPreferredSheet(aStyleTitle); return NS_OK; } Loading content/base/src/nsDocument.h +0 −1 Original line number Diff line number Diff line Loading @@ -594,7 +594,6 @@ protected: nsSupportsHashtable* mBoxObjectTable; nsCOMPtr<nsICSSLoader> mCSSLoader; nsRefPtr<nsHTMLStyleSheet> mAttrStyleSheet; nsCOMPtr<nsIHTMLCSSStyleSheet> mStyleAttrStyleSheet; nsRefPtr<nsXMLEventsManager> mXMLEventsManager; Loading content/base/src/nsStyleLinkElement.cpp +8 −12 Original line number Diff line number Diff line Loading @@ -261,12 +261,6 @@ nsStyleLinkElement::UpdateStyleSheet(nsIDocument *aOldDocument, return NS_OK; } nsICSSLoader* loader = doc->GetCSSLoader(); if (!loader) { return NS_OK; } PRBool blockParser = kBlockByDefault; if (isAlternate) { blockParser = PR_FALSE; Loading Loading @@ -325,12 +319,14 @@ nsStyleLinkElement::UpdateStyleSheet(nsIDocument *aOldDocument, // Now that we have a url and a unicode input stream, parse the // style sheet. rv = loader->LoadInlineStyle(thisContent, uin, mLineNumber, title, media, rv = doc->CSSLoader()-> LoadInlineStyle(thisContent, uin, mLineNumber, title, media, ((blockParser) ? parser.get() : nsnull), doneLoading, aObserver); } else { rv = loader->LoadStyleLink(thisContent, uri, title, media, rv = doc->CSSLoader()-> LoadStyleLink(thisContent, uri, title, media, ((blockParser) ? parser.get() : nsnull), doneLoading, aObserver); } Loading Loading
content/base/public/nsIDocument.h +8 −3 Original line number Diff line number Diff line Loading @@ -435,10 +435,11 @@ public: virtual void EnsureCatalogStyleSheet(const char *aStyleSheetURI) = 0; /** * Get this document's CSSLoader. May return null in error * conditions (OOM) * Get this document's CSSLoader. This is guaranteed to not return null. */ virtual nsICSSLoader* GetCSSLoader() = 0; nsICSSLoader* CSSLoader() const { return mCSSLoader; } /** * Get this document's attribute stylesheet. May return null if Loading Loading @@ -698,6 +699,10 @@ protected: nsCOMPtr<nsIBindingManager> mBindingManager; nsNodeInfoManager* mNodeInfoManager; // [STRONG] nsICSSLoader* mCSSLoader; // [STRONG; not a COMPtr to avoid // including nsICSSLoader.h; the ownership // is managed by nsDocument] // Table of element properties for this document. nsPropertyTable mPropertyTable; Loading
content/base/src/nsContentSink.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -181,7 +181,7 @@ nsContentSink::Init(nsIDocument* aDoc, nsresult rv = loader->AddObserver(proxy); NS_ENSURE_SUCCESS(rv, rv); mCSSLoader = aDoc->GetCSSLoader(); mCSSLoader = aDoc->CSSLoader(); ProcessHTTPHeaders(aChannel); Loading
content/base/src/nsDocument.cpp +15 −19 Original line number Diff line number Diff line Loading @@ -586,7 +586,9 @@ nsDocument::~nsDocument() } if (mCSSLoader) { // Could be null here if Init() failed mCSSLoader->DropDocumentReference(); NS_RELEASE(mCSSLoader); } // XXX Ideally we'd do this cleanup in the nsIDocument destructor. Loading Loading @@ -666,6 +668,10 @@ NS_IMPL_RELEASE(nsDocument) nsresult nsDocument::Init() { if (mBindingManager || mCSSLoader || mNodeInfoManager) { return NS_ERROR_ALREADY_INITIALIZED; } // Force initialization. nsBindingManager *bindingManager = new nsBindingManager(); NS_ENSURE_TRUE(bindingManager, NS_ERROR_OUT_OF_MEMORY); Loading @@ -675,9 +681,11 @@ nsDocument::Init() // (static cast to the correct interface pointer) mObservers.InsertElementAt(NS_STATIC_CAST(nsIDocumentObserver*, bindingManager), 0); if (mNodeInfoManager) { return NS_ERROR_ALREADY_INITIALIZED; } NS_NewCSSLoader(this, &mCSSLoader); NS_ENSURE_TRUE(mCSSLoader, NS_ERROR_OUT_OF_MEMORY); // Assume we're not HTML and not quirky, until we know otherwise mCSSLoader->SetCaseSensitive(PR_TRUE); mCSSLoader->SetCompatibilityMode(eCompatibility_FullStandards); mNodeInfoManager = new nsNodeInfoManager(); NS_ENSURE_TRUE(mNodeInfoManager, NS_ERROR_OUT_OF_MEMORY); Loading Loading @@ -1221,14 +1229,7 @@ nsDocument::SetHeaderData(nsIAtom* aHeaderField, const nsAString& aData) nsAutoString title; PRInt32 index; // We lazily create our CSSLoader. // XXXbz why? Wouldn't it make more sense to just create it at // document creation and not do all these null-checks all over? nsICSSLoader* cssLoader = GetCSSLoader(); if (!cssLoader) { return; } cssLoader->SetPreferredSheet(aData); CSSLoader()->SetPreferredSheet(aData); PRInt32 count = mStyleSheets.Count(); for (index = 0; index < count; index++) { Loading Loading @@ -1793,9 +1794,9 @@ nsDocument::AddCatalogStyleSheet(nsIStyleSheet* aSheet) void nsDocument::EnsureCatalogStyleSheet(const char *aStyleSheetURI) { nsICSSLoader* cssLoader = GetCSSLoader(); nsICSSLoader* cssLoader = CSSLoader(); PRBool enabled; if (cssLoader && NS_SUCCEEDED(cssLoader->GetEnabled(&enabled)) && enabled) { if (NS_SUCCEEDED(cssLoader->GetEnabled(&enabled)) && enabled) { PRInt32 sheetCount = GetNumberOfCatalogStyleSheets(); for (PRInt32 i = 0; i < sheetCount; i++) { nsIStyleSheet* sheet = GetCatalogStyleSheetAt(i); Loading Loading @@ -2622,12 +2623,7 @@ nsDocument::GetStyleSheets(nsIDOMStyleSheetList** aStyleSheets) NS_IMETHODIMP nsDocument::GetPreferredStylesheetSet(nsAString& aStyleTitle) { if (mCSSLoader) { mCSSLoader->GetPreferredSheet(aStyleTitle); } else { aStyleTitle.Truncate(); } CSSLoader()->GetPreferredSheet(aStyleTitle); return NS_OK; } Loading
content/base/src/nsDocument.h +0 −1 Original line number Diff line number Diff line Loading @@ -594,7 +594,6 @@ protected: nsSupportsHashtable* mBoxObjectTable; nsCOMPtr<nsICSSLoader> mCSSLoader; nsRefPtr<nsHTMLStyleSheet> mAttrStyleSheet; nsCOMPtr<nsIHTMLCSSStyleSheet> mStyleAttrStyleSheet; nsRefPtr<nsXMLEventsManager> mXMLEventsManager; Loading
content/base/src/nsStyleLinkElement.cpp +8 −12 Original line number Diff line number Diff line Loading @@ -261,12 +261,6 @@ nsStyleLinkElement::UpdateStyleSheet(nsIDocument *aOldDocument, return NS_OK; } nsICSSLoader* loader = doc->GetCSSLoader(); if (!loader) { return NS_OK; } PRBool blockParser = kBlockByDefault; if (isAlternate) { blockParser = PR_FALSE; Loading Loading @@ -325,12 +319,14 @@ nsStyleLinkElement::UpdateStyleSheet(nsIDocument *aOldDocument, // Now that we have a url and a unicode input stream, parse the // style sheet. rv = loader->LoadInlineStyle(thisContent, uin, mLineNumber, title, media, rv = doc->CSSLoader()-> LoadInlineStyle(thisContent, uin, mLineNumber, title, media, ((blockParser) ? parser.get() : nsnull), doneLoading, aObserver); } else { rv = loader->LoadStyleLink(thisContent, uri, title, media, rv = doc->CSSLoader()-> LoadStyleLink(thisContent, uri, title, media, ((blockParser) ? parser.get() : nsnull), doneLoading, aObserver); } Loading