diff --git a/content/html/content/src/HTMLMediaElement.cpp b/content/html/content/src/HTMLMediaElement.cpp
index d43ae71645ac..ffd45fd77177 100644
--- a/content/html/content/src/HTMLMediaElement.cpp
+++ b/content/html/content/src/HTMLMediaElement.cpp
@@ -1320,6 +1320,12 @@ HTMLMediaElement::SetCurrentTime(double aCurrentTime, ErrorResult& aRv)
return;
}
+ if (!mPlayed) {
+ LOG(PR_LOG_DEBUG, ("HTMLMediaElement::mPlayed not available."));
+ aRv.Throw(NS_ERROR_DOM_INVALID_STATE_ERR);
+ return;
+ }
+
if (mCurrentPlayRangeStart != -1.0) {
double rangeEndTime = CurrentTime();
LOG(PR_LOG_DEBUG, ("%p Adding \'played\' a range : [%f, %f]", this, mCurrentPlayRangeStart, rangeEndTime));
@@ -1427,7 +1433,9 @@ HTMLMediaElement::Played()
nsRefPtr ranges = new TimeRanges();
uint32_t timeRangeCount = 0;
- mPlayed->GetLength(&timeRangeCount);
+ if (mPlayed) {
+ mPlayed->GetLength(&timeRangeCount);
+ }
for (uint32_t i = 0; i < timeRangeCount; i++) {
double begin;
double end;