Title: [129764] trunk
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;
         }
     }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to