зеркало из https://github.com/mozilla/gecko-dev.git
Bug 689834. Only look at the muted attribute when initially creating the element. r=bzbarsky
This commit is contained in:
Родитель
61d114cfc7
Коммит
d9f501a4df
|
@ -118,6 +118,7 @@ public:
|
|||
bool aCompileEventHandlers);
|
||||
virtual void UnbindFromTree(bool aDeep = true,
|
||||
bool aNullParent = true);
|
||||
virtual void DoneCreatingElement();
|
||||
|
||||
/**
|
||||
* Call this to reevaluate whether we should start/stop due to our owner
|
||||
|
|
|
@ -1504,6 +1504,12 @@ bool nsHTMLMediaElement::ParseAttribute(PRInt32 aNamespaceID,
|
|||
aResult);
|
||||
}
|
||||
|
||||
void nsHTMLMediaElement::DoneCreatingElement()
|
||||
{
|
||||
if (HasAttr(kNameSpaceID_None, nsGkAtoms::muted))
|
||||
mMuted = true;
|
||||
}
|
||||
|
||||
nsresult nsHTMLMediaElement::SetAttr(PRInt32 aNameSpaceID, nsIAtom* aName,
|
||||
nsIAtom* aPrefix, const nsAString& aValue,
|
||||
bool aNotify)
|
||||
|
@ -1516,9 +1522,6 @@ nsresult nsHTMLMediaElement::SetAttr(PRInt32 aNameSpaceID, nsIAtom* aName,
|
|||
if (aNameSpaceID == kNameSpaceID_None && aName == nsGkAtoms::src) {
|
||||
Load();
|
||||
}
|
||||
if (aNameSpaceID == kNameSpaceID_None && aName == nsGkAtoms::muted) {
|
||||
mMuted = true;
|
||||
}
|
||||
if (aNotify && aNameSpaceID == kNameSpaceID_None) {
|
||||
if (aName == nsGkAtoms::autoplay) {
|
||||
StopSuspendingAfterFirstFrame();
|
||||
|
|
|
@ -808,6 +808,8 @@ SinkContext::OpenContainer(const nsIParserNode& aNode)
|
|||
break;
|
||||
|
||||
case eHTMLTag_button:
|
||||
case eHTMLTag_audio:
|
||||
case eHTMLTag_video:
|
||||
content->DoneCreatingElement();
|
||||
break;
|
||||
|
||||
|
|
|
@ -1077,7 +1077,9 @@ nsXMLContentSink::HandleStartElement(const PRUnichar *aName,
|
|||
if (nodeInfo->NamespaceID() == kNameSpaceID_XHTML) {
|
||||
if (nodeInfo->NameAtom() == nsGkAtoms::input ||
|
||||
nodeInfo->NameAtom() == nsGkAtoms::button ||
|
||||
nodeInfo->NameAtom() == nsGkAtoms::menuitem) {
|
||||
nodeInfo->NameAtom() == nsGkAtoms::menuitem ||
|
||||
nodeInfo->NameAtom() == nsGkAtoms::audio ||
|
||||
nodeInfo->NameAtom() == nsGkAtoms::video) {
|
||||
content->DoneCreatingElement();
|
||||
} else if (nodeInfo->NameAtom() == nsGkAtoms::head && !mCurrentHead) {
|
||||
mCurrentHead = content;
|
||||
|
|
|
@ -338,9 +338,11 @@ txMozillaXMLOutput::endElement()
|
|||
} else if (ns == kNameSpaceID_XHTML &&
|
||||
(localName == nsGkAtoms::input ||
|
||||
localName == nsGkAtoms::button ||
|
||||
localName == nsGkAtoms::menuitem)) {
|
||||
localName == nsGkAtoms::menuitem ||
|
||||
localName == nsGkAtoms::audio ||
|
||||
localName == nsGkAtoms::video )) {
|
||||
element->DoneCreatingElement();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (mCreatingNewDocument) {
|
||||
|
|
|
@ -566,6 +566,13 @@ nsHtml5TreeBuilder::elementPopped(PRInt32 aNamespace, nsIAtom* aName, nsIContent
|
|||
treeOp->Init(eTreeOpProcessMeta, aElement);
|
||||
return;
|
||||
}
|
||||
if (aName == nsHtml5Atoms::audio || aName == nsHtml5Atoms::video) {
|
||||
nsHtml5TreeOperation* treeOp = mOpQueue.AppendElement();
|
||||
NS_ASSERTION(treeOp, "Tree op allocation failed.");
|
||||
treeOp->Init(eTreeOpDoneCreatingElement, aElement);
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче