<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[175391] trunk/Source/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/175391">175391</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2014-10-30 16:08:20 -0700 (Thu, 30 Oct 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Clean up virtual functions in css/
https://bugs.webkit.org/show_bug.cgi?id=138230

Reviewed by Benjamin Poulain.

Clean up virtual functions in css/ by:
- Making virtual functions final when possible
- Making classes final when possible
- Using 'override' when appropriate
- Explicitly marking functions / destructors as virtual when they are
  inherently virtual
- Making isXXX() virtual functions private on XXX classes to avoid
  unnecessary type checks

No new tests, no behavior change.

* WebCore.exp.in:
* css/CSSBasicShapes.h:
* css/CSSCharsetRule.h:
* css/CSSComputedStyleDeclaration.h:
* css/CSSCrossfadeValue.h:
* css/CSSFilterImageValue.h:
* css/CSSFontFaceLoadEvent.h:
* css/CSSFontFaceRule.h:
* css/CSSFontFaceSource.h:
* css/CSSImportRule.h:
* css/CSSMediaRule.h:
* css/CSSPageRule.h:
* css/CSSRuleList.h:
(WebCore::StaticCSSRuleList::ref): Deleted.
(WebCore::StaticCSSRuleList::styleSheet): Deleted.
(WebCore::StaticCSSRuleList::length): Deleted.
(WebCore::StaticCSSRuleList::item): Deleted.
(WebCore::LiveCSSRuleList::ref): Deleted.
(WebCore::LiveCSSRuleList::deref): Deleted.
(WebCore::LiveCSSRuleList::length): Deleted.
(WebCore::LiveCSSRuleList::item): Deleted.
(WebCore::LiveCSSRuleList::styleSheet): Deleted.
* css/CSSStyleRule.h:
* css/CSSSupportsRule.h:
* css/CSSUnknownRule.h:
* css/FontLoader.h:
* css/PropertySetCSSStyleDeclaration.h:
(WebCore::PropertySetCSSStyleDeclaration::parentElement):
* css/WebKitCSSKeyframeRule.h:
* css/WebKitCSSViewportRule.h:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCoreexpin">trunk/Source/WebCore/WebCore.exp.in</a></li>
<li><a href="#trunkSourceWebCorecssCSSBasicShapesh">trunk/Source/WebCore/css/CSSBasicShapes.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSCharsetRuleh">trunk/Source/WebCore/css/CSSCharsetRule.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSComputedStyleDeclarationh">trunk/Source/WebCore/css/CSSComputedStyleDeclaration.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSCrossfadeValueh">trunk/Source/WebCore/css/CSSCrossfadeValue.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSFilterImageValueh">trunk/Source/WebCore/css/CSSFilterImageValue.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSFontFaceLoadEventh">trunk/Source/WebCore/css/CSSFontFaceLoadEvent.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSFontFaceRuleh">trunk/Source/WebCore/css/CSSFontFaceRule.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSFontFaceSourceh">trunk/Source/WebCore/css/CSSFontFaceSource.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSImportRuleh">trunk/Source/WebCore/css/CSSImportRule.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSMediaRuleh">trunk/Source/WebCore/css/CSSMediaRule.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSPageRuleh">trunk/Source/WebCore/css/CSSPageRule.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSRuleListh">trunk/Source/WebCore/css/CSSRuleList.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSStyleRuleh">trunk/Source/WebCore/css/CSSStyleRule.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSSupportsRuleh">trunk/Source/WebCore/css/CSSSupportsRule.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSUnknownRuleh">trunk/Source/WebCore/css/CSSUnknownRule.h</a></li>
<li><a href="#trunkSourceWebCorecssFontLoaderh">trunk/Source/WebCore/css/FontLoader.h</a></li>
<li><a href="#trunkSourceWebCorecssPropertySetCSSStyleDeclarationh">trunk/Source/WebCore/css/PropertySetCSSStyleDeclaration.h</a></li>
<li><a href="#trunkSourceWebCorecssWebKitCSSKeyframeRuleh">trunk/Source/WebCore/css/WebKitCSSKeyframeRule.h</a></li>
<li><a href="#trunkSourceWebCorecssWebKitCSSViewportRuleh">trunk/Source/WebCore/css/WebKitCSSViewportRule.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/ChangeLog        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -1,3 +1,52 @@
</span><ins>+2014-10-30  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Clean up virtual functions in css/
+        https://bugs.webkit.org/show_bug.cgi?id=138230
+
+        Reviewed by Benjamin Poulain.
+
+        Clean up virtual functions in css/ by:
+        - Making virtual functions final when possible
+        - Making classes final when possible
+        - Using 'override' when appropriate
+        - Explicitly marking functions / destructors as virtual when they are
+          inherently virtual
+        - Making isXXX() virtual functions private on XXX classes to avoid
+          unnecessary type checks
+
+        No new tests, no behavior change.
+
+        * WebCore.exp.in:
+        * css/CSSBasicShapes.h:
+        * css/CSSCharsetRule.h:
+        * css/CSSComputedStyleDeclaration.h:
+        * css/CSSCrossfadeValue.h:
+        * css/CSSFilterImageValue.h:
+        * css/CSSFontFaceLoadEvent.h:
+        * css/CSSFontFaceRule.h:
+        * css/CSSFontFaceSource.h:
+        * css/CSSImportRule.h:
+        * css/CSSMediaRule.h:
+        * css/CSSPageRule.h:
+        * css/CSSRuleList.h:
+        (WebCore::StaticCSSRuleList::ref): Deleted.
+        (WebCore::StaticCSSRuleList::styleSheet): Deleted.
+        (WebCore::StaticCSSRuleList::length): Deleted.
+        (WebCore::StaticCSSRuleList::item): Deleted.
+        (WebCore::LiveCSSRuleList::ref): Deleted.
+        (WebCore::LiveCSSRuleList::deref): Deleted.
+        (WebCore::LiveCSSRuleList::length): Deleted.
+        (WebCore::LiveCSSRuleList::item): Deleted.
+        (WebCore::LiveCSSRuleList::styleSheet): Deleted.
+        * css/CSSStyleRule.h:
+        * css/CSSSupportsRule.h:
+        * css/CSSUnknownRule.h:
+        * css/FontLoader.h:
+        * css/PropertySetCSSStyleDeclaration.h:
+        (WebCore::PropertySetCSSStyleDeclaration::parentElement):
+        * css/WebKitCSSKeyframeRule.h:
+        * css/WebKitCSSViewportRule.h:
+
</ins><span class="cx"> 2014-10-30  Tim Horton  &lt;timothy_horton@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Long spins under rangeExpandedAroundPosition on Yahoo Mail
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCoreexpin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.exp.in (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.exp.in        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/WebCore.exp.in        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -1062,6 +1062,8 @@
</span><span class="cx"> __ZN7WebCore27AuthenticationChallengeBase7compareERKNS_23AuthenticationChallengeES3_
</span><span class="cx"> __ZN7WebCore27AuthenticationChallengeBase7nullifyEv
</span><span class="cx"> __ZN7WebCore27AuthenticationChallengeBaseC2Ev
</span><ins>+__ZN7WebCore27CSSComputedStyleDeclaration3refEv
+__ZN7WebCore27CSSComputedStyleDeclaration5derefEv
</ins><span class="cx"> __ZN7WebCore27CSSComputedStyleDeclarationC1EN3WTF10PassRefPtrINS_4NodeEEEbRKNS1_6StringE
</span><span class="cx"> __ZN7WebCore27DeviceOrientationClientMock14setOrientationEN3WTF10PassRefPtrINS_21DeviceOrientationDataEEE
</span><span class="cx"> __ZN7WebCore27DeviceOrientationClientMockC1Ev
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSBasicShapesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSBasicShapes.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSBasicShapes.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/CSSBasicShapes.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx">     RefPtr&lt;CSSPrimitiveValue&gt; m_referenceBox;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-class CSSBasicShapeInset : public CSSBasicShape {
</del><ins>+class CSSBasicShapeInset final : public CSSBasicShape {
</ins><span class="cx"> public:
</span><span class="cx">     static PassRefPtr&lt;CSSBasicShapeInset&gt; create() { return adoptRef(new CSSBasicShapeInset); }
</span><span class="cx"> 
</span><span class="lines">@@ -110,13 +110,14 @@
</span><span class="cx">     void setBottomRightRadius(PassRefPtr&lt;CSSPrimitiveValue&gt; radius) { m_bottomRightRadius = radius; }
</span><span class="cx">     void setBottomLeftRadius(PassRefPtr&lt;CSSPrimitiveValue&gt; radius) { m_bottomLeftRadius = radius; }
</span><span class="cx"> 
</span><del>-    virtual Type type() const override { return CSSBasicShapeInsetType; }
</del><span class="cx">     virtual String cssText() const override;
</span><span class="cx">     virtual bool equals(const CSSBasicShape&amp;) const override;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     CSSBasicShapeInset() { }
</span><span class="cx"> 
</span><ins>+    virtual Type type() const override { return CSSBasicShapeInsetType; }
+
</ins><span class="cx">     RefPtr&lt;CSSPrimitiveValue&gt; m_top;
</span><span class="cx">     RefPtr&lt;CSSPrimitiveValue&gt; m_right;
</span><span class="cx">     RefPtr&lt;CSSPrimitiveValue&gt; m_bottom;
</span><span class="lines">@@ -128,11 +129,10 @@
</span><span class="cx">     RefPtr&lt;CSSPrimitiveValue&gt; m_bottomLeftRadius;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-class CSSBasicShapeCircle : public CSSBasicShape {
</del><ins>+class CSSBasicShapeCircle final : public CSSBasicShape {
</ins><span class="cx"> public:
</span><span class="cx">     static PassRefPtr&lt;CSSBasicShapeCircle&gt; create() { return adoptRef(new CSSBasicShapeCircle); }
</span><span class="cx"> 
</span><del>-    virtual Type type() const override { return CSSBasicShapeCircleType; }
</del><span class="cx">     virtual String cssText() const override;
</span><span class="cx">     virtual bool equals(const CSSBasicShape&amp;) const override;
</span><span class="cx"> 
</span><span class="lines">@@ -147,12 +147,14 @@
</span><span class="cx"> private:
</span><span class="cx">     CSSBasicShapeCircle() { }
</span><span class="cx"> 
</span><ins>+    virtual Type type() const override { return CSSBasicShapeCircleType; }
+
</ins><span class="cx">     RefPtr&lt;CSSPrimitiveValue&gt; m_centerX;
</span><span class="cx">     RefPtr&lt;CSSPrimitiveValue&gt; m_centerY;
</span><span class="cx">     RefPtr&lt;CSSPrimitiveValue&gt; m_radius;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-class CSSBasicShapeEllipse : public CSSBasicShape {
</del><ins>+class CSSBasicShapeEllipse final : public CSSBasicShape {
</ins><span class="cx"> public:
</span><span class="cx">     static PassRefPtr&lt;CSSBasicShapeEllipse&gt; create() { return adoptRef(new CSSBasicShapeEllipse); }
</span><span class="cx"> 
</span><span class="lines">@@ -166,20 +168,21 @@
</span><span class="cx">     void setRadiusX(PassRefPtr&lt;CSSPrimitiveValue&gt; radiusX) { m_radiusX = radiusX; }
</span><span class="cx">     void setRadiusY(PassRefPtr&lt;CSSPrimitiveValue&gt; radiusY) { m_radiusY = radiusY; }
</span><span class="cx"> 
</span><del>-    virtual Type type() const override { return CSSBasicShapeEllipseType; }
</del><span class="cx">     virtual String cssText() const override;
</span><span class="cx">     virtual bool equals(const CSSBasicShape&amp;) const override;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     CSSBasicShapeEllipse() { }
</span><span class="cx"> 
</span><ins>+    virtual Type type() const override { return CSSBasicShapeEllipseType; }
+
</ins><span class="cx">     RefPtr&lt;CSSPrimitiveValue&gt; m_centerX;
</span><span class="cx">     RefPtr&lt;CSSPrimitiveValue&gt; m_centerY;
</span><span class="cx">     RefPtr&lt;CSSPrimitiveValue&gt; m_radiusX;
</span><span class="cx">     RefPtr&lt;CSSPrimitiveValue&gt; m_radiusY;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-class CSSBasicShapePolygon : public CSSBasicShape {
</del><ins>+class CSSBasicShapePolygon final : public CSSBasicShape {
</ins><span class="cx"> public:
</span><span class="cx">     static PassRefPtr&lt;CSSBasicShapePolygon&gt; create() { return adoptRef(new CSSBasicShapePolygon); }
</span><span class="cx"> 
</span><span class="lines">@@ -196,7 +199,6 @@
</span><span class="cx">     void setWindRule(WindRule w) { m_windRule = w; }
</span><span class="cx">     WindRule windRule() const { return m_windRule; }
</span><span class="cx"> 
</span><del>-    virtual Type type() const override { return CSSBasicShapePolygonType; }
</del><span class="cx">     virtual String cssText() const override;
</span><span class="cx">     virtual bool equals(const CSSBasicShape&amp;) const override;
</span><span class="cx"> 
</span><span class="lines">@@ -206,6 +208,8 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    virtual Type type() const override { return CSSBasicShapePolygonType; }
+
</ins><span class="cx">     Vector&lt;RefPtr&lt;CSSPrimitiveValue&gt;&gt; m_values;
</span><span class="cx">     WindRule m_windRule;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSCharsetRuleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSCharsetRule.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSCharsetRule.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/CSSCharsetRule.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -35,7 +35,6 @@
</span><span class="cx"> 
</span><span class="cx">     virtual ~CSSCharsetRule() { }
</span><span class="cx"> 
</span><del>-    virtual CSSRule::Type type() const override { return CHARSET_RULE; }
</del><span class="cx">     virtual String cssText() const override;
</span><span class="cx">     virtual void reattach(StyleRuleBase&amp;) override { }
</span><span class="cx"> 
</span><span class="lines">@@ -43,6 +42,8 @@
</span><span class="cx">     void setEncoding(const String&amp; encoding, ExceptionCode&amp;) { m_encoding = encoding; }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><ins>+    virtual CSSRule::Type type() const override { return CHARSET_RULE; }
+
</ins><span class="cx">     CSSCharsetRule(CSSStyleSheet* parent, const String&amp; encoding);
</span><span class="cx"> 
</span><span class="cx">     String m_encoding;
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSComputedStyleDeclarationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">     bool m_allowVisitedStyle;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-class CSSComputedStyleDeclaration : public CSSStyleDeclaration {
</del><ins>+class CSSComputedStyleDeclaration final : public CSSStyleDeclaration {
</ins><span class="cx"> public:
</span><span class="cx">     static PassRefPtr&lt;CSSComputedStyleDeclaration&gt; create(PassRefPtr&lt;Node&gt; node, bool allowVisitedStyle = false, const String&amp; pseudoElementName = String())
</span><span class="cx">     {
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSCrossfadeValueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSCrossfadeValue.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSCrossfadeValue.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/CSSCrossfadeValue.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -80,7 +80,7 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    class CrossfadeSubimageObserverProxy : public CachedImageClient {
</del><ins>+    class CrossfadeSubimageObserverProxy final : public CachedImageClient {
</ins><span class="cx">     public:
</span><span class="cx">         CrossfadeSubimageObserverProxy(CSSCrossfadeValue* ownerValue)
</span><span class="cx">             : m_ownerValue(ownerValue)
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         virtual ~CrossfadeSubimageObserverProxy() { }
</span><del>-        virtual void imageChanged(CachedImage*, const IntRect* = 0) override;
</del><ins>+        virtual void imageChanged(CachedImage*, const IntRect* = nullptr) override;
</ins><span class="cx">         void setReady(bool ready) { m_ready = ready; }
</span><span class="cx">     private:
</span><span class="cx">         CSSCrossfadeValue* m_ownerValue;
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSFilterImageValueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSFilterImageValue.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSFilterImageValue.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/CSSFilterImageValue.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    class FilterSubimageObserverProxy : public CachedImageClient {
</del><ins>+    class FilterSubimageObserverProxy final : public CachedImageClient {
</ins><span class="cx">     public:
</span><span class="cx">         FilterSubimageObserverProxy(CSSFilterImageValue* ownerValue)
</span><span class="cx">             : m_ownerValue(ownerValue)
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         virtual ~FilterSubimageObserverProxy() { }
</span><del>-        virtual void imageChanged(CachedImage*, const IntRect* = 0) override;
</del><ins>+        virtual void imageChanged(CachedImage*, const IntRect* = nullptr) override;
</ins><span class="cx">         void setReady(bool ready) { m_ready = ready; }
</span><span class="cx">     private:
</span><span class="cx">         CSSFilterImageValue* m_ownerValue;
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSFontFaceLoadEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSFontFaceLoadEvent.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSFontFaceLoadEvent.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/CSSFontFaceLoadEvent.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx">     RefPtr&lt;DOMError&gt; error;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-class CSSFontFaceLoadEvent : public Event {
</del><ins>+class CSSFontFaceLoadEvent final : public Event {
</ins><span class="cx"> public:
</span><span class="cx">     static PassRefPtr&lt;CSSFontFaceLoadEvent&gt; create()
</span><span class="cx">     {
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx">     CSSFontFaceRule* fontface() const { return m_fontface.get(); }
</span><span class="cx">     DOMError* error() const { return m_error.get(); }
</span><span class="cx"> 
</span><del>-    virtual EventInterface eventInterface() const;
</del><ins>+    virtual EventInterface eventInterface() const override;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     CSSFontFaceLoadEvent();
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSFontFaceRuleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSFontFaceRule.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSFontFaceRule.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/CSSFontFaceRule.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -36,7 +36,6 @@
</span><span class="cx"> 
</span><span class="cx">     virtual ~CSSFontFaceRule();
</span><span class="cx"> 
</span><del>-    virtual CSSRule::Type type() const override { return FONT_FACE_RULE; }
</del><span class="cx">     virtual String cssText() const override;
</span><span class="cx">     virtual void reattach(StyleRuleBase&amp;) override;
</span><span class="cx"> 
</span><span class="lines">@@ -45,6 +44,8 @@
</span><span class="cx"> private:
</span><span class="cx">     CSSFontFaceRule(StyleRuleFontFace&amp;, CSSStyleSheet* parent);
</span><span class="cx"> 
</span><ins>+    virtual CSSRule::Type type() const override { return FONT_FACE_RULE; }
+
</ins><span class="cx">     Ref&lt;StyleRuleFontFace&gt; m_fontFaceRule;
</span><span class="cx">     RefPtr&lt;StyleRuleCSSStyleDeclaration&gt; m_propertiesCSSOMWrapper;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSFontFaceSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSFontFaceSource.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSFontFaceSource.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/CSSFontFaceSource.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -44,9 +44,9 @@
</span><span class="cx"> class SVGFontFaceElement;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-class CSSFontFaceSource : public CachedFontClient {
</del><ins>+class CSSFontFaceSource final : public CachedFontClient {
</ins><span class="cx"> public:
</span><del>-    CSSFontFaceSource(const String&amp;, CachedFont* = 0);
</del><ins>+    CSSFontFaceSource(const String&amp;, CachedFont* = nullptr);
</ins><span class="cx">     virtual ~CSSFontFaceSource();
</span><span class="cx"> 
</span><span class="cx">     bool isLoaded() const;
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx"> 
</span><span class="cx">     void setFontFace(CSSFontFace* face) { m_face = face; }
</span><span class="cx"> 
</span><del>-    virtual void fontLoaded(CachedFont*);
</del><ins>+    virtual void fontLoaded(CachedFont*) override;
</ins><span class="cx"> 
</span><span class="cx">     PassRefPtr&lt;SimpleFontData&gt; getFontData(const FontDescription&amp;, bool syntheticBold, bool syntheticItalic, CSSFontSelector*);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSImportRuleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSImportRule.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSImportRule.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/CSSImportRule.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -37,7 +37,6 @@
</span><span class="cx">     
</span><span class="cx">     virtual ~CSSImportRule();
</span><span class="cx"> 
</span><del>-    virtual CSSRule::Type type() const override { return IMPORT_RULE; }
</del><span class="cx">     virtual String cssText() const override;
</span><span class="cx">     virtual void reattach(StyleRuleBase&amp;) override;
</span><span class="cx"> 
</span><span class="lines">@@ -48,6 +47,8 @@
</span><span class="cx"> private:
</span><span class="cx">     CSSImportRule(StyleRuleImport&amp;, CSSStyleSheet*);
</span><span class="cx"> 
</span><ins>+    virtual CSSRule::Type type() const override { return IMPORT_RULE; }
+
</ins><span class="cx">     Ref&lt;StyleRuleImport&gt; m_importRule;
</span><span class="cx">     mutable RefPtr&lt;MediaList&gt; m_mediaCSSOMWrapper;
</span><span class="cx">     mutable RefPtr&lt;CSSStyleSheet&gt; m_styleSheetCSSOMWrapper;
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSMediaRuleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSMediaRule.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSMediaRule.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/CSSMediaRule.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -36,7 +36,6 @@
</span><span class="cx"> 
</span><span class="cx">     virtual ~CSSMediaRule();
</span><span class="cx"> 
</span><del>-    virtual CSSRule::Type type() const override { return MEDIA_RULE; }
</del><span class="cx">     virtual void reattach(StyleRuleBase&amp;) override;
</span><span class="cx">     virtual String cssText() const override;
</span><span class="cx"> 
</span><span class="lines">@@ -45,6 +44,8 @@
</span><span class="cx"> private:
</span><span class="cx">     CSSMediaRule(StyleRuleMedia&amp;, CSSStyleSheet*);
</span><span class="cx"> 
</span><ins>+    virtual CSSRule::Type type() const override { return MEDIA_RULE; }
+
</ins><span class="cx">     MediaQuerySet* mediaQueries() const;
</span><span class="cx">     
</span><span class="cx">     mutable RefPtr&lt;MediaList&gt; m_mediaCSSOMWrapper;
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPageRuleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPageRule.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPageRule.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/CSSPageRule.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -37,7 +37,6 @@
</span><span class="cx"> 
</span><span class="cx">     virtual ~CSSPageRule();
</span><span class="cx"> 
</span><del>-    virtual CSSRule::Type type() const override { return PAGE_RULE; }
</del><span class="cx">     virtual String cssText() const override;
</span><span class="cx">     virtual void reattach(StyleRuleBase&amp;) override;
</span><span class="cx"> 
</span><span class="lines">@@ -48,7 +47,9 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     CSSPageRule(StyleRulePage&amp;, CSSStyleSheet*);
</span><del>-    
</del><ins>+
+    virtual CSSRule::Type type() const override { return PAGE_RULE; }
+
</ins><span class="cx">     Ref&lt;StyleRulePage&gt; m_pageRule;
</span><span class="cx">     mutable RefPtr&lt;StyleRuleCSSStyleDeclaration&gt; m_propertiesCSSOMWrapper;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSRuleListh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSRuleList.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSRuleList.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/CSSRuleList.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -50,23 +50,23 @@
</span><span class="cx">     CSSRuleList();
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-class StaticCSSRuleList : public CSSRuleList {
</del><ins>+class StaticCSSRuleList final : public CSSRuleList {
</ins><span class="cx"> public:
</span><span class="cx">     static PassRefPtr&lt;StaticCSSRuleList&gt; create() { return adoptRef(new StaticCSSRuleList()); }
</span><span class="cx"> 
</span><del>-    virtual void ref() { ++m_refCount; }
-    virtual void deref();
</del><ins>+    virtual void ref() override { ++m_refCount; }
+    virtual void deref() override;
</ins><span class="cx"> 
</span><span class="cx">     Vector&lt;RefPtr&lt;CSSRule&gt;&gt;&amp; rules() { return m_rules; }
</span><span class="cx">     
</span><del>-    virtual CSSStyleSheet* styleSheet() const { return 0; }
</del><ins>+    virtual CSSStyleSheet* styleSheet() const override { return nullptr; }
</ins><span class="cx"> 
</span><span class="cx"> private:    
</span><span class="cx">     StaticCSSRuleList();
</span><span class="cx">     ~StaticCSSRuleList();
</span><span class="cx"> 
</span><del>-    virtual unsigned length() const { return m_rules.size(); }
-    virtual CSSRule* item(unsigned index) const { return index &lt; m_rules.size() ? m_rules[index].get() : 0; }
</del><ins>+    virtual unsigned length() const override { return m_rules.size(); }
+    virtual CSSRule* item(unsigned index) const override { return index &lt; m_rules.size() ? m_rules[index].get() : nullptr; }
</ins><span class="cx"> 
</span><span class="cx">     Vector&lt;RefPtr&lt;CSSRule&gt;&gt; m_rules;
</span><span class="cx">     unsigned m_refCount;
</span><span class="lines">@@ -74,17 +74,17 @@
</span><span class="cx"> 
</span><span class="cx"> // The rule owns the live list.
</span><span class="cx"> template &lt;class Rule&gt;
</span><del>-class LiveCSSRuleList : public CSSRuleList {
</del><ins>+class LiveCSSRuleList final : public CSSRuleList {
</ins><span class="cx"> public:
</span><span class="cx">     LiveCSSRuleList(Rule* rule) : m_rule(rule) { }
</span><span class="cx">     
</span><del>-    virtual void ref() { m_rule-&gt;ref(); }
-    virtual void deref() { m_rule-&gt;deref(); }
</del><ins>+    virtual void ref() override { m_rule-&gt;ref(); }
+    virtual void deref() override { m_rule-&gt;deref(); }
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    virtual unsigned length() const { return m_rule-&gt;length(); }
-    virtual CSSRule* item(unsigned index) const  { return m_rule-&gt;item(index); }
-    virtual CSSStyleSheet* styleSheet() const { return m_rule-&gt;parentStyleSheet(); }
</del><ins>+    virtual unsigned length() const override { return m_rule-&gt;length(); }
+    virtual CSSRule* item(unsigned index) const override { return m_rule-&gt;item(index); }
+    virtual CSSStyleSheet* styleSheet() const override { return m_rule-&gt;parentStyleSheet(); }
</ins><span class="cx">     
</span><span class="cx">     Rule* m_rule;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSStyleRuleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSStyleRule.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSStyleRule.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/CSSStyleRule.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -36,7 +36,6 @@
</span><span class="cx"> 
</span><span class="cx">     virtual ~CSSStyleRule();
</span><span class="cx"> 
</span><del>-    virtual CSSRule::Type type() const { return STYLE_RULE; }
</del><span class="cx">     virtual String cssText() const override;
</span><span class="cx">     virtual void reattach(StyleRuleBase&amp;) override;
</span><span class="cx"> 
</span><span class="lines">@@ -51,6 +50,8 @@
</span><span class="cx"> private:
</span><span class="cx">     CSSStyleRule(StyleRule&amp;, CSSStyleSheet*);
</span><span class="cx"> 
</span><ins>+    virtual CSSRule::Type type() const override { return STYLE_RULE; }
+
</ins><span class="cx">     String generateSelectorText() const;
</span><span class="cx"> 
</span><span class="cx">     Ref&lt;StyleRule&gt; m_styleRule;
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSSupportsRuleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSSupportsRule.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSSupportsRule.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/CSSSupportsRule.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -45,13 +45,14 @@
</span><span class="cx"> 
</span><span class="cx">     virtual ~CSSSupportsRule() { }
</span><span class="cx"> 
</span><del>-    virtual CSSRule::Type type() const override { return SUPPORTS_RULE; }
</del><span class="cx">     virtual String cssText() const override;
</span><span class="cx"> 
</span><span class="cx">     String conditionText() const;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     CSSSupportsRule(StyleRuleSupports&amp;, CSSStyleSheet*);
</span><ins>+
+    virtual CSSRule::Type type() const override { return SUPPORTS_RULE; }
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSUnknownRuleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSUnknownRule.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSUnknownRule.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/CSSUnknownRule.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -28,12 +28,18 @@
</span><span class="cx"> 
</span><span class="cx"> class CSSUnknownRule final : public CSSRule {
</span><span class="cx"> public:
</span><del>-    CSSUnknownRule() : CSSRule(0) { }
</del><ins>+    CSSUnknownRule()
+        : CSSRule(nullptr)
+    {
+    }
+
</ins><span class="cx">     virtual ~CSSUnknownRule() { }
</span><span class="cx"> 
</span><del>-    virtual CSSRule::Type type() const override { return UNKNOWN_RULE; }
</del><span class="cx">     virtual String cssText() const override { return String(); }
</span><span class="cx">     virtual void reattach(StyleRuleBase&amp;) override { }
</span><ins>+
+private:
+    virtual CSSRule::Type type() const override { return UNKNOWN_RULE; }
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorecssFontLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/FontLoader.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/FontLoader.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/FontLoader.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> class LoadFontCallback;
</span><span class="cx"> class ScriptExecutionContext;
</span><span class="cx"> 
</span><del>-class FontLoader : public RefCounted&lt;FontLoader&gt;, public ActiveDOMObject, public EventTarget {
</del><ins>+class FontLoader final : public RefCounted&lt;FontLoader&gt;, public ActiveDOMObject, public EventTarget {
</ins><span class="cx"> public:
</span><span class="cx">     static PassRefPtr&lt;FontLoader&gt; create(Document* document)
</span><span class="cx">     {
</span><span class="lines">@@ -70,8 +70,8 @@
</span><span class="cx"> 
</span><span class="cx">     bool loading() const { return m_numLoadingFromCSS &gt; 0 || m_numLoadingFromJS &gt; 0; }
</span><span class="cx"> 
</span><del>-    virtual ScriptExecutionContext* scriptExecutionContext() const;
-    virtual EventTargetInterface eventTargetInterface() const;
</del><ins>+    virtual ScriptExecutionContext* scriptExecutionContext() const override;
+    virtual EventTargetInterface eventTargetInterface() const override;
</ins><span class="cx"> 
</span><span class="cx">     using RefCounted&lt;FontLoader&gt;::ref;
</span><span class="cx">     using RefCounted&lt;FontLoader&gt;::deref;
</span></span></pre></div>
<a id="trunkSourceWebCorecssPropertySetCSSStyleDeclarationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/PropertySetCSSStyleDeclaration.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/PropertySetCSSStyleDeclaration.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/PropertySetCSSStyleDeclaration.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx"> public:
</span><span class="cx">     PropertySetCSSStyleDeclaration(MutableStyleProperties* propertySet) : m_propertySet(propertySet) { }
</span><span class="cx">     
</span><del>-    virtual StyledElement* parentElement() const { return 0; }
</del><ins>+    virtual StyledElement* parentElement() const { return nullptr; }
</ins><span class="cx">     virtual void clearParentElement() { ASSERT_NOT_REACHED(); }
</span><span class="cx">     StyleSheetContents* contextStyleSheet() const;
</span><span class="cx">     
</span><span class="lines">@@ -52,23 +52,23 @@
</span><span class="cx">     virtual void deref() override;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    virtual CSSRule* parentRule() const override { return 0; };
-    virtual unsigned length() const override;
-    virtual String item(unsigned index) const override;
-    virtual PassRefPtr&lt;CSSValue&gt; getPropertyCSSValue(const String&amp; propertyName) override;
-    virtual String getPropertyValue(const String&amp; propertyName) override;
-    virtual String getPropertyPriority(const String&amp; propertyName) override;
-    virtual String getPropertyShorthand(const String&amp; propertyName) override;
-    virtual bool isPropertyImplicit(const String&amp; propertyName) override;
-    virtual void setProperty(const String&amp; propertyName, const String&amp; value, const String&amp; priority, ExceptionCode&amp;) override;
-    virtual String removeProperty(const String&amp; propertyName, ExceptionCode&amp;) override;
-    virtual String cssText() const override;
-    virtual void setCssText(const String&amp;, ExceptionCode&amp;) override;
-    virtual PassRefPtr&lt;CSSValue&gt; getPropertyCSSValueInternal(CSSPropertyID) override;
-    virtual String getPropertyValueInternal(CSSPropertyID) override;
-    virtual void setPropertyInternal(CSSPropertyID, const String&amp; value, bool important, ExceptionCode&amp;) override;
</del><ins>+    virtual CSSRule* parentRule() const override { return nullptr; }
+    virtual unsigned length() const override final;
+    virtual String item(unsigned index) const override final;
+    virtual PassRefPtr&lt;CSSValue&gt; getPropertyCSSValue(const String&amp; propertyName) override final;
+    virtual String getPropertyValue(const String&amp; propertyName) override final;
+    virtual String getPropertyPriority(const String&amp; propertyName) override final;
+    virtual String getPropertyShorthand(const String&amp; propertyName) override final;
+    virtual bool isPropertyImplicit(const String&amp; propertyName) override final;
+    virtual void setProperty(const String&amp; propertyName, const String&amp; value, const String&amp; priority, ExceptionCode&amp;) override final;
+    virtual String removeProperty(const String&amp; propertyName, ExceptionCode&amp;) override final;
+    virtual String cssText() const override final;
+    virtual void setCssText(const String&amp;, ExceptionCode&amp;) override final;
+    virtual PassRefPtr&lt;CSSValue&gt; getPropertyCSSValueInternal(CSSPropertyID) override final;
+    virtual String getPropertyValueInternal(CSSPropertyID) override final;
+    virtual void setPropertyInternal(CSSPropertyID, const String&amp; value, bool important, ExceptionCode&amp;) override final;
</ins><span class="cx">     
</span><del>-    virtual PassRef&lt;MutableStyleProperties&gt; copyProperties() const override;
</del><ins>+    virtual PassRef&lt;MutableStyleProperties&gt; copyProperties() const override final;
</ins><span class="cx"> 
</span><span class="cx">     CSSValue* cloneAndCacheForCSSOM(CSSValue*);
</span><span class="cx">     
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx">     std::unique_ptr&lt;HashMap&lt;CSSValue*, RefPtr&lt;CSSValue&gt;&gt;&gt; m_cssomCSSValueClones;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-class StyleRuleCSSStyleDeclaration : public PropertySetCSSStyleDeclaration
</del><ins>+class StyleRuleCSSStyleDeclaration final : public PropertySetCSSStyleDeclaration
</ins><span class="cx"> {
</span><span class="cx"> public:
</span><span class="cx">     static PassRefPtr&lt;StyleRuleCSSStyleDeclaration&gt; create(MutableStyleProperties&amp; propertySet, CSSRule&amp; parentRule)
</span><span class="lines">@@ -111,7 +111,7 @@
</span><span class="cx">     CSSRule* m_parentRule;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-class InlineCSSStyleDeclaration : public PropertySetCSSStyleDeclaration
</del><ins>+class InlineCSSStyleDeclaration final : public PropertySetCSSStyleDeclaration
</ins><span class="cx"> {
</span><span class="cx"> public:
</span><span class="cx">     InlineCSSStyleDeclaration(MutableStyleProperties* propertySet, StyledElement* parentElement)
</span></span></pre></div>
<a id="trunkSourceWebCorecssWebKitCSSKeyframeRuleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/WebKitCSSKeyframeRule.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/WebKitCSSKeyframeRule.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/WebKitCSSKeyframeRule.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -69,7 +69,6 @@
</span><span class="cx"> public:
</span><span class="cx">     virtual ~WebKitCSSKeyframeRule();
</span><span class="cx"> 
</span><del>-    virtual CSSRule::Type type() const override { return WEBKIT_KEYFRAME_RULE; }
</del><span class="cx">     virtual String cssText() const override { return m_keyframe-&gt;cssText(); }
</span><span class="cx">     virtual void reattach(StyleRuleBase&amp;) override;
</span><span class="cx"> 
</span><span class="lines">@@ -81,6 +80,8 @@
</span><span class="cx"> private:
</span><span class="cx">     WebKitCSSKeyframeRule(StyleKeyframe&amp;, WebKitCSSKeyframesRule* parent);
</span><span class="cx"> 
</span><ins>+    virtual CSSRule::Type type() const override { return WEBKIT_KEYFRAME_RULE; }
+
</ins><span class="cx">     Ref&lt;StyleKeyframe&gt; m_keyframe;
</span><span class="cx">     mutable RefPtr&lt;StyleRuleCSSStyleDeclaration&gt; m_propertiesCSSOMWrapper;
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCorecssWebKitCSSViewportRuleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/WebKitCSSViewportRule.h (175390 => 175391)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/WebKitCSSViewportRule.h        2014-10-30 23:03:26 UTC (rev 175390)
+++ trunk/Source/WebCore/css/WebKitCSSViewportRule.h        2014-10-30 23:08:20 UTC (rev 175391)
</span><span class="lines">@@ -47,9 +47,8 @@
</span><span class="cx">     {
</span><span class="cx">         return adoptRef(new WebKitCSSViewportRule(viewportRule, sheet));
</span><span class="cx">     }
</span><del>-    ~WebKitCSSViewportRule();
</del><ins>+    virtual ~WebKitCSSViewportRule();
</ins><span class="cx"> 
</span><del>-    virtual CSSRule::Type type() const override { return WEBKIT_VIEWPORT_RULE; }
</del><span class="cx">     virtual String cssText() const override;
</span><span class="cx">     virtual void reattach(StyleRuleBase&amp;) override;
</span><span class="cx"> 
</span><span class="lines">@@ -58,6 +57,8 @@
</span><span class="cx"> private:
</span><span class="cx">     WebKitCSSViewportRule(StyleRuleViewport&amp;, CSSStyleSheet*);
</span><span class="cx"> 
</span><ins>+    virtual CSSRule::Type type() const override { return WEBKIT_VIEWPORT_RULE; }
+
</ins><span class="cx">     Ref&lt;StyleRuleViewport&gt; m_viewportRule;
</span><span class="cx">     mutable RefPtr&lt;StyleRuleCSSStyleDeclaration&gt; m_propertiesCSSOMWrapper;
</span><span class="cx"> };
</span></span></pre>
</div>
</div>

</body>
</html>