Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1835)

Unified Diff: Source/web/WebMediaDevicesRequest.cpp

Issue 145583015: MediaStream API: Implement Navigator.getMediaDevices Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/web/WebMediaDevicesRequest.cpp
diff --git a/Source/platform/exported/WebMediaStreamTrackSourcesRequest.cpp b/Source/web/WebMediaDevicesRequest.cpp
similarity index 47%
copy from Source/platform/exported/WebMediaStreamTrackSourcesRequest.cpp
copy to Source/web/WebMediaDevicesRequest.cpp
index 400dbf1e05b6b001b7e8ba0a8eacecc5488bdcb3..df72d859da86e2605b77faa8dfb382307ba70c86 100644
--- a/Source/platform/exported/WebMediaStreamTrackSourcesRequest.cpp
+++ b/Source/web/WebMediaDevicesRequest.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2014 Google Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -25,69 +25,75 @@
#include "config.h"
-#include "public/platform/WebMediaStreamTrackSourcesRequest.h"
+#include "WebMediaDevicesRequest.h"
-#include "platform/mediastream/MediaStreamTrackSourcesRequest.h"
-#include "public/platform/WebSourceInfo.h"
-#include "wtf/PassOwnPtr.h"
+#include "WebDocument.h"
+#include "WebSecurityOrigin.h"
+#include "core/dom/Document.h"
+#include "modules/mediastream/MediaDevicesRequest.h"
+#include "platform/weborigin/SecurityOrigin.h"
+#include "public/platform/WebMediaDeviceInfo.h"
+#include "public/platform/WebString.h"
+#include "public/platform/WebVector.h"
+#include "wtf/Vector.h"
using namespace WebCore;
namespace blink {
-namespace {
-
-class ExtraDataContainer : public MediaStreamTrackSourcesRequest::ExtraData {
-public:
- ExtraDataContainer(PassOwnPtr<WebMediaStreamTrackSourcesRequest::ExtraData> extraData) : m_extraData(extraData) { }
-
- WebMediaStreamTrackSourcesRequest::ExtraData* extraData() { return m_extraData.get(); }
-
-private:
- OwnPtr<WebMediaStreamTrackSourcesRequest::ExtraData> m_extraData;
-};
-
-} // namespace
-
-WebMediaStreamTrackSourcesRequest::WebMediaStreamTrackSourcesRequest(const PassRefPtr<MediaStreamTrackSourcesRequest>& request)
+WebMediaDevicesRequest::WebMediaDevicesRequest(const PassRefPtr<MediaDevicesRequest>& request)
: m_private(request)
{
}
-void WebMediaStreamTrackSourcesRequest::assign(const WebMediaStreamTrackSourcesRequest& other)
+WebMediaDevicesRequest::WebMediaDevicesRequest(MediaDevicesRequest* request)
+ : m_private(request)
{
- m_private = other.m_private;
}
-void WebMediaStreamTrackSourcesRequest::reset()
+void WebMediaDevicesRequest::reset()
{
m_private.reset();
}
-WebString WebMediaStreamTrackSourcesRequest::origin() const
+WebSecurityOrigin WebMediaDevicesRequest::securityOrigin() const
{
- ASSERT(m_private.get());
- return m_private->origin();
+ ASSERT(!isNull() && m_private->executionContext());
+ return WebSecurityOrigin(m_private->executionContext()->securityOrigin());
}
-void WebMediaStreamTrackSourcesRequest::requestSucceeded(const WebVector<WebSourceInfo>& sourceInfos) const
+WebDocument WebMediaDevicesRequest::ownerDocument() const
{
- ASSERT(m_private.get());
- m_private->requestSucceeded(sourceInfos);
+ ASSERT(!isNull());
+ return WebDocument(m_private->ownerDocument());
}
-WebMediaStreamTrackSourcesRequest::ExtraData* WebMediaStreamTrackSourcesRequest::extraData() const
+void WebMediaDevicesRequest::requestSucceeded(WebVector<WebMediaDeviceInfo> webDevices)
{
- MediaStreamTrackSourcesRequest::ExtraData* data = m_private->extraData();
- if (!data)
- return 0;
- return static_cast<ExtraDataContainer*>(data)->extraData();
+ ASSERT(!isNull());
+
+ MediaDeviceInfoVector devices(webDevices.size());
+ for (size_t i = 0; i < webDevices.size(); ++i)
+ devices[i] = MediaDeviceInfo::create(webDevices[i]);
+
+ m_private->succeed(devices);
}
-void WebMediaStreamTrackSourcesRequest::setExtraData(ExtraData* extraData)
+bool WebMediaDevicesRequest::equals(const WebMediaDevicesRequest& other) const
{
- m_private->setExtraData(adoptPtr(new ExtraDataContainer(adoptPtr(extraData))));
+ if (isNull() || other.isNull())
+ return false;
+ return m_private.get() == other.m_private.get();
}
-} // namespace blink
+void WebMediaDevicesRequest::assign(const WebMediaDevicesRequest& other)
+{
+ m_private = other.m_private;
+}
+WebMediaDevicesRequest::operator MediaDevicesRequest*() const
+{
+ return m_private.get();
+}
+
+} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698