1/* 2 * Copyright (C) 2014 Google Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GOOGLE INC. OR 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26#include "config.h" 27 28#include "public/web/WebMediaDevicesRequest.h" 29 30#include "core/dom/Document.h" 31#include "modules/mediastream/MediaDevicesRequest.h" 32#include "platform/weborigin/SecurityOrigin.h" 33#include "public/platform/WebMediaDeviceInfo.h" 34#include "public/platform/WebString.h" 35#include "public/platform/WebVector.h" 36#include "public/web/WebDocument.h" 37#include "public/web/WebSecurityOrigin.h" 38#include "wtf/Vector.h" 39 40namespace blink { 41 42WebMediaDevicesRequest::WebMediaDevicesRequest(MediaDevicesRequest* request) 43 : m_private(request) 44{ 45} 46 47void WebMediaDevicesRequest::reset() 48{ 49 m_private.reset(); 50} 51 52WebSecurityOrigin WebMediaDevicesRequest::securityOrigin() const 53{ 54 ASSERT(!isNull() && m_private->executionContext()); 55 return WebSecurityOrigin(m_private->executionContext()->securityOrigin()); 56} 57 58WebDocument WebMediaDevicesRequest::ownerDocument() const 59{ 60 ASSERT(!isNull()); 61 return WebDocument(m_private->ownerDocument()); 62} 63 64void WebMediaDevicesRequest::requestSucceeded(WebVector<WebMediaDeviceInfo> webDevices) 65{ 66 ASSERT(!isNull()); 67 68 MediaDeviceInfoVector devices(webDevices.size()); 69 for (size_t i = 0; i < webDevices.size(); ++i) 70 devices[i] = MediaDeviceInfo::create(webDevices[i]); 71 72 m_private->succeed(devices); 73} 74 75bool WebMediaDevicesRequest::equals(const WebMediaDevicesRequest& other) const 76{ 77 if (isNull() || other.isNull()) 78 return false; 79 return m_private.get() == other.m_private.get(); 80} 81 82void WebMediaDevicesRequest::assign(const WebMediaDevicesRequest& other) 83{ 84 m_private = other.m_private; 85} 86 87WebMediaDevicesRequest::operator MediaDevicesRequest*() const 88{ 89 return m_private.get(); 90} 91 92} // namespace blink 93