Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Bug 631058 - Backing out changesets 0d43e33ce134 and 60d7b8a4c275. r=…

…wes, a=backout-scary-stuff

--HG--
branch : GECKO20b12pre_20110216_RELBRANCH
  • Loading branch information...
commit c1cc65ecfa7343d794c9686c349a7f1af7a9019d 1 parent 776079b
@dougt dougt authored
View
2  content/base/test/file_mozfiledataurl_inner.html
@@ -62,7 +62,7 @@
iframe = document.getElementById('iframe');
iframe.onerror = iframe.onload = iframeNotifyParent;
audio = document.getElementById('audio');
- audio.onerror = audio.onloadedmetadata = audioNotifyParent;
+ audio.onerror = audio.oncanplay = audioNotifyParent;
}
</script>
View
8 content/base/test/test_mozfiledataurl.html
@@ -12,7 +12,7 @@
<iframe id=inner></iframe>
<iframe id=iframe></iframe>
<img id=img onload="gen.send(event);">
-<audio id=audio onloadedmetadata="gen.send(event);">
+<audio id=audio oncanplay="gen.send(event);">
<input type=file id=fileList>
</p>
<div id="content" style="display: none">
@@ -90,11 +90,11 @@
var fileurl = URL.createObjectURL(file);
audio.src = fileurl;
var e = (yield);
- is(e.type, "loadedmetadata", "loaded successfully");
+ is(e.type, "canplay", "loaded successfully");
// Revoke url and attempt to load a audio in this document
audio.src = "file_mozfiledataurl_audio.ogg";
- is((yield).type, "loadedmetadata", "successfully reset audio");
+ is((yield).type, "canplay", "successfully reset audio");
URL.revokeObjectURL(fileurl);
todo(false, "urls need to act like 404s, not fail to parse");
/* img.src = fileurl;
@@ -113,7 +113,7 @@
yield;
inner.contentWindow.postMessage(JSON.stringify({audio:fileurl}), "*");
var res = (yield);
- is(res.type, "loadedmetadata", "loaded successfully");
+ is(res.type, "canplay", "loaded successfully");
// Attempt to load an audio in a different cross-origin document
inner.src = innerCrossSiteURI;
View
25 content/html/content/public/nsHTMLMediaElement.h
@@ -328,19 +328,6 @@ class nsHTMLMediaElement : public nsGenericHTMLElement,
*/
PRBool GetPlayedOrSeeked() const { return mHasPlayedOrSeeked; }
- /**
- * The preloading action to perform. These dictate how we react to the
- * preload attribute. See mPreloadAction.
- */
- enum PreloadAction {
- PRELOAD_UNDEFINED = 0, // not determined - used only for initialization
- PRELOAD_NONE = 1, // do not preload
- PRELOAD_METADATA = 2, // preload only the metadata (and first frame)
- PRELOAD_ENOUGH = 3 // preload enough data to allow uninterrupted
- // playback
- };
- PreloadAction GetPreloadAction() const { return mPreloadAction; }
-
nsresult CopyInnerTo(nsGenericElement* aDest) const;
/**
@@ -492,6 +479,18 @@ class nsHTMLMediaElement : public nsGenericHTMLElement,
};
/**
+ * The preloading action to perform. These dictate how we react to the
+ * preload attribute. See mPreloadAction.
+ */
+ enum PreloadAction {
+ PRELOAD_UNDEFINED = 0, // not determined - used only for initialization
+ PRELOAD_NONE = 1, // do not preload
+ PRELOAD_METADATA = 2, // preload only the metadata (and first frame)
+ PRELOAD_ENOUGH = 3 // preload enough data to allow uninterrupted
+ // playback
+ };
+
+ /**
* Suspends the load of resource at aURI, so that it can be resumed later
* by ResumeLoad(). This is called when we have a media with a 'preload'
* attribute value of 'none', during the resource selection algorithm.
View
4 content/media/nsBuiltinDecoder.cpp
@@ -855,10 +855,6 @@ void nsBuiltinDecoder::Resume(PRBool aForceBuffering)
}
}
-nsHTMLMediaElement::PreloadAction nsBuiltinDecoder::GetPreloadAction() {
- return mElement->GetPreloadAction();
-}
-
void nsBuiltinDecoder::StopProgressUpdates()
{
NS_ASSERTION(IsCurrentThread(mStateMachineThread), "Should be on state machine thread.");
View
3  content/media/nsBuiltinDecoder.h
@@ -450,9 +450,6 @@ class nsBuiltinDecoder : public nsMediaDecoder
}
public:
- // Return the preloadAction
- nsHTMLMediaElement::PreloadAction GetPreloadAction();
-
// Return the current state. Can be called on any thread. If called from
// a non-main thread, the decoder monitor must be held.
PlayState GetState() {
View
50 content/media/nsBuiltinDecoderStateMachine.cpp
@@ -987,14 +987,11 @@ nsresult nsBuiltinDecoderStateMachine::Run()
MonitorAutoExit exitMon(mDecoder->GetMonitor());
RenderVideoFrame(videoData);
}
- if (mDecoder->GetPreloadAction() == nsHTMLMediaElement::PRELOAD_ENOUGH ||
- mDecoder->GetState() == nsBuiltinDecoder::PLAY_STATE_PLAYING)
- {
- // Start the decode threads, so that we can pre buffer the streams
- // and calculate the start time in order to determine the duration.
- if (NS_FAILED(StartDecodeThreads())) {
- continue;
- }
+
+ // Start the decode threads, so that we can pre buffer the streams.
+ // and calculate the start time in order to determine the duration.
+ if (NS_FAILED(StartDecodeThreads())) {
+ continue;
}
NS_ASSERTION(mStartTime != -1, "Must have start time");
@@ -1026,39 +1023,12 @@ nsresult nsBuiltinDecoderStateMachine::Run()
if (mState == DECODER_STATE_DECODING_METADATA) {
LOG(PR_LOG_DEBUG, ("%p Changed state from DECODING_METADATA to DECODING", mDecoder));
mState = DECODER_STATE_DECODING;
+ }
- // Start playback.
- if (mDecoder->GetState() == nsBuiltinDecoder::PLAY_STATE_PLAYING) {
- if (!IsPlaying()) {
- StartPlayback();
- }
- } else if (mDecoder->GetPreloadAction() != nsHTMLMediaElement::PRELOAD_ENOUGH) {
- if (mReader) {
- // Clear any frames queued up during FindStartTime() and reset
- // to the start of the stream to save memory.
- MonitorAutoExit exitMon(mDecoder->GetMonitor());
- mReader->ResetDecode();
-
- nsMediaStream* stream = mDecoder->GetCurrentStream();
- PRInt64 offset = mReader->GetInfo().mDataOffset;
- if (NS_FAILED(stream->Seek(nsISeekableStream::NS_SEEK_SET, offset))) {
- mState = DECODER_STATE_SHUTDOWN;
- }
- }
- // Note state can change when we release the decoder monitor to
- // call ResetDecode() above, so we must re-verify the state here.
- if (mState != DECODER_STATE_DECODING ||
- mDecoder->GetState() == nsBuiltinDecoder::PLAY_STATE_PLAYING) {
- continue;
- }
-
- // Shutdown the state machine thread, in order to save
- // memory on thread stacks, particuarly on Linux.
- nsCOMPtr<nsIRunnable> event = new ShutdownThreadEvent(mDecoder->mStateMachineThread);
- NS_DispatchToMainThread(event, NS_DISPATCH_NORMAL);
- mDecoder->mStateMachineThread = nsnull;
-
- return NS_OK;
+ // Start playback.
+ if (mDecoder->GetState() == nsBuiltinDecoder::PLAY_STATE_PLAYING) {
+ if (!IsPlaying()) {
+ StartPlayback();
}
}
}
View
11 content/media/nsMediaCache.cpp
@@ -2067,28 +2067,23 @@ nsMediaCacheStream::Seek(PRInt32 aWhence, PRInt64 aOffset)
return NS_ERROR_FAILURE;
PRInt64 oldOffset = mStreamOffset;
- PRInt64 newOffset = mStreamOffset;
switch (aWhence) {
case PR_SEEK_END:
if (mStreamLength < 0)
return NS_ERROR_FAILURE;
- newOffset = mStreamLength + aOffset;
+ mStreamOffset = mStreamLength + aOffset;
break;
case PR_SEEK_CUR:
- newOffset += aOffset;
+ mStreamOffset += aOffset;
break;
case PR_SEEK_SET:
- newOffset = aOffset;
+ mStreamOffset = aOffset;
break;
default:
NS_ERROR("Unknown whence");
return NS_ERROR_FAILURE;
}
- if (newOffset < 0)
- return NS_ERROR_FAILURE;
- mStreamOffset = newOffset;
-
LOG(PR_LOG_DEBUG, ("Stream %p Seek to %lld", this, (long long)mStreamOffset));
gMediaCache->NoteSeek(this, oldOffset);
View
2  content/media/webm/nsWebMReader.cpp
@@ -335,7 +335,7 @@ nsresult nsWebMReader::ReadMetadata()
// mDataOffset is not used by the WebM backend.
// See bug 566779 for a suggestion to refactor
// and remove it.
- mInfo.mDataOffset = 0;
+ mInfo.mDataOffset = -1;
}
else if (!mHasAudio && type == NESTEGG_TRACK_AUDIO) {
nestegg_audio_params params;
Please sign in to comment.
Something went wrong with that request. Please try again.