Implement StyleRule copying
https://bugs.webkit.org/show_bug.cgi?id=84752

Reviewed by Andreas Kling.
        
We'll need this for copy-on-write when style sheet data is shared between documents.

Implement copy() and copy constructor for style rules their children as needed.
        
The code is not yet used.

* css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore):
* css/CSSSelectorList.h:
(CSSSelectorList):
* css/MediaList.h:
(WebCore::MediaQuerySet::copy):
(MediaQuerySet):
* css/MediaQuery.cpp:
(WebCore::MediaQuery::MediaQuery):
(WebCore):
* css/MediaQuery.h:
(MediaQuery):
(WebCore::MediaQuery::copy):
* css/MediaQueryExp.h:
(WebCore::MediaQueryExp::copy):
(MediaQueryExp):
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::StylePropertySet):
(WebCore):
(WebCore::StylePropertySet::copy):
* css/StylePropertySet.h:
        
    Make this copy parse mode too. As a result ElementAttributeData no longer needs to set it explicitly after copying.

(StylePropertySet):
* css/StyleRule.cpp:
(WebCore::StyleRuleBase::copy):
(WebCore):
(WebCore::StyleRule::StyleRule):
(WebCore::StyleRulePage::StyleRulePage):
(WebCore::StyleRuleFontFace::StyleRuleFontFace):
(WebCore::StyleRuleBlock::StyleRuleBlock):
(WebCore::StyleRuleMedia::StyleRuleMedia):
(WebCore::StyleRuleRegion::StyleRuleRegion):
* css/StyleRule.h:
(StyleRuleBase):
(WebCore::StyleRuleBase::StyleRuleBase):
(WebCore::StyleRule::copy):
(StyleRule):
(WebCore::StyleRuleFontFace::copy):
(StyleRuleFontFace):
(WebCore::StyleRulePage::copy):
(StyleRulePage):
(StyleRuleBlock):
(WebCore::StyleRuleMedia::copy):
(StyleRuleMedia):
(WebCore::StyleRuleRegion::copy):
(StyleRuleRegion):
* css/WebKitCSSKeyframesRule.cpp:
(WebCore):
(WebCore::StyleRuleKeyframes::StyleRuleKeyframes):
* css/WebKitCSSKeyframesRule.h:
(WebCore):
(WebCore::StyleRuleKeyframes::copy):
(StyleRuleKeyframes):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115115 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/css/WebKitCSSKeyframesRule.h b/Source/WebCore/css/WebKitCSSKeyframesRule.h
index 98ff148..81abf87 100644
--- a/Source/WebCore/css/WebKitCSSKeyframesRule.h
+++ b/Source/WebCore/css/WebKitCSSKeyframesRule.h
@@ -27,6 +27,7 @@
 #define WebKitCSSKeyframesRule_h
 
 #include "CSSRule.h"
+#include "ExceptionCode.h"
 #include "StyleRule.h"
 #include <wtf/Forward.h>
 #include <wtf/RefPtr.h>
@@ -38,8 +39,6 @@
 class StyleKeyframe;
 class WebKitCSSKeyframeRule;
 
-typedef int ExceptionCode;
-    
 class StyleRuleKeyframes : public StyleRuleBase {
 public:
     static PassRefPtr<StyleRuleKeyframes> create() { return adoptRef(new StyleRuleKeyframes()); }
@@ -57,9 +56,12 @@
     
     int findKeyframeIndex(const String& key) const;
 
+    PassRefPtr<StyleRuleKeyframes> copy() const { return adoptRef(new StyleRuleKeyframes(*this)); }
+
 private:
     StyleRuleKeyframes();
-    
+    StyleRuleKeyframes(const StyleRuleKeyframes&);
+
     Vector<RefPtr<StyleKeyframe> > m_keyframes;
     AtomicString m_name;
 };