1474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org/*
2474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * Copyright (C) 2007, 2010, 2011, 2012, 2013 Apple Inc. All rights reserved.
3474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org *
4474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * Redistribution and use in source and binary forms, with or without
5474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * modification, are permitted provided that the following conditions
6474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * are met:
7474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * 1. Redistributions of source code must retain the above copyright
8474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org *    notice, this list of conditions and the following disclaimer.
9474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * 2. Redistributions in binary form must reproduce the above copyright
10474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org *    notice, this list of conditions and the following disclaimer in the
11474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org *    documentation and/or other materials provided with the distribution.
12474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org *
136fefe538d859300e7febe78271828198c10f1b52fgalligan@chromium.org * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org */
25474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org
26474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#include "config.h"
27474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#include "core/html/HTMLAudioElement.h"
28474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org
29474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#include "core/HTMLNames.h"
30474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#include "core/dom/shadow/ShadowRoot.h"
31474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org
32474eb7536515fb785e925cc9375d22817c416851hclam@chromium.orgnamespace blink {
33474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org
34474eb7536515fb785e925cc9375d22817c416851hclam@chromium.orgusing namespace HTMLNames;
35474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org
36474eb7536515fb785e925cc9375d22817c416851hclam@chromium.orgHTMLAudioElement::HTMLAudioElement(Document& document)
37474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org    : HTMLMediaElement(audioTag, document)
38474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org{
39474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org}
40474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org
41474eb7536515fb785e925cc9375d22817c416851hclam@chromium.orgPassRefPtrWillBeRawPtr<HTMLAudioElement> HTMLAudioElement::create(Document& document)
42474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org{
43474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org    RefPtrWillBeRawPtr<HTMLAudioElement> audio = adoptRefWillBeNoop(new HTMLAudioElement(document));
44474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org    audio->ensureUserAgentShadowRoot();
45474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org    audio->suspendIfNeeded();
46474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org    return audio.release();
47474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org}
48474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org
49474eb7536515fb785e925cc9375d22817c416851hclam@chromium.orgPassRefPtrWillBeRawPtr<HTMLAudioElement> HTMLAudioElement::createForJSConstructor(Document& document, const AtomicString& src)
50474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org{
51474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org    RefPtrWillBeRawPtr<HTMLAudioElement> audio = adoptRefWillBeNoop(new HTMLAudioElement(document));
52474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org    audio->ensureUserAgentShadowRoot();
53474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org    audio->setPreload(AtomicString("auto", AtomicString::ConstructFromLiteral));
54474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org    if (!src.isNull())
55474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org        audio->setSrc(src);
56474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org    audio->suspendIfNeeded();
57474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org    return audio.release();
58474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org}
59474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org
60474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org}
61474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org