Name all the GLib timeout sources
[WebKit-https.git] / Source / WebCore / platform / ContentType.cpp
index c094d54..77d2058 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006, 2008 Apple Inc.  All rights reserved.
+ * Copyright (C) 2006, 2008, 2013 Apple Inc.  All rights reserved.
  * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/)
  * Copyright (C) 2009 Google Inc.  All rights reserved.
  *
@@ -45,11 +45,17 @@ String ContentType::parameter(const String& parameterName) const
     if (semi != notFound) {
         size_t start = strippedType.find(parameterName, semi + 1, false);
         if (start != notFound) {
-            start = strippedType.find('=', start + 6);
+            start = strippedType.find('=', start + parameterName.length());
             if (start != notFound) {
-                size_t end = strippedType.find(';', start + 6);
-                if (end == notFound)
-                    end = strippedType.length();
+                size_t quote = strippedType.find('\"', start + 1);
+                size_t end = strippedType.find('\"', start + 2);
+                if (quote != notFound && end != notFound)
+                    start = quote;
+                else {
+                    end = strippedType.find(';', start + 1);
+                    if (end == notFound)
+                        end = strippedType.length();
+                }
                 parameterValue = strippedType.substring(start + 1, end - (start + 1)).stripWhiteSpace();
             }
         }
@@ -70,4 +76,19 @@ String ContentType::type() const
     return strippedType;
 }
 
+Vector<String> ContentType::codecs() const
+{
+    String codecsParameter = parameter(ASCIILiteral("codecs"));
+
+    if (codecsParameter.isEmpty())
+        return Vector<String>();
+
+    Vector<String> codecs;
+    codecsParameter.split(',', codecs);
+    for (size_t i = 0; i < codecs.size(); ++i)
+        codecs[i] = codecs[i].simplifyWhiteSpace();
+
+    return codecs;
+}
+
 } // namespace WebCore