Fixing HIDDEN attribute on EMBED tag and also removing support for it for APPLET tags. Bug 136456 r=av sr=attinasi

This commit is contained in:
peterlubczynski%netscape.com 2002-04-13 01:53:23 +00:00
Родитель 6bd98eb32d
Коммит 54b90e52ee
4 изменённых файлов: 24 добавлений и 24 удалений

Просмотреть файл

@ -829,6 +829,9 @@ nsObjectFrame::GetDesiredSize(nsIPresContext* aPresContext,
aMetrics.ascent = 0;
aMetrics.descent = 0;
if (IsHidden(PR_FALSE))
return;
// for EMBED and APPLET, default to 240x200 for compatibility
nsCOMPtr<nsIAtom> atom;
mContent->GetTag(*getter_AddRefs(atom));
@ -1348,22 +1351,19 @@ nsObjectFrame::GetBaseURL(nsIURI* &aURL)
PRBool
nsObjectFrame::IsHidden() const
nsObjectFrame::IsHidden(PRBool aCheckVisibilityStyle) const
{
// check the style visibility first
const nsStyleVisibility* vis = (const nsStyleVisibility*)mStyleContext->GetStyleData(eStyleStruct_Visibility);
if (vis != nsnull)
{
if(!vis->IsVisibleOrCollapsed())
return PR_TRUE;
if (aCheckVisibilityStyle) {
const nsStyleVisibility* vis = (const nsStyleVisibility*)mStyleContext->GetStyleData(eStyleStruct_Visibility);
if (vis && !vis->IsVisibleOrCollapsed())
return PR_TRUE;
}
nsCOMPtr<nsIAtom> tag;
mContent->GetTag(*getter_AddRefs(tag));
if (tag.get() != nsHTMLAtoms::object) {
// The <object> tag doesn't support the 'hidden' attribute, but
// everything else does...
// only <embed> tags support the HIDDEN attribute
if (tag.get() == nsHTMLAtoms::embed) {
nsAutoString hidden;
mContent->GetAttr(kNameSpaceID_None, nsHTMLAtoms::hidden, hidden);
@ -1375,7 +1375,6 @@ nsObjectFrame::IsHidden() const
!hidden.Equals(NS_LITERAL_STRING("false"), nsCaseInsensitiveStringComparator()) &&
!hidden.Equals(NS_LITERAL_STRING("no"), nsCaseInsensitiveStringComparator()) &&
!hidden.Equals(NS_LITERAL_STRING("off"), nsCaseInsensitiveStringComparator())) {
// The <embed> or <applet> is hidden.
return PR_TRUE;
}
}

Просмотреть файл

@ -156,7 +156,8 @@ protected:
nsresult GetBaseURL(nsIURI* &aURL);
PRBool IsHidden() const;
// check attributes and optionally CSS to see if we should display anything
PRBool IsHidden(PRBool aCheckVisibilityStyle = PR_TRUE) const;
nsresult NotifyContentObjectWrapper();

Просмотреть файл

@ -829,6 +829,9 @@ nsObjectFrame::GetDesiredSize(nsIPresContext* aPresContext,
aMetrics.ascent = 0;
aMetrics.descent = 0;
if (IsHidden(PR_FALSE))
return;
// for EMBED and APPLET, default to 240x200 for compatibility
nsCOMPtr<nsIAtom> atom;
mContent->GetTag(*getter_AddRefs(atom));
@ -1348,22 +1351,19 @@ nsObjectFrame::GetBaseURL(nsIURI* &aURL)
PRBool
nsObjectFrame::IsHidden() const
nsObjectFrame::IsHidden(PRBool aCheckVisibilityStyle) const
{
// check the style visibility first
const nsStyleVisibility* vis = (const nsStyleVisibility*)mStyleContext->GetStyleData(eStyleStruct_Visibility);
if (vis != nsnull)
{
if(!vis->IsVisibleOrCollapsed())
return PR_TRUE;
if (aCheckVisibilityStyle) {
const nsStyleVisibility* vis = (const nsStyleVisibility*)mStyleContext->GetStyleData(eStyleStruct_Visibility);
if (vis && !vis->IsVisibleOrCollapsed())
return PR_TRUE;
}
nsCOMPtr<nsIAtom> tag;
mContent->GetTag(*getter_AddRefs(tag));
if (tag.get() != nsHTMLAtoms::object) {
// The <object> tag doesn't support the 'hidden' attribute, but
// everything else does...
// only <embed> tags support the HIDDEN attribute
if (tag.get() == nsHTMLAtoms::embed) {
nsAutoString hidden;
mContent->GetAttr(kNameSpaceID_None, nsHTMLAtoms::hidden, hidden);
@ -1375,7 +1375,6 @@ nsObjectFrame::IsHidden() const
!hidden.Equals(NS_LITERAL_STRING("false"), nsCaseInsensitiveStringComparator()) &&
!hidden.Equals(NS_LITERAL_STRING("no"), nsCaseInsensitiveStringComparator()) &&
!hidden.Equals(NS_LITERAL_STRING("off"), nsCaseInsensitiveStringComparator())) {
// The <embed> or <applet> is hidden.
return PR_TRUE;
}
}

Просмотреть файл

@ -156,7 +156,8 @@ protected:
nsresult GetBaseURL(nsIURI* &aURL);
PRBool IsHidden() const;
// check attributes and optionally CSS to see if we should display anything
PRBool IsHidden(PRBool aCheckVisibilityStyle = PR_TRUE) const;
nsresult NotifyContentObjectWrapper();