mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-14 12:13:22 +00:00
Bug 569301 - Add on* event handler property support for media events. r=smaug
This commit is contained in:
parent
d08de7d497
commit
03ad3eb6b1
@ -121,6 +121,7 @@ _TEST_FILES = \
|
||||
test_paused.html \
|
||||
test_paused_after_ended.html \
|
||||
test_play_events.html \
|
||||
test_play_events_2.html \
|
||||
test_play_twice.html \
|
||||
test_playback.html \
|
||||
test_playback_errors.html \
|
||||
|
70
content/media/test/test_play_events_2.html
Normal file
70
content/media/test/test_play_events_2.html
Normal file
@ -0,0 +1,70 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Media test: play() method via DOM 0 handlers</title>
|
||||
<script type="text/javascript" src="/MochiKit/packed.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
<script type="text/javascript" src="manifest.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<pre id="test">
|
||||
|
||||
<script>
|
||||
var videos = [];
|
||||
|
||||
var tokens = {
|
||||
0: ["play"],
|
||||
"play": ["canplay"],
|
||||
"canplay": ["playing"],
|
||||
"playing": ["canplay", "canplaythrough"],
|
||||
"canplaythrough": ["canplay", "canplaythrough"]
|
||||
};
|
||||
|
||||
function gotPlayEvent(event) {
|
||||
var v = event.target;
|
||||
ok(tokens[v._state].indexOf(event.type) >= 0,
|
||||
"Check expected event got " + event.type + " at " + v._state + " for " + v.src);
|
||||
v._state = event.type;
|
||||
}
|
||||
|
||||
function ended(event) {
|
||||
var v = event.target;
|
||||
v._finished = true;
|
||||
is(v._state, "canplaythrough", "Last event should be canplaythrough for " + v.src);
|
||||
if (AllFinished(videos)) {
|
||||
SimpleTest.finish();
|
||||
}
|
||||
}
|
||||
|
||||
for (var i=0; i<gSmallTests.length; ++i) {
|
||||
var v = document.createElement('video');
|
||||
var test = gSmallTests[i];
|
||||
if (!v.canPlayType(test.type))
|
||||
continue;
|
||||
v._state = 0;
|
||||
v._finished = false;
|
||||
|
||||
["play", "canplay", "playing", "canplaythrough"].forEach(function (e) {
|
||||
v["on" + e] = gotPlayEvent;
|
||||
});
|
||||
|
||||
v.onended = ended;
|
||||
|
||||
v.src = test.name;
|
||||
document.body.appendChild(v); // Causes load.
|
||||
v.play();
|
||||
videos.push(v);
|
||||
}
|
||||
|
||||
if (videos.length == 0) {
|
||||
todo(false, "No types supported");
|
||||
} else {
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
@ -1585,6 +1585,26 @@ jsid nsDOMClassInfo::sOncut_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOnpaste_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sJava_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sPackages_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOnloadstart_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOnprogress_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOnsuspend_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOnemptied_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOnstalled_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOnplay_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOnpause_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOnloadedmetadata_id= JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOnloadeddata_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOnwaiting_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOnplaying_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOncanplay_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOncanplaythrough_id= JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOnseeking_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOnseeked_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOntimeupdate_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOnended_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOnratechange_id = JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOndurationchange_id= JSID_VOID;
|
||||
jsid nsDOMClassInfo::sOnvolumechange_id = JSID_VOID;
|
||||
|
||||
static const JSClass *sObjectClass = nsnull;
|
||||
JSPropertyOp nsDOMClassInfo::sXPCNativeWrapperGetPropertyOp = nsnull;
|
||||
@ -1787,6 +1807,28 @@ nsDOMClassInfo::DefineStaticJSVals(JSContext *cx)
|
||||
SET_JSID_TO_STRING(sOnpaste_id, cx, "onpaste");
|
||||
SET_JSID_TO_STRING(sJava_id, cx, "java");
|
||||
SET_JSID_TO_STRING(sPackages_id, cx, "Packages");
|
||||
#ifdef MOZ_MEDIA
|
||||
SET_JSID_TO_STRING(sOnloadstart_id, cx, "onloadstart");
|
||||
SET_JSID_TO_STRING(sOnprogress_id, cx, "onprogress");
|
||||
SET_JSID_TO_STRING(sOnsuspend_id, cx, "onsuspend");
|
||||
SET_JSID_TO_STRING(sOnemptied_id, cx, "onemptied");
|
||||
SET_JSID_TO_STRING(sOnstalled_id, cx, "onstalled");
|
||||
SET_JSID_TO_STRING(sOnplay_id, cx, "onplay");
|
||||
SET_JSID_TO_STRING(sOnpause_id, cx, "onpause");
|
||||
SET_JSID_TO_STRING(sOnloadedmetadata_id,cx, "onloadedmetadata");
|
||||
SET_JSID_TO_STRING(sOnloadeddata_id, cx, "onloadeddata");
|
||||
SET_JSID_TO_STRING(sOnwaiting_id, cx, "onwaiting");
|
||||
SET_JSID_TO_STRING(sOnplaying_id, cx, "onplaying");
|
||||
SET_JSID_TO_STRING(sOncanplay_id, cx, "oncanplay");
|
||||
SET_JSID_TO_STRING(sOncanplaythrough_id,cx, "oncanplaythrough");
|
||||
SET_JSID_TO_STRING(sOnseeking_id, cx, "onseeking");
|
||||
SET_JSID_TO_STRING(sOnseeked_id, cx, "onseeked");
|
||||
SET_JSID_TO_STRING(sOntimeupdate_id, cx, "ontimeupdate");
|
||||
SET_JSID_TO_STRING(sOnended_id, cx, "onended");
|
||||
SET_JSID_TO_STRING(sOnratechange_id, cx, "onratechange");
|
||||
SET_JSID_TO_STRING(sOndurationchange_id,cx, "ondurationchange");
|
||||
SET_JSID_TO_STRING(sOnvolumechange_id, cx, "onvolumechange");
|
||||
#endif // MOZ_MEDIA
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
@ -4815,6 +4857,26 @@ nsDOMClassInfo::ShutDown()
|
||||
sOnpaste_id = JSID_VOID;
|
||||
sJava_id = JSID_VOID;
|
||||
sPackages_id = JSID_VOID;
|
||||
sOnloadstart_id = JSID_VOID;
|
||||
sOnprogress_id = JSID_VOID;
|
||||
sOnsuspend_id = JSID_VOID;
|
||||
sOnemptied_id = JSID_VOID;
|
||||
sOnstalled_id = JSID_VOID;
|
||||
sOnplay_id = JSID_VOID;
|
||||
sOnpause_id = JSID_VOID;
|
||||
sOnloadedmetadata_id= JSID_VOID;
|
||||
sOnloadeddata_id = JSID_VOID;
|
||||
sOnwaiting_id = JSID_VOID;
|
||||
sOnplaying_id = JSID_VOID;
|
||||
sOncanplay_id = JSID_VOID;
|
||||
sOncanplaythrough_id= JSID_VOID;
|
||||
sOnseeking_id = JSID_VOID;
|
||||
sOnseeked_id = JSID_VOID;
|
||||
sOntimeupdate_id = JSID_VOID;
|
||||
sOnended_id = JSID_VOID;
|
||||
sOnratechange_id = JSID_VOID;
|
||||
sOndurationchange_id= JSID_VOID;
|
||||
sOnvolumechange_id = JSID_VOID;
|
||||
|
||||
NS_IF_RELEASE(sXPConnect);
|
||||
NS_IF_RELEASE(sSecMan);
|
||||
@ -7642,16 +7704,14 @@ nsEventReceiverSH::ReallyIsEventName(jsid id, jschar aFirstChar)
|
||||
case 'b' :
|
||||
return (id == sOnbeforeunload_id ||
|
||||
id == sOnblur_id);
|
||||
case 'e' :
|
||||
return id == sOnerror_id;
|
||||
case 'f' :
|
||||
return id == sOnfocus_id;
|
||||
case 'c' :
|
||||
return (id == sOnchange_id ||
|
||||
id == sOnclick_id ||
|
||||
id == sOncontextmenu_id ||
|
||||
id == sOncopy_id ||
|
||||
id == sOncut_id);
|
||||
id == sOncut_id ||
|
||||
id == sOncanplay_id ||
|
||||
id == sOncanplaythrough_id);
|
||||
case 'd' :
|
||||
return (id == sOndblclick_id ||
|
||||
id == sOndrag_id ||
|
||||
@ -7660,37 +7720,62 @@ nsEventReceiverSH::ReallyIsEventName(jsid id, jschar aFirstChar)
|
||||
id == sOndragleave_id ||
|
||||
id == sOndragover_id ||
|
||||
id == sOndragstart_id ||
|
||||
id == sOndrop_id);
|
||||
id == sOndrop_id ||
|
||||
id == sOndurationchange_id);
|
||||
case 'e' :
|
||||
return (id == sOnerror_id ||
|
||||
id == sOnemptied_id ||
|
||||
id == sOnended_id);
|
||||
case 'f' :
|
||||
return id == sOnfocus_id;
|
||||
case 'h' :
|
||||
return id == sOnhashchange_id;
|
||||
case 'l' :
|
||||
return id == sOnload_id;
|
||||
case 'p' :
|
||||
return (id == sOnpaint_id ||
|
||||
id == sOnpageshow_id ||
|
||||
id == sOnpagehide_id ||
|
||||
id == sOnpaste_id ||
|
||||
id == sOnpopstate_id);
|
||||
case 'k' :
|
||||
return (id == sOnkeydown_id ||
|
||||
id == sOnkeypress_id ||
|
||||
id == sOnkeyup_id);
|
||||
case 'u' :
|
||||
return id == sOnunload_id;
|
||||
case 'l' :
|
||||
return (id == sOnload_id ||
|
||||
id == sOnloadeddata_id ||
|
||||
id == sOnloadedmetadata_id ||
|
||||
id == sOnloadstart_id);
|
||||
case 'm' :
|
||||
return (id == sOnmousemove_id ||
|
||||
id == sOnmouseout_id ||
|
||||
id == sOnmouseover_id ||
|
||||
id == sOnmouseup_id ||
|
||||
id == sOnmousedown_id);
|
||||
case 'p' :
|
||||
return (id == sOnpaint_id ||
|
||||
id == sOnpageshow_id ||
|
||||
id == sOnpagehide_id ||
|
||||
id == sOnpaste_id ||
|
||||
id == sOnpopstate_id ||
|
||||
id == sOnpause_id ||
|
||||
id == sOnplay_id ||
|
||||
id == sOnplaying_id ||
|
||||
id == sOnprogress_id);
|
||||
case 'r' :
|
||||
return (id == sOnreadystatechange_id ||
|
||||
id == sOnreset_id ||
|
||||
id == sOnresize_id);
|
||||
id == sOnresize_id ||
|
||||
id == sOnratechange_id);
|
||||
case 's' :
|
||||
return (id == sOnscroll_id ||
|
||||
id == sOnselect_id ||
|
||||
id == sOnsubmit_id);
|
||||
id == sOnsubmit_id ||
|
||||
id == sOnseeked_id ||
|
||||
id == sOnseeking_id ||
|
||||
id == sOnstalled_id ||
|
||||
id == sOnsuspend_id);
|
||||
case 't':
|
||||
return id == sOntimeupdate_id;
|
||||
case 'u' :
|
||||
return id == sOnunload_id;
|
||||
case 'v':
|
||||
return id == sOnvolumechange_id;
|
||||
case 'w':
|
||||
return id == sOnwaiting_id;
|
||||
}
|
||||
|
||||
return PR_FALSE;
|
||||
|
@ -360,6 +360,26 @@ protected:
|
||||
static jsid sOnpaste_id;
|
||||
static jsid sJava_id;
|
||||
static jsid sPackages_id;
|
||||
static jsid sOnloadstart_id;
|
||||
static jsid sOnprogress_id;
|
||||
static jsid sOnsuspend_id;
|
||||
static jsid sOnemptied_id;
|
||||
static jsid sOnstalled_id;
|
||||
static jsid sOnplay_id;
|
||||
static jsid sOnpause_id;
|
||||
static jsid sOnloadedmetadata_id;
|
||||
static jsid sOnloadeddata_id;
|
||||
static jsid sOnwaiting_id;
|
||||
static jsid sOnplaying_id;
|
||||
static jsid sOncanplay_id;
|
||||
static jsid sOncanplaythrough_id;
|
||||
static jsid sOnseeking_id;
|
||||
static jsid sOnseeked_id;
|
||||
static jsid sOntimeupdate_id;
|
||||
static jsid sOnended_id;
|
||||
static jsid sOnratechange_id;
|
||||
static jsid sOndurationchange_id;
|
||||
static jsid sOnvolumechange_id;
|
||||
|
||||
static JSPropertyOp sXPCNativeWrapperGetPropertyOp;
|
||||
static JSPropertyOp sXrayWrapperPropertyHolderGetPropertyOp;
|
||||
|
Loading…
x
Reference in New Issue
Block a user