diff --git a/content/html/content/src/nsGenericHTMLElement.cpp b/content/html/content/src/nsGenericHTMLElement.cpp index 17e077703e44..93ac674f81e3 100644 --- a/content/html/content/src/nsGenericHTMLElement.cpp +++ b/content/html/content/src/nsGenericHTMLElement.cpp @@ -1807,6 +1807,7 @@ nsGenericHTMLElement::GetBaseURL(const nsHTMLValue& aBaseHref, if (eHTMLUnit_String == aBaseHref.GetUnit()) { nsAutoString baseHref; aBaseHref.GetStringValue(baseHref); + baseHref.Trim(" \t\n\r"); nsIURI* url = nsnull; { diff --git a/content/html/content/src/nsHTMLAnchorElement.cpp b/content/html/content/src/nsHTMLAnchorElement.cpp index 123286f93bd8..1d7742e27091 100644 --- a/content/html/content/src/nsHTMLAnchorElement.cpp +++ b/content/html/content/src/nsHTMLAnchorElement.cpp @@ -668,6 +668,9 @@ nsHTMLAnchorElement::GetHrefCString(char* &aBuf) if (NS_CONTENT_ATTR_HAS_VALUE == mInner.GetAttribute(kNameSpaceID_HTML, nsHTMLAtoms::href, relURLSpec)) { + // Clean up any leading or trailing whitespace + relURLSpec.Trim(" \t\n\r"); + // Get base URL. nsCOMPtr baseURL; mInner.GetBaseURL(*getter_AddRefs(baseURL)); diff --git a/content/html/content/src/nsHTMLAreaElement.cpp b/content/html/content/src/nsHTMLAreaElement.cpp index e0b6ce7875e4..557a1798b879 100644 --- a/content/html/content/src/nsHTMLAreaElement.cpp +++ b/content/html/content/src/nsHTMLAreaElement.cpp @@ -511,6 +511,9 @@ nsHTMLAreaElement::GetHrefCString(char* &aBuf) if (NS_CONTENT_ATTR_HAS_VALUE == mInner.GetAttribute(kNameSpaceID_HTML, nsHTMLAtoms::href, relURLSpec)) { + // Clean up any leading or trailing whitespace + relURLSpec.Trim(" \t\n\r"); + // Get base URL. nsCOMPtr baseURL; mInner.GetBaseURL(*getter_AddRefs(baseURL)); diff --git a/content/html/content/src/nsHTMLImageElement.cpp b/content/html/content/src/nsHTMLImageElement.cpp index 7cf729fb62aa..091d1c6ed99c 100644 --- a/content/html/content/src/nsHTMLImageElement.cpp +++ b/content/html/content/src/nsHTMLImageElement.cpp @@ -688,6 +688,7 @@ nsHTMLImageElement::SetProperty(JSContext *aContext, JSObject *aObj, jsval aID, JSString *jsstring; if ((jsstring = JS_ValueToString(aContext, *aVp)) != nsnull) { src.Assign(NS_REINTERPRET_CAST(const PRUnichar*, JS_GetStringChars(jsstring))); + src.Trim(" \t\n\r"); } else { src.Truncate(); @@ -834,6 +835,7 @@ nsHTMLImageElement::GetSrc(nsAWritableString& aSrc) // Get href= attribute (relative URL). mInner.GetAttribute(kNameSpaceID_HTML, nsHTMLAtoms::src, relURLSpec); + relURLSpec.Trim(" \t\n\r"); if (nsnull != baseURL && relURLSpec.Length() > 0) { // Get absolute URL. diff --git a/content/html/content/src/nsHTMLLinkElement.cpp b/content/html/content/src/nsHTMLLinkElement.cpp index 701edd03dd41..c33a4f1b6921 100644 --- a/content/html/content/src/nsHTMLLinkElement.cpp +++ b/content/html/content/src/nsHTMLLinkElement.cpp @@ -353,6 +353,9 @@ nsHTMLLinkElement::GetHrefCString(char* &aBuf) if (NS_CONTENT_ATTR_HAS_VALUE == mInner.GetAttribute(kNameSpaceID_HTML, nsHTMLAtoms::href, relURLSpec)) { + // Clean up any leading or trailing whitespace + relURLSpec.Trim(" \t\n\r"); + // Get base URL. nsCOMPtr baseURL; mInner.GetBaseURL(*getter_AddRefs(baseURL)); diff --git a/layout/generic/nsImageFrame.cpp b/layout/generic/nsImageFrame.cpp index 94c7bd463e87..63c4d1954f30 100644 --- a/layout/generic/nsImageFrame.cpp +++ b/layout/generic/nsImageFrame.cpp @@ -175,7 +175,7 @@ nsImageFrame::Init(nsIPresContext* aPresContext, } } -if (NS_CONTENT_ATTR_HAS_VALUE == lowSrcResult && lowSrc.Length() > 0) { + if (NS_CONTENT_ATTR_HAS_VALUE == lowSrcResult && lowSrc.Length() > 0) { mLowSrcImageLoader = new nsHTMLImageLoader; if (mLowSrcImageLoader != nsnull) { mLowSrcImageLoader->Init(this, UpdateImageFrame, (void*)mLowSrcImageLoader, baseURL, lowSrc); @@ -359,6 +359,13 @@ nsImageFrame::Reflow(nsIPresContext* aPresContext, return NS_OK; } +NS_IMETHODIMP +nsImageFrame::CanContinueTextRun(PRBool& aContinueTextRun) const +{ + aContinueTextRun = PR_TRUE; + return NS_OK; +} + // Computes the width of the specified string. aMaxWidth specifies the maximum // width available. Once this limit is reached no more characters are measured. // The number of characters that fit within the maximum width are returned in diff --git a/layout/html/base/src/nsHTMLImageLoader.cpp b/layout/html/base/src/nsHTMLImageLoader.cpp index 5aa3a026ee5a..6dbf87310114 100644 --- a/layout/html/base/src/nsHTMLImageLoader.cpp +++ b/layout/html/base/src/nsHTMLImageLoader.cpp @@ -82,6 +82,7 @@ void nsHTMLImageLoader::SetURL(const nsString& aNewSpec) { mURLSpec = aNewSpec; + mURLSpec.Trim(" \t\n\r"); if (mBaseURL && !aNewSpec.IsEmpty()) { nsString empty; nsresult rv; diff --git a/layout/html/base/src/nsImageFrame.cpp b/layout/html/base/src/nsImageFrame.cpp index 94c7bd463e87..63c4d1954f30 100644 --- a/layout/html/base/src/nsImageFrame.cpp +++ b/layout/html/base/src/nsImageFrame.cpp @@ -175,7 +175,7 @@ nsImageFrame::Init(nsIPresContext* aPresContext, } } -if (NS_CONTENT_ATTR_HAS_VALUE == lowSrcResult && lowSrc.Length() > 0) { + if (NS_CONTENT_ATTR_HAS_VALUE == lowSrcResult && lowSrc.Length() > 0) { mLowSrcImageLoader = new nsHTMLImageLoader; if (mLowSrcImageLoader != nsnull) { mLowSrcImageLoader->Init(this, UpdateImageFrame, (void*)mLowSrcImageLoader, baseURL, lowSrc); @@ -359,6 +359,13 @@ nsImageFrame::Reflow(nsIPresContext* aPresContext, return NS_OK; } +NS_IMETHODIMP +nsImageFrame::CanContinueTextRun(PRBool& aContinueTextRun) const +{ + aContinueTextRun = PR_TRUE; + return NS_OK; +} + // Computes the width of the specified string. aMaxWidth specifies the maximum // width available. Once this limit is reached no more characters are measured. // The number of characters that fit within the maximum width are returned in diff --git a/layout/html/content/src/nsGenericHTMLElement.cpp b/layout/html/content/src/nsGenericHTMLElement.cpp index 17e077703e44..93ac674f81e3 100644 --- a/layout/html/content/src/nsGenericHTMLElement.cpp +++ b/layout/html/content/src/nsGenericHTMLElement.cpp @@ -1807,6 +1807,7 @@ nsGenericHTMLElement::GetBaseURL(const nsHTMLValue& aBaseHref, if (eHTMLUnit_String == aBaseHref.GetUnit()) { nsAutoString baseHref; aBaseHref.GetStringValue(baseHref); + baseHref.Trim(" \t\n\r"); nsIURI* url = nsnull; { diff --git a/layout/html/content/src/nsHTMLAnchorElement.cpp b/layout/html/content/src/nsHTMLAnchorElement.cpp index 123286f93bd8..1d7742e27091 100644 --- a/layout/html/content/src/nsHTMLAnchorElement.cpp +++ b/layout/html/content/src/nsHTMLAnchorElement.cpp @@ -668,6 +668,9 @@ nsHTMLAnchorElement::GetHrefCString(char* &aBuf) if (NS_CONTENT_ATTR_HAS_VALUE == mInner.GetAttribute(kNameSpaceID_HTML, nsHTMLAtoms::href, relURLSpec)) { + // Clean up any leading or trailing whitespace + relURLSpec.Trim(" \t\n\r"); + // Get base URL. nsCOMPtr baseURL; mInner.GetBaseURL(*getter_AddRefs(baseURL)); diff --git a/layout/html/content/src/nsHTMLAreaElement.cpp b/layout/html/content/src/nsHTMLAreaElement.cpp index e0b6ce7875e4..557a1798b879 100644 --- a/layout/html/content/src/nsHTMLAreaElement.cpp +++ b/layout/html/content/src/nsHTMLAreaElement.cpp @@ -511,6 +511,9 @@ nsHTMLAreaElement::GetHrefCString(char* &aBuf) if (NS_CONTENT_ATTR_HAS_VALUE == mInner.GetAttribute(kNameSpaceID_HTML, nsHTMLAtoms::href, relURLSpec)) { + // Clean up any leading or trailing whitespace + relURLSpec.Trim(" \t\n\r"); + // Get base URL. nsCOMPtr baseURL; mInner.GetBaseURL(*getter_AddRefs(baseURL)); diff --git a/layout/html/content/src/nsHTMLImageElement.cpp b/layout/html/content/src/nsHTMLImageElement.cpp index 7cf729fb62aa..091d1c6ed99c 100644 --- a/layout/html/content/src/nsHTMLImageElement.cpp +++ b/layout/html/content/src/nsHTMLImageElement.cpp @@ -688,6 +688,7 @@ nsHTMLImageElement::SetProperty(JSContext *aContext, JSObject *aObj, jsval aID, JSString *jsstring; if ((jsstring = JS_ValueToString(aContext, *aVp)) != nsnull) { src.Assign(NS_REINTERPRET_CAST(const PRUnichar*, JS_GetStringChars(jsstring))); + src.Trim(" \t\n\r"); } else { src.Truncate(); @@ -834,6 +835,7 @@ nsHTMLImageElement::GetSrc(nsAWritableString& aSrc) // Get href= attribute (relative URL). mInner.GetAttribute(kNameSpaceID_HTML, nsHTMLAtoms::src, relURLSpec); + relURLSpec.Trim(" \t\n\r"); if (nsnull != baseURL && relURLSpec.Length() > 0) { // Get absolute URL. diff --git a/layout/html/content/src/nsHTMLLinkElement.cpp b/layout/html/content/src/nsHTMLLinkElement.cpp index 701edd03dd41..c33a4f1b6921 100644 --- a/layout/html/content/src/nsHTMLLinkElement.cpp +++ b/layout/html/content/src/nsHTMLLinkElement.cpp @@ -353,6 +353,9 @@ nsHTMLLinkElement::GetHrefCString(char* &aBuf) if (NS_CONTENT_ATTR_HAS_VALUE == mInner.GetAttribute(kNameSpaceID_HTML, nsHTMLAtoms::href, relURLSpec)) { + // Clean up any leading or trailing whitespace + relURLSpec.Trim(" \t\n\r"); + // Get base URL. nsCOMPtr baseURL; mInner.GetBaseURL(*getter_AddRefs(baseURL));