зеркало из https://github.com/mozilla/pjs.git
Remove aForceType argument of LoadObject, make it a capability instead
bug 322128 r+sr=bz
This commit is contained in:
Родитель
6baa9b5031
Коммит
97aaafa544
|
@ -702,7 +702,6 @@ nsresult
|
|||
nsObjectLoadingContent::LoadObject(const nsAString& aURI,
|
||||
PRBool aNotify,
|
||||
const nsCString& aTypeHint,
|
||||
PRBool aForceType,
|
||||
PRBool aForceLoad)
|
||||
{
|
||||
LOG(("OBJLC [%p]: Loading object: URI string=<%s> notify=%i type=<%s> forcetype=%i forceload=%i\n",
|
||||
|
@ -730,18 +729,17 @@ nsObjectLoadingContent::LoadObject(const nsAString& aURI,
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
return LoadObject(uri, aNotify, aTypeHint, aForceType, aForceLoad);
|
||||
return LoadObject(uri, aNotify, aTypeHint, aForceLoad);
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsObjectLoadingContent::LoadObject(nsIURI* aURI,
|
||||
PRBool aNotify,
|
||||
const nsCString& aTypeHint,
|
||||
PRBool aForceType,
|
||||
PRBool aForceLoad)
|
||||
{
|
||||
LOG(("OBJLC [%p]: Loading object: URI=<%p> notify=%i type=<%s> forcetype=%i forceload=%i\n",
|
||||
this, aURI, aNotify, aTypeHint.get(), aForceType, aForceLoad));
|
||||
LOG(("OBJLC [%p]: Loading object: URI=<%p> notify=%i type=<%s> forceload=%i\n",
|
||||
this, aURI, aNotify, aTypeHint.get(), aForceLoad));
|
||||
|
||||
if (mURI && aURI && !aForceLoad) {
|
||||
PRBool equal;
|
||||
|
@ -849,10 +847,13 @@ nsObjectLoadingContent::LoadObject(nsIURI* aURI,
|
|||
// change the order of the declarations!
|
||||
AutoFallback fallback(this, &rv);
|
||||
|
||||
if (aForceType && !aTypeHint.IsEmpty()) {
|
||||
PRUint32 caps = GetCapabilities();
|
||||
LOG(("OBJLC [%p]: Capabilities: %04x\n", this, caps));
|
||||
|
||||
if ((caps & eOverrideServerType) && !aTypeHint.IsEmpty()) {
|
||||
ObjectType newType = GetTypeOfContent(aTypeHint);
|
||||
if (newType != mType) {
|
||||
LOG(("OBJLC [%p]: (aForceType) Changing type from %u to %u\n", this, mType, newType));
|
||||
LOG(("OBJLC [%p]: (eOverrideServerType) Changing type from %u to %u\n", this, mType, newType));
|
||||
|
||||
UnloadContent();
|
||||
|
||||
|
@ -908,7 +909,7 @@ nsObjectLoadingContent::LoadObject(nsIURI* aURI,
|
|||
PRBool isSupportedClassID = PR_FALSE;
|
||||
nsCAutoString typeForID; // Will be set iff isSupportedClassID == PR_TRUE
|
||||
PRBool hasID = PR_FALSE;
|
||||
if (GetCapabilities() & eSupportClassID) {
|
||||
if (caps & eSupportClassID) {
|
||||
nsAutoString classid;
|
||||
thisContent->GetAttr(kNameSpaceID_None, nsHTMLAtoms::classid, classid);
|
||||
if (!classid.IsEmpty()) {
|
||||
|
|
|
@ -126,9 +126,8 @@ class nsObjectLoadingContent : public nsImageLoadingContent
|
|||
* @param aURI The URI to load.
|
||||
* @param aNotify If true, nsIDocumentObserver state change notifications
|
||||
* will be sent as needed.
|
||||
* @param aTypeHint MIME Type hint. Overridden by the server.
|
||||
* @param aForceType Whether to always use aTypeHint as the type, instead
|
||||
* of letting the server override it.
|
||||
* @param aTypeHint MIME Type hint. Overridden by the server unless this
|
||||
* class has the eOverrideServerType capability.
|
||||
* @param aForceLoad If true, the object will be refetched even if the URI
|
||||
* is the same as the currently-loaded object.
|
||||
* @note Prefer the nsIURI-taking version of this function if a URI object
|
||||
|
@ -139,7 +138,6 @@ class nsObjectLoadingContent : public nsImageLoadingContent
|
|||
nsresult LoadObject(const nsAString& aURI,
|
||||
PRBool aNotify,
|
||||
const nsCString& aTypeHint = EmptyCString(),
|
||||
PRBool aForceType = PR_FALSE,
|
||||
PRBool aForceLoad = PR_FALSE);
|
||||
/**
|
||||
* Loads the object from the given URI.
|
||||
|
@ -165,16 +163,12 @@ class nsObjectLoadingContent : public nsImageLoadingContent
|
|||
* Otherwise a request to that URI is made and the type sent by the server
|
||||
* is used to find a suitable handler.
|
||||
*
|
||||
* @param aForceType Whether the passed-in type should override
|
||||
* server-supplied MIME types. Will be ignored if
|
||||
* aTypeHint is empty.
|
||||
* @param aForceLoad If true, the object will be refetched even if the URI
|
||||
* is the same as the currently-loaded object.
|
||||
*/
|
||||
nsresult LoadObject(nsIURI* aURI,
|
||||
PRBool aNotify,
|
||||
const nsCString& aTypeHint = EmptyCString(),
|
||||
PRBool aForceType = PR_FALSE,
|
||||
PRBool aForceLoad = PR_FALSE);
|
||||
|
||||
enum Capabilities {
|
||||
|
@ -186,7 +180,9 @@ class nsObjectLoadingContent : public nsImageLoadingContent
|
|||
#ifdef MOZ_SVG
|
||||
eSupportSVG = PR_BIT(3), // SVG is supported (image/svg+xml)
|
||||
#endif
|
||||
eSupportClassID = PR_BIT(4) // The classid attribute is supported
|
||||
eSupportClassID = PR_BIT(4), // The classid attribute is supported
|
||||
eOverrideServerType = PR_BIT(5) // The server-sent MIME type is ignored
|
||||
// (ignored if no type is specified)
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,342 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Pierre Phaneuf <pp@ludusdesign.com>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#include "nsIDOMHTMLAppletElement.h"
|
||||
#include "nsIDOMEventReceiver.h"
|
||||
#include "nsGenericHTMLElement.h"
|
||||
#include "nsHTMLAtoms.h"
|
||||
#include "nsStyleConsts.h"
|
||||
#include "nsPresContext.h"
|
||||
#include "nsIDocument.h"
|
||||
|
||||
#include "nsObjectLoadingContent.h"
|
||||
|
||||
// XXX this is to get around conflicts with windows.h defines
|
||||
// introduced through jni.h
|
||||
#if defined (XP_WIN) && ! defined (WINCE)
|
||||
#undef GetClassName
|
||||
#undef GetObject
|
||||
#endif
|
||||
|
||||
|
||||
class nsHTMLAppletElement : public nsGenericHTMLElement,
|
||||
public nsObjectLoadingContent,
|
||||
public nsIDOMHTMLAppletElement
|
||||
{
|
||||
public:
|
||||
nsHTMLAppletElement(nsINodeInfo *aNodeInfo, PRBool aFromParser = PR_FALSE);
|
||||
virtual ~nsHTMLAppletElement();
|
||||
|
||||
// nsISupports
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
|
||||
// nsIDOMNode
|
||||
NS_FORWARD_NSIDOMNODE_NO_CLONENODE(nsGenericHTMLElement::)
|
||||
|
||||
// nsIDOMElement
|
||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||
|
||||
// nsIDOMHTMLElement
|
||||
NS_FORWARD_NSIDOMHTMLELEMENT(nsGenericHTMLElement::)
|
||||
|
||||
// nsIDOMHTMLAppletElement
|
||||
NS_DECL_NSIDOMHTMLAPPLETELEMENT
|
||||
|
||||
virtual void DoneAddingChildren(PRBool aHaveNotified);
|
||||
virtual PRBool IsDoneAddingChildren();
|
||||
|
||||
// nsIContent
|
||||
// Have to override tabindex for <embed> to act right
|
||||
NS_IMETHOD GetTabIndex(PRInt32* aTabIndex);
|
||||
NS_IMETHOD SetTabIndex(PRInt32 aTabIndex);
|
||||
// Let applet decide whether it wants focus from mouse clicks
|
||||
virtual PRBool IsFocusable(PRInt32 *aTabIndex = nsnull);
|
||||
virtual PRUint32 GetDesiredIMEState();
|
||||
|
||||
virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent,
|
||||
nsIContent* aBindingParent,
|
||||
PRBool aCompileEventHandlers);
|
||||
virtual void UnbindFromTree(PRBool aDeep = PR_TRUE,
|
||||
PRBool aNullParent = PR_TRUE);
|
||||
virtual nsresult SetAttr(PRInt32 aNameSpaceID, nsIAtom* aName,
|
||||
nsIAtom* aPrefix, const nsAString& aValue,
|
||||
PRBool aNotify);
|
||||
|
||||
virtual PRBool ParseAttribute(PRInt32 aNamespaceID,
|
||||
nsIAtom* aAttribute,
|
||||
const nsAString& aValue,
|
||||
nsAttrValue& aResult);
|
||||
virtual nsMapRuleToAttributesFunc GetAttributeMappingFunction() const;
|
||||
NS_IMETHOD_(PRBool) IsAttributeMapped(const nsIAtom* aAttribute) const;
|
||||
virtual PRInt32 IntrinsicState() const;
|
||||
|
||||
// nsObjectLoadingContent
|
||||
virtual PRUint32 GetCapabilities() const;
|
||||
protected:
|
||||
/**
|
||||
* Calls LoadObject with the correct arguments to start the plugin
|
||||
* load.
|
||||
*/
|
||||
NS_HIDDEN_(void) StartAppletLoad(PRBool aNotify);
|
||||
|
||||
PRPackedBool mReflectedApplet;
|
||||
PRPackedBool mIsDoneAddingChildren;
|
||||
};
|
||||
|
||||
|
||||
NS_IMPL_NS_NEW_HTML_ELEMENT_CHECK_PARSER(Applet)
|
||||
|
||||
|
||||
nsHTMLAppletElement::nsHTMLAppletElement(nsINodeInfo *aNodeInfo, PRBool aFromParser)
|
||||
: nsGenericHTMLElement(aNodeInfo), mReflectedApplet(PR_FALSE),
|
||||
mIsDoneAddingChildren(!aFromParser)
|
||||
{
|
||||
}
|
||||
|
||||
nsHTMLAppletElement::~nsHTMLAppletElement()
|
||||
{
|
||||
}
|
||||
|
||||
PRBool
|
||||
nsHTMLAppletElement::IsDoneAddingChildren()
|
||||
{
|
||||
return mIsDoneAddingChildren;
|
||||
}
|
||||
|
||||
|
||||
PRUint32
|
||||
nsHTMLAppletElement::GetCapabilities() const
|
||||
{
|
||||
return eSupportPlugins;
|
||||
}
|
||||
|
||||
void
|
||||
nsHTMLAppletElement::DoneAddingChildren(PRBool aHaveNotified)
|
||||
{
|
||||
mIsDoneAddingChildren = PR_TRUE;
|
||||
// If we're already in the document, start the load, because BindToTree
|
||||
// didn't.
|
||||
if (IsInDoc()) {
|
||||
StartAppletLoad(aHaveNotified);
|
||||
}
|
||||
}
|
||||
|
||||
NS_IMPL_ADDREF_INHERITED(nsHTMLAppletElement, nsGenericElement)
|
||||
NS_IMPL_RELEASE_INHERITED(nsHTMLAppletElement, nsGenericElement)
|
||||
|
||||
|
||||
// QueryInterface implementation for nsHTMLAppletElement
|
||||
NS_HTML_CONTENT_INTERFACE_MAP_BEGIN(nsHTMLAppletElement, nsGenericHTMLElement)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIDOMHTMLAppletElement)
|
||||
NS_INTERFACE_MAP_ENTRY(imgIDecoderObserver)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIStreamListener)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIRequestObserver)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIFrameLoaderOwner)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIObjectLoadingContent)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIImageLoadingContent)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIInterfaceRequestor)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIChannelEventSink)
|
||||
NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
|
||||
NS_INTERFACE_MAP_ENTRY_CONTENT_CLASSINFO(HTMLAppletElement)
|
||||
NS_HTML_CONTENT_INTERFACE_MAP_END
|
||||
|
||||
|
||||
NS_IMPL_DOM_CLONENODE(nsHTMLAppletElement)
|
||||
|
||||
|
||||
NS_IMPL_STRING_ATTR(nsHTMLAppletElement, Align, align)
|
||||
NS_IMPL_STRING_ATTR(nsHTMLAppletElement, Alt, alt)
|
||||
NS_IMPL_STRING_ATTR(nsHTMLAppletElement, Archive, archive)
|
||||
NS_IMPL_STRING_ATTR(nsHTMLAppletElement, Code, code)
|
||||
NS_IMPL_URI_ATTR(nsHTMLAppletElement, CodeBase, codebase)
|
||||
NS_IMPL_STRING_ATTR(nsHTMLAppletElement, Height, height)
|
||||
NS_IMPL_INT_ATTR(nsHTMLAppletElement, Hspace, hspace)
|
||||
NS_IMPL_STRING_ATTR(nsHTMLAppletElement, Name, name)
|
||||
NS_IMPL_STRING_ATTR(nsHTMLAppletElement, Object, object)
|
||||
NS_IMPL_INT_ATTR(nsHTMLAppletElement, Vspace, vspace)
|
||||
NS_IMPL_STRING_ATTR(nsHTMLAppletElement, Width, width)
|
||||
NS_IMPL_INT_ATTR(nsHTMLAppletElement, TabIndex, tabindex)
|
||||
|
||||
PRBool
|
||||
nsHTMLAppletElement::ParseAttribute(PRInt32 aNamespaceID,
|
||||
nsIAtom* aAttribute,
|
||||
const nsAString& aValue,
|
||||
nsAttrValue& aResult)
|
||||
{
|
||||
if (aNamespaceID == kNameSpaceID_None) {
|
||||
if (aAttribute == nsHTMLAtoms::align) {
|
||||
return nsGenericHTMLElement::ParseAlignValue(aValue, aResult);
|
||||
}
|
||||
if (nsGenericHTMLElement::ParseImageAttribute(aAttribute,
|
||||
aValue, aResult)) {
|
||||
return PR_TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return nsGenericHTMLElement::ParseAttribute(aNamespaceID, aAttribute, aValue,
|
||||
aResult);
|
||||
}
|
||||
|
||||
static void
|
||||
MapAttributesIntoRule(const nsMappedAttributes* aAttributes,
|
||||
nsRuleData* aData)
|
||||
{
|
||||
nsGenericHTMLElement::MapImageBorderAttributeInto(aAttributes, aData);
|
||||
nsGenericHTMLElement::MapImageMarginAttributeInto(aAttributes, aData);
|
||||
nsGenericHTMLElement::MapImageSizeAttributesInto(aAttributes, aData);
|
||||
nsGenericHTMLElement::MapImageAlignAttributeInto(aAttributes, aData);
|
||||
nsGenericHTMLElement::MapCommonAttributesInto(aAttributes, aData);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP_(PRBool)
|
||||
nsHTMLAppletElement::IsAttributeMapped(const nsIAtom* aAttribute) const
|
||||
{
|
||||
static const MappedAttributeEntry* const map[] = {
|
||||
sCommonAttributeMap,
|
||||
sImageMarginSizeAttributeMap,
|
||||
sImageAlignAttributeMap,
|
||||
sImageBorderAttributeMap
|
||||
};
|
||||
|
||||
return FindAttributeDependence(aAttribute, map, NS_ARRAY_LENGTH(map));
|
||||
}
|
||||
|
||||
nsMapRuleToAttributesFunc
|
||||
nsHTMLAppletElement::GetAttributeMappingFunction() const
|
||||
{
|
||||
return &MapAttributesIntoRule;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsHTMLAppletElement::BindToTree(nsIDocument* aDocument,
|
||||
nsIContent* aParent,
|
||||
nsIContent* aBindingParent,
|
||||
PRBool aCompileEventHandlers)
|
||||
{
|
||||
nsresult rv = nsGenericHTMLElement::BindToTree(aDocument, aParent,
|
||||
aBindingParent,
|
||||
aCompileEventHandlers);
|
||||
if (NS_FAILED(rv)) {
|
||||
return rv;
|
||||
}
|
||||
|
||||
// Must start loading stuff after being in the document, but only when we
|
||||
// already have all our children.
|
||||
if (mIsDoneAddingChildren) {
|
||||
// Don't need to notify: We have no frames yet, since we weren't in a
|
||||
// document
|
||||
StartAppletLoad(PR_FALSE);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
nsHTMLAppletElement::UnbindFromTree(PRBool aDeep,
|
||||
PRBool aNullParent)
|
||||
{
|
||||
RemovedFromDocument();
|
||||
nsGenericHTMLElement::UnbindFromTree(aDeep, aNullParent);
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsHTMLAppletElement::SetAttr(PRInt32 aNameSpaceID, nsIAtom* aName,
|
||||
nsIAtom* aPrefix, const nsAString& aValue,
|
||||
PRBool aNotify)
|
||||
{
|
||||
// If we plan to call LoadObject, we want to do it first so that the
|
||||
// object load kicks off _before_ the reflow triggered by the SetAttr. But if
|
||||
// aNotify is false, we are coming from the parser or some such place; we'll
|
||||
// get bound after all the attributes have been set, so we'll do the
|
||||
// object load from BindToTree/DoneAddingChildren.
|
||||
// Skip the LoadObject call in that case.
|
||||
if (aNotify &&
|
||||
aNameSpaceID == kNameSpaceID_None && aName == nsHTMLAtoms::code) {
|
||||
LoadObject(aValue, aNotify,
|
||||
NS_LITERAL_CSTRING("application/x-java-vm"),
|
||||
PR_TRUE, PR_TRUE);
|
||||
}
|
||||
|
||||
|
||||
return nsGenericHTMLElement::SetAttr(aNameSpaceID, aName, aPrefix,
|
||||
aValue, aNotify);
|
||||
}
|
||||
|
||||
void
|
||||
nsHTMLAppletElement::StartAppletLoad(PRBool aNotify)
|
||||
{
|
||||
nsAutoString uri;
|
||||
if (GetAttr(kNameSpaceID_None, nsHTMLAtoms::code, uri)) {
|
||||
LoadObject(uri, aNotify,
|
||||
NS_LITERAL_CSTRING("application/x-java-vm"), PR_TRUE);
|
||||
} else {
|
||||
// The constructor set the type to eType_Loading; but if we have no code
|
||||
// attribute, then we aren't really a plugin
|
||||
Fallback(aNotify);
|
||||
}
|
||||
}
|
||||
|
||||
PRInt32
|
||||
nsHTMLAppletElement::IntrinsicState() const
|
||||
{
|
||||
return nsGenericHTMLElement::IntrinsicState() | ObjectState();
|
||||
}
|
||||
|
||||
PRBool
|
||||
nsHTMLAppletElement::IsFocusable(PRInt32 *aTabIndex)
|
||||
{
|
||||
if (Type() == eType_Plugin) {
|
||||
// Has plugin content (java): let the plugin decide what to do in terms of
|
||||
// internal focus from mouse clicks
|
||||
if (aTabIndex) {
|
||||
GetTabIndex(aTabIndex);
|
||||
}
|
||||
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
return nsGenericHTMLElement::IsFocusable(aTabIndex);
|
||||
}
|
||||
|
||||
PRUint32
|
||||
nsHTMLAppletElement::GetDesiredIMEState()
|
||||
{
|
||||
if (Type() == eType_Plugin)
|
||||
return nsIContent::IME_STATUS_ENABLE;
|
||||
return nsGenericHTMLElement::GetDesiredIMEState();
|
||||
}
|
||||
|
|
@ -233,7 +233,7 @@ nsHTMLObjectElement::SetAttr(PRInt32 aNameSpaceID, nsIAtom* aName,
|
|||
aNameSpaceID == kNameSpaceID_None && aName == nsHTMLAtoms::data) {
|
||||
nsAutoString type;
|
||||
GetAttr(kNameSpaceID_None, nsHTMLAtoms::type, type);
|
||||
LoadObject(aValue, aNotify, NS_ConvertUTF16toUTF8(type), PR_FALSE, PR_TRUE);
|
||||
LoadObject(aValue, aNotify, NS_ConvertUTF16toUTF8(type), PR_TRUE);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -532,11 +532,11 @@ nsHTMLSharedElement::BindToTree(nsIDocument* aDocument,
|
|||
nsAutoString uri;
|
||||
if (GetAttr(kNameSpaceID_None, nsHTMLAtoms::src, uri)) {
|
||||
// Don't notify: We aren't in a document yet, so we have no frames
|
||||
LoadObject(uri, PR_FALSE, NS_ConvertUTF16toUTF8(type), PR_TRUE);
|
||||
LoadObject(uri, PR_FALSE, NS_ConvertUTF16toUTF8(type));
|
||||
} else {
|
||||
// Sometimes, code uses <embed> with no src attributes, for example using
|
||||
// code="...". Handle that case.
|
||||
LoadObject(nsnull, PR_FALSE, NS_ConvertUTF16toUTF8(type), PR_TRUE);
|
||||
LoadObject(nsnull, PR_FALSE, NS_ConvertUTF16toUTF8(type));
|
||||
}
|
||||
}
|
||||
return rv;
|
||||
|
@ -569,7 +569,7 @@ nsHTMLSharedElement::SetAttr(PRInt32 aNameSpaceID, nsIAtom* aName,
|
|||
aNameSpaceID == kNameSpaceID_None && aName == nsHTMLAtoms::src) {
|
||||
nsAutoString type;
|
||||
GetAttr(kNameSpaceID_None, nsHTMLAtoms::type, type);
|
||||
LoadObject(aValue, aNotify, NS_ConvertUTF16toUTF8(type), PR_TRUE, PR_TRUE);
|
||||
LoadObject(aValue, aNotify, NS_ConvertUTF16toUTF8(type), PR_TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -580,7 +580,7 @@ nsHTMLSharedElement::SetAttr(PRInt32 aNameSpaceID, nsIAtom* aName,
|
|||
PRUint32
|
||||
nsHTMLSharedElement::GetCapabilities() const
|
||||
{
|
||||
return eSupportImages | eSupportPlugins
|
||||
return eSupportImages | eSupportPlugins | eOverrideServerType
|
||||
#ifdef MOZ_SVG
|
||||
| eSupportSVG
|
||||
#endif
|
||||
|
|
Загрузка…
Ссылка в новой задаче