diff options
Diffstat (limited to 'catapult/telemetry/telemetry/internal/actions/play.js')
-rw-r--r-- | catapult/telemetry/telemetry/internal/actions/play.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/catapult/telemetry/telemetry/internal/actions/play.js b/catapult/telemetry/telemetry/internal/actions/play.js new file mode 100644 index 00000000..c646d78a --- /dev/null +++ b/catapult/telemetry/telemetry/internal/actions/play.js @@ -0,0 +1,35 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// This file performs actions on media elements. +(function() { + function playMedia(selector) { + // Performs the "Play" action on media satisfying selector. + var mediaElements = window.__findMediaElements(selector); + for (var i = 0; i < mediaElements.length; i++) { + console.log('Playing element: ' + mediaElements[i].src); + play(mediaElements[i]); + } + } + + function play(element) { + if (element instanceof HTMLMediaElement) + playHTML5Element(element); + else + throw new Error('Can not play non HTML5 media elements.'); + } + + function playHTML5Element(element) { + window.__registerHTML5ErrorEvents(element); + window.__registerHTML5EventCompleted(element, 'playing'); + window.__registerHTML5EventCompleted(element, 'ended'); + + var willPlayEvent = document.createEvent('Event'); + willPlayEvent.initEvent('willPlay', false, false); + element.dispatchEvent(willPlayEvent); + element.play(); + } + + window.__playMedia = playMedia; +})(); |