Bug 736400 - Make each decoder Clone() method check if its mimetype is enabled r=cpearce

This commit is contained in:
Christopher De Cairos 2012-03-26 10:48:40 +13:00
parent cdb18186e9
commit b9927ed2b5
4 changed files with 25 additions and 5 deletions

View File

@ -44,7 +44,12 @@
class nsOggDecoder : public nsBuiltinDecoder
{
public:
virtual nsMediaDecoder* Clone() { return new nsOggDecoder(); }
virtual nsMediaDecoder* Clone() {
if (!nsHTMLMediaElement::IsOggEnabled()) {
return nsnull;
}
return new nsOggDecoder();
}
virtual nsDecoderStateMachine* CreateStateMachine();
};

View File

@ -42,7 +42,12 @@
class nsRawDecoder : public nsBuiltinDecoder
{
public:
virtual nsMediaDecoder* Clone() { return new nsRawDecoder(); }
virtual nsMediaDecoder* Clone() {
if (!nsHTMLMediaElement::IsRawEnabled()) {
return nsnull;
}
return new nsRawDecoder();
}
virtual nsDecoderStateMachine* CreateStateMachine();
};

View File

@ -55,8 +55,13 @@
class nsWaveDecoder : public nsBuiltinDecoder
{
public:
virtual nsMediaDecoder* Clone() { return new nsWaveDecoder(); }
virtual nsDecoderStateMachine* CreateStateMachine();
virtual nsMediaDecoder* Clone() {
if (!nsHTMLMediaElement::IsWaveEnabled()) {
return nsnull;
}
return new nsWaveDecoder();
}
virtual nsDecoderStateMachine* CreateStateMachine();
};
#endif

View File

@ -44,7 +44,12 @@
class nsWebMDecoder : public nsBuiltinDecoder
{
public:
virtual nsMediaDecoder* Clone() { return new nsWebMDecoder(); }
virtual nsMediaDecoder* Clone() {
if (!nsHTMLMediaElement::IsWebMEnabled()) {
return nsnull;
}
return new nsWebMDecoder();
}
virtual nsDecoderStateMachine* CreateStateMachine();
};