- Revision
- 129764
- Author
- tom...@google.com
- Date
- 2012-09-27 07:56:53 -0700 (Thu, 27 Sep 2012)
Log Message
MediaStream API: Enhance MediaConstraints to make it easier to get the constraint data
https://bugs.webkit.org/show_bug.cgi?id=97559
Reviewed by Adam Barth.
Source/Platform:
Refactored to mimic the new MediaConstraints api.
* chromium/public/WebMediaConstraints.h:
(WebCore):
(WebKit::WebMediaConstraint::WebMediaConstraint):
(WebMediaConstraint):
(WebKit):
(WebMediaConstraints):
Source/WebCore:
Instead of just returning the names, return a pair of name and value.
Existing tests cover this patch.
* Modules/mediastream/MediaConstraintsImpl.cpp:
(WebCore::MediaConstraintsImpl::initialize):
(WebCore::MediaConstraintsImpl::getMandatoryConstraints):
(WebCore::MediaConstraintsImpl::getOptionalConstraints):
(WebCore::MediaConstraintsImpl::getOptionalConstraintValue):
* Modules/mediastream/MediaConstraintsImpl.h:
(MediaConstraintsImpl):
* platform/chromium/support/WebMediaConstraints.cpp:
(WebKit::WebMediaConstraint::WebMediaConstraint):
(WebKit):
(WebKit::WebMediaConstraints::getMandatoryConstraints):
(WebKit::WebMediaConstraints::getOptionalConstraints):
* platform/mediastream/MediaConstraints.h:
(WebCore::MediaConstraint::MediaConstraint):
(MediaConstraint):
(WebCore):
(MediaConstraints):
Tools:
Refactoring for the new WebMediaConstraints api.
* DumpRenderTree/chromium/MockConstraints.cpp:
(MockConstraints::verify):
Modified Paths
Diff
Modified: trunk/Source/Platform/ChangeLog (129763 => 129764)
--- trunk/Source/Platform/ChangeLog 2012-09-27 13:51:04 UTC (rev 129763)
+++ trunk/Source/Platform/ChangeLog 2012-09-27 14:56:53 UTC (rev 129764)
@@ -1,5 +1,21 @@
2012-09-27 Tommy Widenflycht <tom...@google.com>
+ MediaStream API: Enhance MediaConstraints to make it easier to get the constraint data
+ https://bugs.webkit.org/show_bug.cgi?id=97559
+
+ Reviewed by Adam Barth.
+
+ Refactored to mimic the new MediaConstraints api.
+
+ * chromium/public/WebMediaConstraints.h:
+ (WebCore):
+ (WebKit::WebMediaConstraint::WebMediaConstraint):
+ (WebMediaConstraint):
+ (WebKit):
+ (WebMediaConstraints):
+
+2012-09-27 Tommy Widenflycht <tom...@google.com>
+
MediaStream API: Update getUserMedia to match the latest specification
https://bugs.webkit.org/show_bug.cgi?id=97540
Modified: trunk/Source/Platform/chromium/public/WebMediaConstraints.h (129763 => 129764)
--- trunk/Source/Platform/chromium/public/WebMediaConstraints.h 2012-09-27 13:51:04 UTC (rev 129763)
+++ trunk/Source/Platform/chromium/public/WebMediaConstraints.h 2012-09-27 14:56:53 UTC (rev 129764)
@@ -38,11 +38,31 @@
#include "WebVector.h"
namespace WebCore {
+struct MediaConstraint;
class MediaConstraints;
}
namespace WebKit {
+struct WebMediaConstraint {
+ WebMediaConstraint()
+ {
+ }
+
+ WebMediaConstraint(WebString name, WebString value)
+ : m_name(name)
+ , m_value(value)
+ {
+ }
+
+#if WEBKIT_IMPLEMENTATION
+ WebMediaConstraint(const WebCore::MediaConstraint&);
+#endif
+
+ WebString m_name;
+ WebString m_value;
+};
+
class WebMediaConstraints {
public:
WebMediaConstraints() { }
@@ -60,8 +80,8 @@
WEBKIT_EXPORT void reset();
bool isNull() const { return m_private.isNull(); }
- WEBKIT_EXPORT void getMandatoryConstraintNames(WebVector<WebString>& names) const;
- WEBKIT_EXPORT void getOptionalConstraintNames(WebVector<WebString>& names) const;
+ WEBKIT_EXPORT void getMandatoryConstraints(WebVector<WebMediaConstraint>&) const;
+ WEBKIT_EXPORT void getOptionalConstraints(WebVector<WebMediaConstraint>&) const;
WEBKIT_EXPORT bool getMandatoryConstraintValue(const WebString& name, WebString& value) const;
WEBKIT_EXPORT bool getOptionalConstraintValue(const WebString& name, WebString& value) const;
Modified: trunk/Source/WebCore/ChangeLog (129763 => 129764)
--- trunk/Source/WebCore/ChangeLog 2012-09-27 13:51:04 UTC (rev 129763)
+++ trunk/Source/WebCore/ChangeLog 2012-09-27 14:56:53 UTC (rev 129764)
@@ -1,3 +1,32 @@
+2012-09-27 Tommy Widenflycht <tom...@google.com>
+
+ MediaStream API: Enhance MediaConstraints to make it easier to get the constraint data
+ https://bugs.webkit.org/show_bug.cgi?id=97559
+
+ Reviewed by Adam Barth.
+
+ Instead of just returning the names, return a pair of name and value.
+
+ Existing tests cover this patch.
+
+ * Modules/mediastream/MediaConstraintsImpl.cpp:
+ (WebCore::MediaConstraintsImpl::initialize):
+ (WebCore::MediaConstraintsImpl::getMandatoryConstraints):
+ (WebCore::MediaConstraintsImpl::getOptionalConstraints):
+ (WebCore::MediaConstraintsImpl::getOptionalConstraintValue):
+ * Modules/mediastream/MediaConstraintsImpl.h:
+ (MediaConstraintsImpl):
+ * platform/chromium/support/WebMediaConstraints.cpp:
+ (WebKit::WebMediaConstraint::WebMediaConstraint):
+ (WebKit):
+ (WebKit::WebMediaConstraints::getMandatoryConstraints):
+ (WebKit::WebMediaConstraints::getOptionalConstraints):
+ * platform/mediastream/MediaConstraints.h:
+ (WebCore::MediaConstraint::MediaConstraint):
+ (MediaConstraint):
+ (WebCore):
+ (MediaConstraints):
+
2012-09-27 Ilya Tikhonovsky <loi...@chromium.org>
Web Inspector: NMI: move visited and countObjectSize methods implementation into separate class.
Modified: trunk/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.cpp (129763 => 129764)
--- trunk/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.cpp 2012-09-27 13:51:04 UTC (rev 129763)
+++ trunk/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.cpp 2012-09-27 14:56:53 UTC (rev 129764)
@@ -102,8 +102,7 @@
ok = constraint.get(key, value);
if (!ok)
return false;
- m_optionalConstraintNames.append(key);
- m_optionalConstraintValues.append(value);
+ m_optionalConstraints.append(MediaConstraint(key, value));
}
}
@@ -114,18 +113,18 @@
{
}
-void MediaConstraintsImpl::getMandatoryConstraintNames(Vector<String>& names) const
+void MediaConstraintsImpl::getMandatoryConstraints(Vector<MediaConstraint>& constraints) const
{
- names.clear();
+ constraints.clear();
HashMap<String, String>::const_iterator i = m_mandatoryConstraints.begin();
for (; i != m_mandatoryConstraints.end(); ++i)
- names.append(i->first);
+ constraints.append(MediaConstraint(i->first, i->second));
}
-void MediaConstraintsImpl::getOptionalConstraintNames(Vector<String>& names) const
+void MediaConstraintsImpl::getOptionalConstraints(Vector<MediaConstraint>& constraints) const
{
- names.clear();
- names = m_optionalConstraintNames;
+ constraints.clear();
+ constraints.append(m_optionalConstraints);
}
bool MediaConstraintsImpl::getMandatoryConstraintValue(const String& name, String& value) const
@@ -140,12 +139,15 @@
bool MediaConstraintsImpl::getOptionalConstraintValue(const String& name, String& value) const
{
- size_t index = m_optionalConstraintNames.find(name);
- if (index == notFound)
- return false;
+ Vector<MediaConstraint>::const_iterator i = m_optionalConstraints.begin();
+ for (; i != m_optionalConstraints.end(); ++i) {
+ if (i->m_name == name) {
+ value = i->m_value;
+ return true;
+ }
+ }
- value = m_optionalConstraintValues[index];
- return true;
+ return false;
}
} // namespace WebCore
Modified: trunk/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h (129763 => 129764)
--- trunk/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h 2012-09-27 13:51:04 UTC (rev 129763)
+++ trunk/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h 2012-09-27 14:56:53 UTC (rev 129764)
@@ -47,8 +47,8 @@
static PassRefPtr<MediaConstraintsImpl> create(const Dictionary&, ExceptionCode&);
virtual ~MediaConstraintsImpl();
- virtual void getMandatoryConstraintNames(Vector<String>& names) const OVERRIDE;
- virtual void getOptionalConstraintNames(Vector<String>& names) const OVERRIDE;
+ virtual void getMandatoryConstraints(Vector<MediaConstraint>&) const OVERRIDE;
+ virtual void getOptionalConstraints(Vector<MediaConstraint>&) const OVERRIDE;
virtual bool getMandatoryConstraintValue(const String& name, String& value) const OVERRIDE;
virtual bool getOptionalConstraintValue(const String& name, String& value) const OVERRIDE;
@@ -58,8 +58,7 @@
bool initialize(const Dictionary&);
HashMap<String, String> m_mandatoryConstraints;
- Vector<String> m_optionalConstraintNames;
- Vector<String> m_optionalConstraintValues;
+ Vector<MediaConstraint> m_optionalConstraints;
};
} // namespace WebCore
Modified: trunk/Source/WebCore/platform/chromium/support/WebMediaConstraints.cpp (129763 => 129764)
--- trunk/Source/WebCore/platform/chromium/support/WebMediaConstraints.cpp 2012-09-27 13:51:04 UTC (rev 129763)
+++ trunk/Source/WebCore/platform/chromium/support/WebMediaConstraints.cpp 2012-09-27 14:56:53 UTC (rev 129764)
@@ -40,6 +40,12 @@
namespace WebKit {
+WebMediaConstraint::WebMediaConstraint(const WebCore::MediaConstraint& other)
+ : m_name(other.m_name)
+ , m_value(other.m_value)
+{
+}
+
WebMediaConstraints::WebMediaConstraints(const PassRefPtr<MediaConstraints>& constraints)
: m_private(constraints)
{
@@ -60,22 +66,22 @@
m_private.reset();
}
-void WebMediaConstraints::getMandatoryConstraintNames(WebVector<WebString>& names) const
+void WebMediaConstraints::getMandatoryConstraints(WebVector<WebMediaConstraint>& constraints) const
{
ASSERT(!isNull());
- Vector<String> constraintNames;
- m_private->getMandatoryConstraintNames(constraintNames);
- WebVector<WebString> result(constraintNames);
- names.swap(result);
+ Vector<MediaConstraint> mandatoryConstraints;
+ m_private->getMandatoryConstraints(mandatoryConstraints);
+ WebVector<WebMediaConstraint> result(mandatoryConstraints);
+ constraints.swap(result);
}
-void WebMediaConstraints::getOptionalConstraintNames(WebVector<WebString>& names) const
+void WebMediaConstraints::getOptionalConstraints(WebVector<WebMediaConstraint>& constraints) const
{
ASSERT(!isNull());
- Vector<String> constraintNames;
- m_private->getOptionalConstraintNames(constraintNames);
- WebVector<WebString> result(constraintNames);
- names.swap(result);
+ Vector<MediaConstraint> optionalConstraints;
+ m_private->getOptionalConstraints(optionalConstraints);
+ WebVector<WebMediaConstraint> result(optionalConstraints);
+ constraints.swap(result);
}
bool WebMediaConstraints::getMandatoryConstraintValue(const WebString& name, WebString& value) const
Modified: trunk/Source/WebCore/platform/mediastream/MediaConstraints.h (129763 => 129764)
--- trunk/Source/WebCore/platform/mediastream/MediaConstraints.h 2012-09-27 13:51:04 UTC (rev 129763)
+++ trunk/Source/WebCore/platform/mediastream/MediaConstraints.h 2012-09-27 14:56:53 UTC (rev 129764)
@@ -38,12 +38,23 @@
namespace WebCore {
+struct MediaConstraint {
+ MediaConstraint(String name, String value)
+ : m_name(name)
+ , m_value(value)
+ {
+ }
+
+ String m_name;
+ String m_value;
+};
+
class MediaConstraints : public RefCounted<MediaConstraints> {
public:
virtual ~MediaConstraints() { }
- virtual void getMandatoryConstraintNames(Vector<String>& names) const = 0;
- virtual void getOptionalConstraintNames(Vector<String>& names) const = 0;
+ virtual void getMandatoryConstraints(Vector<MediaConstraint>&) const = 0;
+ virtual void getOptionalConstraints(Vector<MediaConstraint>&) const = 0;
virtual bool getMandatoryConstraintValue(const String& name, String& value) const = 0;
virtual bool getOptionalConstraintValue(const String& name, String& value) const = 0;
Modified: trunk/Tools/ChangeLog (129763 => 129764)
--- trunk/Tools/ChangeLog 2012-09-27 13:51:04 UTC (rev 129763)
+++ trunk/Tools/ChangeLog 2012-09-27 14:56:53 UTC (rev 129764)
@@ -1,5 +1,17 @@
2012-09-27 Tommy Widenflycht <tom...@google.com>
+ MediaStream API: Enhance MediaConstraints to make it easier to get the constraint data
+ https://bugs.webkit.org/show_bug.cgi?id=97559
+
+ Reviewed by Adam Barth.
+
+ Refactoring for the new WebMediaConstraints api.
+
+ * DumpRenderTree/chromium/MockConstraints.cpp:
+ (MockConstraints::verify):
+
+2012-09-27 Tommy Widenflycht <tom...@google.com>
+
MediaStream API: Rename MockConstraints::verify to verifyConstraints
https://bugs.webkit.org/show_bug.cgi?id=97779
Modified: trunk/Tools/DumpRenderTree/chromium/MockConstraints.cpp (129763 => 129764)
--- trunk/Tools/DumpRenderTree/chromium/MockConstraints.cpp 2012-09-27 13:51:04 UTC (rev 129763)
+++ trunk/Tools/DumpRenderTree/chromium/MockConstraints.cpp 2012-09-27 14:56:53 UTC (rev 129764)
@@ -51,29 +51,23 @@
bool verifyConstraints(const WebMediaConstraints& constraints)
{
- WebVector<WebString> mandatoryConstraintNames;
- constraints.getMandatoryConstraintNames(mandatoryConstraintNames);
- if (mandatoryConstraintNames.size()) {
- for (size_t i = 0; i < mandatoryConstraintNames.size(); ++i) {
- if (!isSupported(mandatoryConstraintNames[i]))
+ WebVector<WebMediaConstraint> mandatoryConstraints;
+ constraints.getMandatoryConstraints(mandatoryConstraints);
+ if (mandatoryConstraints.size()) {
+ for (size_t i = 0; i < mandatoryConstraints.size(); ++i) {
+ const WebMediaConstraint& curr = mandatoryConstraints[i];
+ if (!isSupported(curr.m_name) || curr.m_value != "1")
return false;
- WebString value;
- constraints.getMandatoryConstraintValue(mandatoryConstraintNames[i], value);
- if (value != "1")
- return false;
}
}
- WebVector<WebString> optionalConstraintNames;
- constraints.getOptionalConstraintNames(optionalConstraintNames);
- if (optionalConstraintNames.size()) {
- for (size_t i = 0; i < optionalConstraintNames.size(); ++i) {
- if (!isValid(optionalConstraintNames[i]))
+ WebVector<WebMediaConstraint> optionalConstraints;
+ constraints.getOptionalConstraints(optionalConstraints);
+ if (optionalConstraints.size()) {
+ for (size_t i = 0; i < optionalConstraints.size(); ++i) {
+ const WebMediaConstraint& curr = optionalConstraints[i];
+ if (!isValid(curr.m_name) || curr.m_value != "0")
return false;
- WebString value;
- constraints.getOptionalConstraintValue(optionalConstraintNames[i], value);
- if (value != "0")
- return false;
}
}