tizen beta release
[framework/web/webkit-efl.git] / Source / WebCore / css / CSSSelectorList.cpp
index ee23a0d..8043053 100755 (executable)
  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 #include "config.h"
 #include "CSSSelectorList.h"
 
 #include "CSSParserValues.h"
+#include <wtf/text/StringBuilder.h>
 
 namespace WebCore {
 
-CSSSelectorList::~CSSSelectorList() 
+CSSSelectorList::~CSSSelectorList()
 {
     deleteSelectors();
 }
-    
+
 void CSSSelectorList::adopt(CSSSelectorList& list)
 {
     deleteSelectors();
@@ -48,7 +49,7 @@ void CSSSelectorList::adoptSelectorVector(Vector<OwnPtr<CSSParserSelector> >& se
     deleteSelectors();
     const size_t vectorSize = selectorVector.size();
     size_t flattenedSize = 0;
-    for (size_t i = 0; i < vectorSize; ++i) {        
+    for (size_t i = 0; i < vectorSize; ++i) {
         for (CSSParserSelector* selector = selectorVector[i].get(); selector; selector = selector->tagHistory())
             ++flattenedSize;
     }
@@ -105,6 +106,18 @@ void CSSSelectorList::deleteSelectors()
     }
 }
 
+String CSSSelectorList::selectorsText() const
+{
+    StringBuilder result;
+
+    for (CSSSelector* s = first(); s; s = next(s)) {
+        if (s != first())
+            result.append(", ");
+        result.append(s->selectorText());
+    }
+
+    return result.toString();
+}
 
 template <typename Functor>
 static bool forEachTagSelector(Functor& functor, CSSSelector* selector)