diff --git a/accessible/src/html/nsHTMLImageAccessible.cpp b/accessible/src/html/nsHTMLImageAccessible.cpp index b4a82be04171..0d073d0508c4 100644 --- a/accessible/src/html/nsHTMLImageAccessible.cpp +++ b/accessible/src/html/nsHTMLImageAccessible.cpp @@ -68,7 +68,7 @@ nsLinkableAccessible(aDOMNode, aShell) if (htmlDoc && !mapElementName.IsEmpty()) { if (mapElementName.CharAt(0) == '#') mapElementName.Cut(0,1); - htmlDoc->GetImageMap(mapElementName, getter_AddRefs(mMapElement)); + mMapElement = htmlDoc->GetImageMap(mapElementName); } } } diff --git a/content/base/src/nsContentUtils.cpp b/content/base/src/nsContentUtils.cpp index d96b8c16c0de..cd569afa7afa 100644 --- a/content/base/src/nsContentUtils.cpp +++ b/content/base/src/nsContentUtils.cpp @@ -1409,8 +1409,10 @@ nsContentUtils::GenerateStateKey(nsIContent* aContent, domHtmlDocument->GetForms(getter_AddRefs(forms)); nsCOMPtr<nsIContentList> htmlForms(do_QueryInterface(forms)); - nsCOMPtr<nsIDOMNodeList> formControls; - htmlDocument->GetFormControlElements(getter_AddRefs(formControls)); + nsCOMPtr<nsIDOMNodeList> formControls = + htmlDocument->GetFormControlElements(); + NS_ENSURE_TRUE(formControls, NS_ERROR_OUT_OF_MEMORY); + nsCOMPtr<nsIContentList> htmlFormControls(do_QueryInterface(formControls)); // If we have a form control and can calculate form information, use @@ -1452,8 +1454,7 @@ nsContentUtils::GenerateStateKey(nsIContent* aContent, // guess that the highest form parsed so far is the one. // This code should not be on trunk, only branch. // - htmlDocument->GetNumFormsSynchronous(&index); - index--; + index = htmlDocument->GetNumFormsSynchronous() - 1; } if (index > -1) { KeyAppendInt(index, aKey); diff --git a/content/base/src/nsHTMLValue.cpp b/content/base/src/nsHTMLValue.cpp index 37c980fe9a3e..a2e759112745 100644 --- a/content/base/src/nsHTMLValue.cpp +++ b/content/base/src/nsHTMLValue.cpp @@ -544,9 +544,7 @@ nsHTMLValue::ParseColor(const nsAString& aString, nsIDocument* aDocument) { nsCOMPtr<nsIHTMLDocument> doc(do_QueryInterface(aDocument)); if (doc) { - nsCompatibility mode; - doc->GetCompatibilityMode(mode); - inNavQuirksMode = (mode == eCompatibility_NavQuirks); + inNavQuirksMode = (doc->GetCompatibilityMode() == eCompatibility_NavQuirks); } else { inNavQuirksMode = PR_FALSE; } diff --git a/content/base/src/nsRange.cpp b/content/base/src/nsRange.cpp index 56891d05a8a9..caeb51585e10 100644 --- a/content/base/src/nsRange.cpp +++ b/content/base/src/nsRange.cpp @@ -2513,9 +2513,7 @@ nsRange::CreateContextualFragment(const nsAString& aFragment, nsDTDMode mode = eDTDMode_autodetect; nsCOMPtr<nsIHTMLDocument> htmlDoc(do_QueryInterface(domDocument)); if (htmlDoc) { - nsCompatibility compatMode; - htmlDoc->GetCompatibilityMode(compatMode); - switch (compatMode) { + switch (htmlDoc->GetCompatibilityMode()) { case eCompatibility_NavQuirks: mode = eDTDMode_quirks; break; diff --git a/content/html/content/src/nsGenericHTMLElement.cpp b/content/html/content/src/nsGenericHTMLElement.cpp index 39b9eeaf2019..4347426b4abd 100644 --- a/content/html/content/src/nsGenericHTMLElement.cpp +++ b/content/html/content/src/nsGenericHTMLElement.cpp @@ -1249,9 +1249,7 @@ nsGenericHTMLElement::InNavQuirksMode(nsIDocument* aDoc) return PR_FALSE; } - nsCompatibility mode; - doc->GetCompatibilityMode(mode); - return mode == eCompatibility_NavQuirks; + return doc->GetCompatibilityMode() == eCompatibility_NavQuirks; } void diff --git a/content/html/content/src/nsHTMLFrameSetElement.cpp b/content/html/content/src/nsHTMLFrameSetElement.cpp index 54270b63b9a2..e3888f8ca4ff 100644 --- a/content/html/content/src/nsHTMLFrameSetElement.cpp +++ b/content/html/content/src/nsHTMLFrameSetElement.cpp @@ -503,7 +503,7 @@ nsHTMLFrameSetElement::ParseRowColSpec(nsString& aSpec, nsCOMPtr<nsIHTMLDocument> htmlDocument = do_QueryInterface(nsGenericHTMLContainerElement::GetOwnerDocument()); if (htmlDocument) { - htmlDocument->GetCompatibilityMode(mode); + mode = htmlDocument->GetCompatibilityMode(); } if (eCompatibility_NavQuirks == mode) { diff --git a/content/html/content/src/nsImageMapUtils.cpp b/content/html/content/src/nsImageMapUtils.cpp index 553b68a05e42..2e66aca83713 100644 --- a/content/html/content/src/nsImageMapUtils.cpp +++ b/content/html/content/src/nsImageMapUtils.cpp @@ -81,7 +81,8 @@ nsresult nsImageMapUtils::FindImageMap(nsIDocument *aDocument, nsCOMPtr<nsIHTMLDocument> htmlDoc(do_QueryInterface(aDocument)); if (htmlDoc) { - htmlDoc->GetImageMap(usemap, aMap); + *aMap = htmlDoc->GetImageMap(usemap); + NS_IF_ADDREF(*aMap); } else { // For XHTML elements embedded in non-XHTML documents we get the // map by id since XHTML requires that where a "name" attribute diff --git a/content/html/document/src/nsHTMLDocument.cpp b/content/html/document/src/nsHTMLDocument.cpp index b241b26e2621..0bed9ab5fb0c 100644 --- a/content/html/document/src/nsHTMLDocument.cpp +++ b/content/html/document/src/nsHTMLDocument.cpp @@ -1033,7 +1033,7 @@ nsHTMLDocument::SetTitle(const nsAString& aTitle) return nsDocument::SetTitle(aTitle); } -NS_IMETHODIMP +nsresult nsHTMLDocument::AddImageMap(nsIDOMHTMLMapElement* aMap) { // XXX We should order the maps based on their order in the document. @@ -1049,33 +1049,21 @@ nsHTMLDocument::AddImageMap(nsIDOMHTMLMapElement* aMap) return NS_ERROR_OUT_OF_MEMORY; } -NS_IMETHODIMP +void nsHTMLDocument::RemoveImageMap(nsIDOMHTMLMapElement* aMap) { NS_PRECONDITION(nsnull != aMap, "null ptr"); - if (nsnull == aMap) { - return NS_ERROR_NULL_POINTER; - } mImageMaps.RemoveObject(aMap); - return NS_OK; } -NS_IMETHODIMP -nsHTMLDocument::GetImageMap(const nsAString& aMapName, - nsIDOMHTMLMapElement** aResult) +nsIDOMHTMLMapElement * +nsHTMLDocument::GetImageMap(const nsAString& aMapName) { - NS_PRECONDITION(nsnull != aResult, "null ptr"); - if (nsnull == aResult) { - return NS_ERROR_NULL_POINTER; - } - - *aResult = nsnull; - nsAutoString name; PRUint32 i, n = mImageMaps.Count(); for (i = 0; i < n; ++i) { - nsCOMPtr<nsIDOMHTMLMapElement> map = mImageMaps[i]; + nsIDOMHTMLMapElement *map = mImageMaps[i]; NS_ASSERTION(map, "Null map in map list!"); PRBool match; @@ -1091,16 +1079,12 @@ nsHTMLDocument::GetImageMap(const nsAString& aMapName, match = name.Equals(aMapName, nsCaseInsensitiveStringComparator()); } - NS_ENSURE_SUCCESS(rv, rv); - - if (match) { - *aResult = map; - NS_ADDREF(*aResult); - return NS_OK; + if (match && NS_SUCCEEDED(rv)) { + return map; } } - return NS_OK; + return nsnull; } // subclass hooks for sheet ordering @@ -1190,14 +1174,13 @@ nsHTMLDocument::GetCSSLoader() } -NS_IMETHODIMP -nsHTMLDocument::GetCompatibilityMode(nsCompatibility& aMode) +nsCompatibility +nsHTMLDocument::GetCompatibilityMode() { - aMode = mCompatMode; - return NS_OK; + return mCompatMode; } -NS_IMETHODIMP +void nsHTMLDocument::SetCompatibilityMode(nsCompatibility aMode) { NS_ASSERTION(!IsXHTML() || aMode == eCompatibility_FullStandards, @@ -1215,8 +1198,6 @@ nsHTMLDocument::SetCompatibilityMode(nsCompatibility aMode) pc->SetCompatibilityMode(mCompatMode); } } - - return NS_OK; } void @@ -1875,12 +1856,10 @@ nsHTMLDocument::SetDomain(const nsAString& aDomain) return rv; } -NS_IMETHODIMP -nsHTMLDocument::WasDomainSet(PRBool* aDomainWasSet) +PRBool +nsHTMLDocument::WasDomainSet() { - NS_ENSURE_ARG_POINTER(aDomainWasSet); - *aDomainWasSet = mDomainWasSet; - return NS_OK; + return mDomainWasSet; } NS_IMETHODIMP @@ -2682,25 +2661,22 @@ nsHTMLDocument::GetElementsByName(const nsAString& aElementName, return NS_OK; } -NS_IMETHODIMP +void nsHTMLDocument::AddedForm() { ++mNumForms; - return NS_OK; } -NS_IMETHODIMP +void nsHTMLDocument::RemovedForm() { --mNumForms; - return NS_OK; } -NS_IMETHODIMP -nsHTMLDocument::GetNumFormsSynchronous(PRInt32* aNumForms) +PRInt32 +nsHTMLDocument::GetNumFormsSynchronous() { - *aNumForms = mNumForms; - return NS_OK; + return mNumForms; } PRBool @@ -2709,17 +2685,14 @@ nsHTMLDocument::MatchFormControls(nsIContent* aContent, nsString* aData) return aContent->IsContentOfType(nsIContent::eHTML_FORM_CONTROL); } -NS_IMETHODIMP -nsHTMLDocument::GetFormControlElements(nsIDOMNodeList** aReturn) +already_AddRefed<nsIDOMNodeList> +nsHTMLDocument::GetFormControlElements() { - nsContentList* elements = nsnull; - elements = new nsContentList(this, MatchFormControls, nsString()); - NS_ENSURE_TRUE(elements, NS_ERROR_OUT_OF_MEMORY); + nsIDOMNodeList *list = new nsContentList(this, MatchFormControls, + EmptyString()); + NS_IF_ADDREF(list); - *aReturn = elements; - NS_ADDREF(*aReturn); - - return NS_OK; + return list; } nsresult @@ -3457,7 +3430,7 @@ FindNamedItems(const nsAString& aName, nsIContent *aContent, } } -NS_IMETHODIMP +nsresult nsHTMLDocument::ResolveName(const nsAString& aName, nsIDOMHTMLFormElement *aForm, nsISupports **aResult) diff --git a/content/html/document/src/nsHTMLDocument.h b/content/html/document/src/nsHTMLDocument.h index de19ae157587..9eb4ca6d983d 100644 --- a/content/html/document/src/nsHTMLDocument.h +++ b/content/html/document/src/nsHTMLDocument.h @@ -104,19 +104,18 @@ public: virtual void EndLoad(); - NS_IMETHOD AddImageMap(nsIDOMHTMLMapElement* aMap); + virtual nsresult AddImageMap(nsIDOMHTMLMapElement* aMap); - NS_IMETHOD RemoveImageMap(nsIDOMHTMLMapElement* aMap); + virtual void RemoveImageMap(nsIDOMHTMLMapElement* aMap); - NS_IMETHOD GetImageMap(const nsAString& aMapName, - nsIDOMHTMLMapElement** aResult); + virtual nsIDOMHTMLMapElement *GetImageMap(const nsAString& aMapName); virtual nsICSSLoader* GetCSSLoader(); - NS_IMETHOD GetCompatibilityMode(nsCompatibility& aMode); - NS_IMETHOD SetCompatibilityMode(nsCompatibility aMode); + virtual nsCompatibility GetCompatibilityMode(); + virtual void SetCompatibilityMode(nsCompatibility aMode); - NS_IMETHOD_(PRBool) IsWriting() + virtual PRBool IsWriting() { return mWriteLevel != PRUint32(0); } @@ -189,16 +188,16 @@ public: /* * Returns true if document.domain was set for this document */ - NS_IMETHOD WasDomainSet(PRBool* aDomainWasSet); + virtual PRBool WasDomainSet(); - NS_IMETHOD ResolveName(const nsAString& aName, + virtual nsresult ResolveName(const nsAString& aName, nsIDOMHTMLFormElement *aForm, nsISupports **aResult); - NS_IMETHOD GetFormControlElements(nsIDOMNodeList** aReturn); - NS_IMETHOD AddedForm(); - NS_IMETHOD RemovedForm(); - NS_IMETHOD GetNumFormsSynchronous(PRInt32* aNumForms); + virtual already_AddRefed<nsIDOMNodeList> GetFormControlElements(); + virtual void AddedForm(); + virtual void RemovedForm(); + virtual PRInt32 GetNumFormsSynchronous(); PRBool IsXHTML() { diff --git a/content/html/document/src/nsIHTMLDocument.h b/content/html/document/src/nsIHTMLDocument.h index b7cf6a546586..b681a16f56d9 100644 --- a/content/html/document/src/nsIHTMLDocument.h +++ b/content/html/document/src/nsIHTMLDocument.h @@ -61,50 +61,55 @@ class nsIDOMHTMLBodyElement; /** * HTML document extensions to nsIDocument. */ -class nsIHTMLDocument : public nsISupports { +class nsIHTMLDocument : public nsISupports +{ public: NS_DEFINE_STATIC_IID_ACCESSOR(NS_IHTMLDOCUMENT_IID) - NS_IMETHOD AddImageMap(nsIDOMHTMLMapElement* aMap) = 0; + virtual nsresult AddImageMap(nsIDOMHTMLMapElement* aMap) = 0; - NS_IMETHOD GetImageMap(const nsAString& aMapName, - nsIDOMHTMLMapElement** aResult) = 0; + virtual nsIDOMHTMLMapElement *GetImageMap(const nsAString& aMapName) = 0; - NS_IMETHOD RemoveImageMap(nsIDOMHTMLMapElement* aMap) = 0; + virtual void RemoveImageMap(nsIDOMHTMLMapElement* aMap) = 0; /** * Access compatibility mode for this document */ - NS_IMETHOD GetCompatibilityMode(nsCompatibility& aMode) = 0; - NS_IMETHOD SetCompatibilityMode(nsCompatibility aMode) = 0; + virtual nsCompatibility GetCompatibilityMode() = 0; + virtual void SetCompatibilityMode(nsCompatibility aMode) = 0; /* * Returns true if document.domain was set for this document */ - NS_IMETHOD WasDomainSet(PRBool* aDomainWasSet) = 0; + virtual PRBool WasDomainSet() = 0; - NS_IMETHOD ResolveName(const nsAString& aName, - nsIDOMHTMLFormElement *aForm, - nsISupports **aResult) = 0; + virtual nsresult ResolveName(const nsAString& aName, + nsIDOMHTMLFormElement *aForm, + nsISupports **aResult) = 0; - NS_IMETHOD GetFormControlElements(nsIDOMNodeList** aReturn) = 0; + /* + * This method returns null if we run out of memory. Callers should + * check for null. + */ + virtual already_AddRefed<nsIDOMNodeList> GetFormControlElements() = 0; + /** * Called when form->SetDocument() is called so that document knows * immediately when a form is added */ - NS_IMETHOD AddedForm() = 0; + virtual void AddedForm() = 0; /** * Called when form->SetDocument() is called so that document knows * immediately when a form is removed */ - NS_IMETHOD RemovedForm() = 0; + virtual void RemovedForm() = 0; /** * Called to get a better count of forms than document.forms can provide * without calling FlushPendingNotifications (bug 138892). */ - NS_IMETHOD GetNumFormsSynchronous(PRInt32* aNumForms) = 0; + virtual PRInt32 GetNumFormsSynchronous() = 0; - NS_IMETHOD_(PRBool) IsWriting() = 0; + virtual PRBool IsWriting() = 0; }; #endif /* nsIHTMLDocument_h___ */ diff --git a/content/shared/src/nsHTMLValue.cpp b/content/shared/src/nsHTMLValue.cpp index 37c980fe9a3e..a2e759112745 100644 --- a/content/shared/src/nsHTMLValue.cpp +++ b/content/shared/src/nsHTMLValue.cpp @@ -544,9 +544,7 @@ nsHTMLValue::ParseColor(const nsAString& aString, nsIDocument* aDocument) { nsCOMPtr<nsIHTMLDocument> doc(do_QueryInterface(aDocument)); if (doc) { - nsCompatibility mode; - doc->GetCompatibilityMode(mode); - inNavQuirksMode = (mode == eCompatibility_NavQuirks); + inNavQuirksMode = (doc->GetCompatibilityMode() == eCompatibility_NavQuirks); } else { inNavQuirksMode = PR_FALSE; } diff --git a/content/shared/src/nsImageMapUtils.cpp b/content/shared/src/nsImageMapUtils.cpp index 553b68a05e42..2e66aca83713 100644 --- a/content/shared/src/nsImageMapUtils.cpp +++ b/content/shared/src/nsImageMapUtils.cpp @@ -81,7 +81,8 @@ nsresult nsImageMapUtils::FindImageMap(nsIDocument *aDocument, nsCOMPtr<nsIHTMLDocument> htmlDoc(do_QueryInterface(aDocument)); if (htmlDoc) { - htmlDoc->GetImageMap(usemap, aMap); + *aMap = htmlDoc->GetImageMap(usemap); + NS_IF_ADDREF(*aMap); } else { // For XHTML elements embedded in non-XHTML documents we get the // map by id since XHTML requires that where a "name" attribute diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp index aef3a7bad9ec..c12fa96f41ee 100644 --- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -965,7 +965,7 @@ PRBool ValidateOrigin(nsIDocShellTreeItem* aOriginTreeItem, nsIDocShellTreeItem* // If we don't have an HTML document, fall through with documentDomainSet false if (targetHTMLDocument) { - targetHTMLDocument->WasDomainSet(&documentDomainSet); + documentDomainSet = targetHTMLDocument->WasDomainSet(); } // Is origin same principal or a subdomain of target's document.domain