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));