Only propagate the body background to the canvas in HTML documents; don't do it
for XHTML. Bug 214969, r+sr=dbaron
This commit is contained in:
@@ -65,6 +65,7 @@
|
||||
#include "nsIDOMHTMLBodyElement.h"
|
||||
#include "nsIDOMHTMLDocument.h"
|
||||
#include "nsLayoutUtils.h"
|
||||
#include "nsINameSpaceManager.h"
|
||||
|
||||
#define BORDER_FULL 0 //entire side
|
||||
#define BORDER_INSIDE 1 //inside half
|
||||
@@ -2695,6 +2696,9 @@ FindCanvasBackground(nsIPresContext* aPresContext,
|
||||
node->GetOwnerDocument(getter_AddRefs(doc));
|
||||
nsCOMPtr<nsIDOMHTMLDocument> htmlDoc = do_QueryInterface(doc);
|
||||
if (htmlDoc) {
|
||||
PRInt32 namespaceID;
|
||||
content->GetNameSpaceID(&namespaceID);
|
||||
if (namespaceID == kNameSpaceID_None) { // HTML, not XHTML
|
||||
nsCOMPtr<nsIDOMHTMLElement> body;
|
||||
htmlDoc->GetBody(getter_AddRefs(body));
|
||||
nsCOMPtr<nsIContent> bodyContent = do_QueryInterface(body);
|
||||
@@ -2718,6 +2722,7 @@ FindCanvasBackground(nsIPresContext* aPresContext,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*aBackground = result;
|
||||
} else {
|
||||
@@ -2751,6 +2756,11 @@ FindElementBackground(nsIPresContext* aPresContext,
|
||||
if (!content || !content->IsContentOfType(nsIContent::eHTML))
|
||||
return PR_TRUE; // not frame for an HTML element
|
||||
|
||||
PRInt32 namespaceID;
|
||||
content->GetNameSpaceID(&namespaceID);
|
||||
if (namespaceID != kNameSpaceID_None) // This is XHTML, not HTML
|
||||
return PR_TRUE;
|
||||
|
||||
if (!parentFrame)
|
||||
return PR_TRUE; // no parent to look at
|
||||
|
||||
|
||||
@@ -65,6 +65,7 @@
|
||||
#include "nsIDOMHTMLBodyElement.h"
|
||||
#include "nsIDOMHTMLDocument.h"
|
||||
#include "nsLayoutUtils.h"
|
||||
#include "nsINameSpaceManager.h"
|
||||
|
||||
#define BORDER_FULL 0 //entire side
|
||||
#define BORDER_INSIDE 1 //inside half
|
||||
@@ -2695,6 +2696,9 @@ FindCanvasBackground(nsIPresContext* aPresContext,
|
||||
node->GetOwnerDocument(getter_AddRefs(doc));
|
||||
nsCOMPtr<nsIDOMHTMLDocument> htmlDoc = do_QueryInterface(doc);
|
||||
if (htmlDoc) {
|
||||
PRInt32 namespaceID;
|
||||
content->GetNameSpaceID(&namespaceID);
|
||||
if (namespaceID == kNameSpaceID_None) { // HTML, not XHTML
|
||||
nsCOMPtr<nsIDOMHTMLElement> body;
|
||||
htmlDoc->GetBody(getter_AddRefs(body));
|
||||
nsCOMPtr<nsIContent> bodyContent = do_QueryInterface(body);
|
||||
@@ -2718,6 +2722,7 @@ FindCanvasBackground(nsIPresContext* aPresContext,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*aBackground = result;
|
||||
} else {
|
||||
@@ -2751,6 +2756,11 @@ FindElementBackground(nsIPresContext* aPresContext,
|
||||
if (!content || !content->IsContentOfType(nsIContent::eHTML))
|
||||
return PR_TRUE; // not frame for an HTML element
|
||||
|
||||
PRInt32 namespaceID;
|
||||
content->GetNameSpaceID(&namespaceID);
|
||||
if (namespaceID != kNameSpaceID_None) // This is XHTML, not HTML
|
||||
return PR_TRUE;
|
||||
|
||||
if (!parentFrame)
|
||||
return PR_TRUE; // no parent to look at
|
||||
|
||||
|
||||
Reference in New Issue
Block a user