зеркало из https://github.com/mozilla/pjs.git
Null-check document to fix crash, and a little other cleanup. b=258843 r+sr=bzbarsky
This commit is contained in:
Родитель
fb39000eeb
Коммит
f94ed4c91a
|
@ -114,7 +114,6 @@ nsDOMCSSAttributeDeclaration::GetCSSDeclaration(nsCSSDeclaration **aDecl,
|
||||||
return NS_ERROR_OUT_OF_MEMORY;
|
return NS_ERROR_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsCOMPtr<nsICSSStyleRule> cssRule;
|
|
||||||
result = NS_NewCSSStyleRule(getter_AddRefs(cssRule), nsnull, decl);
|
result = NS_NewCSSStyleRule(getter_AddRefs(cssRule), nsnull, decl);
|
||||||
if (NS_FAILED(result)) {
|
if (NS_FAILED(result)) {
|
||||||
decl->RuleAbort();
|
decl->RuleAbort();
|
||||||
|
@ -149,10 +148,11 @@ nsDOMCSSAttributeDeclaration::GetCSSParsingEnvironment(nsIURI** aSheetURI,
|
||||||
*aCSSLoader = nsnull;
|
*aCSSLoader = nsnull;
|
||||||
*aCSSParser = nsnull;
|
*aCSSParser = nsnull;
|
||||||
|
|
||||||
nsINodeInfo *nodeInfo = mContent->GetNodeInfo();
|
nsIDocument* doc = mContent->GetOwnerDoc();
|
||||||
|
if (!doc) {
|
||||||
// XXXbz GetOwnerDocument
|
// document has been destroyed
|
||||||
nsIDocument* doc = nsContentUtils::GetDocument(nodeInfo);
|
return NS_ERROR_NOT_AVAILABLE;
|
||||||
|
}
|
||||||
|
|
||||||
nsCOMPtr<nsIURI> baseURI = mContent->GetBaseURI();
|
nsCOMPtr<nsIURI> baseURI = mContent->GetBaseURI();
|
||||||
nsCOMPtr<nsIURI> sheetURI = doc->GetDocumentURI();
|
nsCOMPtr<nsIURI> sheetURI = doc->GetDocumentURI();
|
||||||
|
@ -177,7 +177,7 @@ nsDOMCSSAttributeDeclaration::GetCSSParsingEnvironment(nsIURI** aSheetURI,
|
||||||
// namespace. If we're XHTML, we need to be case-sensitive Otherwise, we
|
// namespace. If we're XHTML, we need to be case-sensitive Otherwise, we
|
||||||
// should not be
|
// should not be
|
||||||
(*aCSSParser)->SetCaseSensitive(!mContent->IsContentOfType(nsIContent::eHTML) ||
|
(*aCSSParser)->SetCaseSensitive(!mContent->IsContentOfType(nsIContent::eHTML) ||
|
||||||
nodeInfo->NamespaceEquals(kNameSpaceID_XHTML));
|
mContent->GetNodeInfo()->NamespaceEquals(kNameSpaceID_XHTML));
|
||||||
|
|
||||||
baseURI.swap(*aBaseURI);
|
baseURI.swap(*aBaseURI);
|
||||||
sheetURI.swap(*aSheetURI);
|
sheetURI.swap(*aSheetURI);
|
||||||
|
|
|
@ -114,7 +114,6 @@ nsDOMCSSAttributeDeclaration::GetCSSDeclaration(nsCSSDeclaration **aDecl,
|
||||||
return NS_ERROR_OUT_OF_MEMORY;
|
return NS_ERROR_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsCOMPtr<nsICSSStyleRule> cssRule;
|
|
||||||
result = NS_NewCSSStyleRule(getter_AddRefs(cssRule), nsnull, decl);
|
result = NS_NewCSSStyleRule(getter_AddRefs(cssRule), nsnull, decl);
|
||||||
if (NS_FAILED(result)) {
|
if (NS_FAILED(result)) {
|
||||||
decl->RuleAbort();
|
decl->RuleAbort();
|
||||||
|
@ -149,10 +148,11 @@ nsDOMCSSAttributeDeclaration::GetCSSParsingEnvironment(nsIURI** aSheetURI,
|
||||||
*aCSSLoader = nsnull;
|
*aCSSLoader = nsnull;
|
||||||
*aCSSParser = nsnull;
|
*aCSSParser = nsnull;
|
||||||
|
|
||||||
nsINodeInfo *nodeInfo = mContent->GetNodeInfo();
|
nsIDocument* doc = mContent->GetOwnerDoc();
|
||||||
|
if (!doc) {
|
||||||
// XXXbz GetOwnerDocument
|
// document has been destroyed
|
||||||
nsIDocument* doc = nsContentUtils::GetDocument(nodeInfo);
|
return NS_ERROR_NOT_AVAILABLE;
|
||||||
|
}
|
||||||
|
|
||||||
nsCOMPtr<nsIURI> baseURI = mContent->GetBaseURI();
|
nsCOMPtr<nsIURI> baseURI = mContent->GetBaseURI();
|
||||||
nsCOMPtr<nsIURI> sheetURI = doc->GetDocumentURI();
|
nsCOMPtr<nsIURI> sheetURI = doc->GetDocumentURI();
|
||||||
|
@ -177,7 +177,7 @@ nsDOMCSSAttributeDeclaration::GetCSSParsingEnvironment(nsIURI** aSheetURI,
|
||||||
// namespace. If we're XHTML, we need to be case-sensitive Otherwise, we
|
// namespace. If we're XHTML, we need to be case-sensitive Otherwise, we
|
||||||
// should not be
|
// should not be
|
||||||
(*aCSSParser)->SetCaseSensitive(!mContent->IsContentOfType(nsIContent::eHTML) ||
|
(*aCSSParser)->SetCaseSensitive(!mContent->IsContentOfType(nsIContent::eHTML) ||
|
||||||
nodeInfo->NamespaceEquals(kNameSpaceID_XHTML));
|
mContent->GetNodeInfo()->NamespaceEquals(kNameSpaceID_XHTML));
|
||||||
|
|
||||||
baseURI.swap(*aBaseURI);
|
baseURI.swap(*aBaseURI);
|
||||||
sheetURI.swap(*aSheetURI);
|
sheetURI.swap(*aSheetURI);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче