Clean up virtual functions in html/
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 29 Oct 2014 15:09:57 +0000 (15:09 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 29 Oct 2014 15:09:57 +0000 (15:09 +0000)
https://bugs.webkit.org/show_bug.cgi?id=138166

Reviewed by Andreas Kling.

Clean up virtual functions in html/ 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
- Dropping virtual destructors when the class does not have subclasses
  and mark the class as final, to get rid of unnecessary vtables
- Making isXXX() virtual functions private on XXX classes to avoid
  unnecessary type checks
- De-virtualizing some functions that do not need to be virtual
- Dropping final for virtual functions in classes already marked as
  final

No new tests, no behavior change.

* html/ButtonInputType.h:
* html/CheckboxInputType.h:
* html/ColorInputType.h:
* html/DOMSettableTokenList.h:
* html/DateInputType.h:
* html/DateTimeInputType.h:
* html/DateTimeLocalInputType.h:
* html/EmailInputType.h:
* html/FTPDirectoryDocument.h:
* html/HTMLAnchorElement.h:
* html/HTMLDetailsElement.cpp:
* html/HTMLFormControlElement.h:
* html/HTMLFormControlsCollection.h:
* html/HTMLFrameElement.h:
* html/HTMLFrameElementBase.h:
* html/HTMLFrameOwnerElement.h:
* html/HTMLInputElement.h:
* html/HTMLMarqueeElement.h:
* html/HTMLMediaElement.h:
* html/HTMLMediaSession.h:
(WebCore::HTMLMediaSession::requiresPlaybackTargetRouteMonitoring): Deleted.
* html/HTMLMeterElement.h:
* html/HTMLNameCollection.h:
* html/HTMLObjectElement.h:
* html/HTMLOptGroupElement.h:
* html/HTMLOptionElement.h:
* html/HTMLSpanElement.h:
* html/HTMLStyleElement.h:
* html/HTMLSummaryElement.cpp:
* html/HTMLSummaryElement.h:
* html/HTMLUnknownElement.h:
* html/HTMLVideoElement.h:
* html/HiddenInputType.h:
* html/ImageInputType.h:
* html/MediaKeyEvent.h:
* html/MonthInputType.h:
* html/NumberInputType.h:
* html/PasswordInputType.h:
* html/PublicURLManager.h:
* html/RadioInputType.h:
* html/ResetInputType.h:
* html/SubmitInputType.h:
* html/TelephoneInputType.h:
* html/TextInputType.h:
* html/TimeInputType.h:
* html/URLInputType.h:
* html/WeekInputType.h:
* html/canvas/ANGLEInstancedArrays.h:
* html/canvas/CanvasRenderingContext2D.h:
* html/canvas/DOMPath.h:
* html/canvas/EXTShaderTextureLOD.h:
* html/canvas/EXTTextureFilterAnisotropic.h:
* html/canvas/OESElementIndexUint.h:
* html/canvas/OESStandardDerivatives.h:
* html/canvas/OESTextureFloat.h:
* html/canvas/OESTextureFloatLinear.h:
* html/canvas/OESTextureHalfFloat.h:
* html/canvas/OESTextureHalfFloatLinear.h:
* html/canvas/OESVertexArrayObject.h:
* html/canvas/WebGLBuffer.h:
* html/canvas/WebGLCompressedTextureATC.h:
* html/canvas/WebGLCompressedTexturePVRTC.h:
* html/canvas/WebGLCompressedTextureS3TC.h:
* html/canvas/WebGLContextAttributes.h:
* html/canvas/WebGLContextEvent.h:
* html/canvas/WebGLDebugRendererInfo.h:
* html/canvas/WebGLDebugShaders.h:
* html/canvas/WebGLDepthTexture.h:
* html/canvas/WebGLDrawBuffers.h:
* html/canvas/WebGLFramebuffer.h:
(WebCore::WebGLFramebuffer::isFramebuffer): Deleted.
* html/canvas/WebGLLoseContext.h:
* html/canvas/WebGLProgram.h:
* html/canvas/WebGLRenderbuffer.h:
* html/canvas/WebGLRenderingContext.h:
* html/canvas/WebGLShader.h:
* html/canvas/WebGLSharedObject.h:
(WebCore::WebGLSharedObject::isFramebuffer): Deleted.
* html/canvas/WebGLTexture.h:
* html/canvas/WebGLVertexArrayObjectOES.h:
(WebCore::WebGLVertexArrayObjectOES::isVertexArray): Deleted.
* html/shadow/ImageControlsRootElement.h:
* html/shadow/InsertionPoint.h:
* html/shadow/MediaControlElementTypes.h:
* html/shadow/MediaControlElements.h:
* html/shadow/MediaControls.h:
* html/shadow/MediaControlsApple.h:
* html/shadow/SpinButtonElement.h:
* html/track/AudioTrack.h:
* html/track/AudioTrackList.h:
* html/track/DataCue.h:
(WebCore::DataCue::cueType): Deleted.
* html/track/InbandDataTextTrack.h:
* html/track/InbandGenericTextTrack.h:
* html/track/InbandTextTrack.h:
* html/track/InbandWebVTTTextTrack.h:
* html/track/LoadableTextTrack.h:
* html/track/TextTrackList.h:
* html/track/TrackEvent.h:
* html/track/VTTCue.h:
(WebCore::VTTCueBox::setFontSizeFromCaptionUserPrefs):
* html/track/VTTRegion.h:
* html/track/VideoTrack.h:
* html/track/VideoTrackList.h:
* html/track/WebVTTParser.h:
(WebCore::WebVTTCueData::~WebVTTCueData): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175328 268f45cc-cd09-0410-ab3c-d52691b4dbfc

100 files changed:
Source/WebCore/ChangeLog
Source/WebCore/html/ButtonInputType.h
Source/WebCore/html/CheckboxInputType.h
Source/WebCore/html/ColorInputType.h
Source/WebCore/html/DOMSettableTokenList.h
Source/WebCore/html/DateInputType.h
Source/WebCore/html/DateTimeInputType.h
Source/WebCore/html/DateTimeLocalInputType.h
Source/WebCore/html/EmailInputType.h
Source/WebCore/html/FTPDirectoryDocument.h
Source/WebCore/html/HTMLAnchorElement.h
Source/WebCore/html/HTMLDetailsElement.cpp
Source/WebCore/html/HTMLFormControlElement.h
Source/WebCore/html/HTMLFormControlsCollection.h
Source/WebCore/html/HTMLFrameElement.h
Source/WebCore/html/HTMLFrameElementBase.h
Source/WebCore/html/HTMLFrameOwnerElement.h
Source/WebCore/html/HTMLInputElement.h
Source/WebCore/html/HTMLMarqueeElement.h
Source/WebCore/html/HTMLMediaElement.h
Source/WebCore/html/HTMLMediaSession.h
Source/WebCore/html/HTMLMeterElement.h
Source/WebCore/html/HTMLNameCollection.h
Source/WebCore/html/HTMLObjectElement.h
Source/WebCore/html/HTMLOptGroupElement.h
Source/WebCore/html/HTMLOptionElement.h
Source/WebCore/html/HTMLSpanElement.h
Source/WebCore/html/HTMLStyleElement.h
Source/WebCore/html/HTMLSummaryElement.cpp
Source/WebCore/html/HTMLSummaryElement.h
Source/WebCore/html/HTMLUnknownElement.h
Source/WebCore/html/HTMLVideoElement.h
Source/WebCore/html/HiddenInputType.h
Source/WebCore/html/ImageInputType.h
Source/WebCore/html/MediaKeyEvent.h
Source/WebCore/html/MonthInputType.h
Source/WebCore/html/NumberInputType.h
Source/WebCore/html/PasswordInputType.h
Source/WebCore/html/PublicURLManager.h
Source/WebCore/html/RadioInputType.h
Source/WebCore/html/ResetInputType.h
Source/WebCore/html/SubmitInputType.h
Source/WebCore/html/TelephoneInputType.h
Source/WebCore/html/TextInputType.h
Source/WebCore/html/TimeInputType.h
Source/WebCore/html/URLInputType.h
Source/WebCore/html/WeekInputType.h
Source/WebCore/html/canvas/ANGLEInstancedArrays.h
Source/WebCore/html/canvas/CanvasRenderingContext2D.h
Source/WebCore/html/canvas/DOMPath.h
Source/WebCore/html/canvas/EXTShaderTextureLOD.h
Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.h
Source/WebCore/html/canvas/OESElementIndexUint.h
Source/WebCore/html/canvas/OESStandardDerivatives.h
Source/WebCore/html/canvas/OESTextureFloat.h
Source/WebCore/html/canvas/OESTextureFloatLinear.h
Source/WebCore/html/canvas/OESTextureHalfFloat.h
Source/WebCore/html/canvas/OESTextureHalfFloatLinear.h
Source/WebCore/html/canvas/OESVertexArrayObject.h
Source/WebCore/html/canvas/WebGLBuffer.h
Source/WebCore/html/canvas/WebGLCompressedTextureATC.h
Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.h
Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.h
Source/WebCore/html/canvas/WebGLContextAttributes.h
Source/WebCore/html/canvas/WebGLContextEvent.h
Source/WebCore/html/canvas/WebGLDebugRendererInfo.h
Source/WebCore/html/canvas/WebGLDebugShaders.h
Source/WebCore/html/canvas/WebGLDepthTexture.h
Source/WebCore/html/canvas/WebGLDrawBuffers.h
Source/WebCore/html/canvas/WebGLFramebuffer.h
Source/WebCore/html/canvas/WebGLLoseContext.h
Source/WebCore/html/canvas/WebGLProgram.h
Source/WebCore/html/canvas/WebGLRenderbuffer.h
Source/WebCore/html/canvas/WebGLRenderingContext.h
Source/WebCore/html/canvas/WebGLShader.h
Source/WebCore/html/canvas/WebGLSharedObject.h
Source/WebCore/html/canvas/WebGLTexture.h
Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.h
Source/WebCore/html/shadow/ImageControlsRootElement.h
Source/WebCore/html/shadow/InsertionPoint.h
Source/WebCore/html/shadow/MediaControlElementTypes.h
Source/WebCore/html/shadow/MediaControlElements.h
Source/WebCore/html/shadow/MediaControls.h
Source/WebCore/html/shadow/MediaControlsApple.h
Source/WebCore/html/shadow/SpinButtonElement.h
Source/WebCore/html/track/AudioTrack.h
Source/WebCore/html/track/AudioTrackList.h
Source/WebCore/html/track/DataCue.h
Source/WebCore/html/track/InbandDataTextTrack.h
Source/WebCore/html/track/InbandGenericTextTrack.h
Source/WebCore/html/track/InbandTextTrack.h
Source/WebCore/html/track/InbandWebVTTTextTrack.h
Source/WebCore/html/track/LoadableTextTrack.h
Source/WebCore/html/track/TextTrackList.h
Source/WebCore/html/track/TrackEvent.h
Source/WebCore/html/track/VTTCue.h
Source/WebCore/html/track/VTTRegion.h
Source/WebCore/html/track/VideoTrack.h
Source/WebCore/html/track/VideoTrackList.h
Source/WebCore/html/track/WebVTTParser.h

index c78c34f..dd8ea11 100644 (file)
@@ -1,3 +1,133 @@
+2014-10-29  Chris Dumez  <cdumez@apple.com>
+
+        Clean up virtual functions in html/
+        https://bugs.webkit.org/show_bug.cgi?id=138166
+
+        Reviewed by Andreas Kling.
+
+        Clean up virtual functions in html/ 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
+        - Dropping virtual destructors when the class does not have subclasses
+          and mark the class as final, to get rid of unnecessary vtables
+        - Making isXXX() virtual functions private on XXX classes to avoid
+          unnecessary type checks
+        - De-virtualizing some functions that do not need to be virtual
+        - Dropping final for virtual functions in classes already marked as
+          final
+
+        No new tests, no behavior change.
+
+        * html/ButtonInputType.h:
+        * html/CheckboxInputType.h:
+        * html/ColorInputType.h:
+        * html/DOMSettableTokenList.h:
+        * html/DateInputType.h:
+        * html/DateTimeInputType.h:
+        * html/DateTimeLocalInputType.h:
+        * html/EmailInputType.h:
+        * html/FTPDirectoryDocument.h:
+        * html/HTMLAnchorElement.h:
+        * html/HTMLDetailsElement.cpp:
+        * html/HTMLFormControlElement.h:
+        * html/HTMLFormControlsCollection.h:
+        * html/HTMLFrameElement.h:
+        * html/HTMLFrameElementBase.h:
+        * html/HTMLFrameOwnerElement.h:
+        * html/HTMLInputElement.h:
+        * html/HTMLMarqueeElement.h:
+        * html/HTMLMediaElement.h:
+        * html/HTMLMediaSession.h:
+        (WebCore::HTMLMediaSession::requiresPlaybackTargetRouteMonitoring): Deleted.
+        * html/HTMLMeterElement.h:
+        * html/HTMLNameCollection.h:
+        * html/HTMLObjectElement.h:
+        * html/HTMLOptGroupElement.h:
+        * html/HTMLOptionElement.h:
+        * html/HTMLSpanElement.h:
+        * html/HTMLStyleElement.h:
+        * html/HTMLSummaryElement.cpp:
+        * html/HTMLSummaryElement.h:
+        * html/HTMLUnknownElement.h:
+        * html/HTMLVideoElement.h:
+        * html/HiddenInputType.h:
+        * html/ImageInputType.h:
+        * html/MediaKeyEvent.h:
+        * html/MonthInputType.h:
+        * html/NumberInputType.h:
+        * html/PasswordInputType.h:
+        * html/PublicURLManager.h:
+        * html/RadioInputType.h:
+        * html/ResetInputType.h:
+        * html/SubmitInputType.h:
+        * html/TelephoneInputType.h:
+        * html/TextInputType.h:
+        * html/TimeInputType.h:
+        * html/URLInputType.h:
+        * html/WeekInputType.h:
+        * html/canvas/ANGLEInstancedArrays.h:
+        * html/canvas/CanvasRenderingContext2D.h:
+        * html/canvas/DOMPath.h:
+        * html/canvas/EXTShaderTextureLOD.h:
+        * html/canvas/EXTTextureFilterAnisotropic.h:
+        * html/canvas/OESElementIndexUint.h:
+        * html/canvas/OESStandardDerivatives.h:
+        * html/canvas/OESTextureFloat.h:
+        * html/canvas/OESTextureFloatLinear.h:
+        * html/canvas/OESTextureHalfFloat.h:
+        * html/canvas/OESTextureHalfFloatLinear.h:
+        * html/canvas/OESVertexArrayObject.h:
+        * html/canvas/WebGLBuffer.h:
+        * html/canvas/WebGLCompressedTextureATC.h:
+        * html/canvas/WebGLCompressedTexturePVRTC.h:
+        * html/canvas/WebGLCompressedTextureS3TC.h:
+        * html/canvas/WebGLContextAttributes.h:
+        * html/canvas/WebGLContextEvent.h:
+        * html/canvas/WebGLDebugRendererInfo.h:
+        * html/canvas/WebGLDebugShaders.h:
+        * html/canvas/WebGLDepthTexture.h:
+        * html/canvas/WebGLDrawBuffers.h:
+        * html/canvas/WebGLFramebuffer.h:
+        (WebCore::WebGLFramebuffer::isFramebuffer): Deleted.
+        * html/canvas/WebGLLoseContext.h:
+        * html/canvas/WebGLProgram.h:
+        * html/canvas/WebGLRenderbuffer.h:
+        * html/canvas/WebGLRenderingContext.h:
+        * html/canvas/WebGLShader.h:
+        * html/canvas/WebGLSharedObject.h:
+        (WebCore::WebGLSharedObject::isFramebuffer): Deleted.
+        * html/canvas/WebGLTexture.h:
+        * html/canvas/WebGLVertexArrayObjectOES.h:
+        (WebCore::WebGLVertexArrayObjectOES::isVertexArray): Deleted.
+        * html/shadow/ImageControlsRootElement.h:
+        * html/shadow/InsertionPoint.h:
+        * html/shadow/MediaControlElementTypes.h:
+        * html/shadow/MediaControlElements.h:
+        * html/shadow/MediaControls.h:
+        * html/shadow/MediaControlsApple.h:
+        * html/shadow/SpinButtonElement.h:
+        * html/track/AudioTrack.h:
+        * html/track/AudioTrackList.h:
+        * html/track/DataCue.h:
+        (WebCore::DataCue::cueType): Deleted.
+        * html/track/InbandDataTextTrack.h:
+        * html/track/InbandGenericTextTrack.h:
+        * html/track/InbandTextTrack.h:
+        * html/track/InbandWebVTTTextTrack.h:
+        * html/track/LoadableTextTrack.h:
+        * html/track/TextTrackList.h:
+        * html/track/TrackEvent.h:
+        * html/track/VTTCue.h:
+        (WebCore::VTTCueBox::setFontSizeFromCaptionUserPrefs):
+        * html/track/VTTRegion.h:
+        * html/track/VideoTrack.h:
+        * html/track/VideoTrackList.h:
+        * html/track/WebVTTParser.h:
+        (WebCore::WebVTTCueData::~WebVTTCueData): Deleted.
+
 2014-10-17  Sergio Villar Senin  <svillar@igalia.com>
 
         ASSERTION FAILED: growthShare > 0 in WebCore::RenderGrid::distributeSpaceToTracks
index bd405ba..1dea033 100644 (file)
@@ -35,7 +35,7 @@
 
 namespace WebCore {
 
-class ButtonInputType : public BaseButtonInputType {
+class ButtonInputType final : public BaseButtonInputType {
 public:
     explicit ButtonInputType(HTMLInputElement& element) : BaseButtonInputType(element) { }
 
index 5a9a206..854ce3e 100644 (file)
@@ -35,7 +35,7 @@
 
 namespace WebCore {
 
-class CheckboxInputType : public BaseCheckableInputType {
+class CheckboxInputType final : public BaseCheckableInputType {
 public:
     explicit CheckboxInputType(HTMLInputElement& element) : BaseCheckableInputType(element) { }
 
index 2726d9a..02f90ba 100644 (file)
@@ -37,7 +37,7 @@
 
 namespace WebCore {
 
-class ColorInputType : public BaseClickableWithKeyInputType, public ColorChooserClient {
+class ColorInputType final : public BaseClickableWithKeyInputType, public ColorChooserClient {
 public:
     explicit ColorInputType(HTMLInputElement& element) : BaseClickableWithKeyInputType(element) { }
     virtual ~ColorInputType();
index 9d3dee6..08ddf2c 100644 (file)
@@ -35,22 +35,22 @@ namespace WebCore {
 
 typedef int ExceptionCode;
 
-class DOMSettableTokenList : public DOMTokenList, public RefCounted<DOMSettableTokenList> {
+class DOMSettableTokenList final : public DOMTokenList, public RefCounted<DOMSettableTokenList> {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     static PassRefPtr<DOMSettableTokenList> create();
 
-    virtual void ref() override final;
-    virtual void deref() override final;
+    virtual void ref() override;
+    virtual void deref() override;
 
-    virtual unsigned length() const override final;
-    virtual const AtomicString item(unsigned index) const override final;
+    virtual unsigned length() const override;
+    virtual const AtomicString item(unsigned index) const override;
 
-    virtual AtomicString value() const override final;
-    virtual void setValue(const AtomicString&) override final;
+    virtual AtomicString value() const override;
+    virtual void setValue(const AtomicString&) override;
 
 private:
-    virtual bool containsInternal(const AtomicString&) const override final;
+    virtual bool containsInternal(const AtomicString&) const override;
 
     AtomicString m_value;
     SpaceSplitString m_tokens;
index 88e0aa3..8ca01f5 100644 (file)
@@ -36,7 +36,7 @@
 
 namespace WebCore {
 
-class DateInputType : public BaseChooserOnlyDateAndTimeInputType {
+class DateInputType final : public BaseChooserOnlyDateAndTimeInputType {
 public:
     explicit DateInputType(HTMLInputElement&);
 
index f5f7410..28b511e 100644 (file)
@@ -37,7 +37,7 @@
 
 namespace WebCore {
 
-class DateTimeInputType : public BaseChooserOnlyDateAndTimeInputType {
+class DateTimeInputType final : public BaseChooserOnlyDateAndTimeInputType {
 public:
     explicit DateTimeInputType(HTMLInputElement& element) : BaseDateTimeInputType(element) { }
 
index d8a53b4..6d4626c 100644 (file)
@@ -36,7 +36,7 @@
 
 namespace WebCore {
 
-class DateTimeLocalInputType : public BaseChooserOnlyDateAndTimeInputType {
+class DateTimeLocalInputType final : public BaseChooserOnlyDateAndTimeInputType {
 public:
     explicit DateTimeLocalInputType(HTMLInputElement& element) : BaseChooserOnlyDateAndTimeInputType(element) { }
 
index 20b40dd..45818cc 100644 (file)
@@ -35,7 +35,7 @@
 
 namespace WebCore {
 
-class EmailInputType : public BaseTextInputType {
+class EmailInputType final : public BaseTextInputType {
 public:
     explicit EmailInputType(HTMLInputElement& element) : BaseTextInputType(element) { }
 
index 211dc6c..6d78cf6 100644 (file)
@@ -31,7 +31,7 @@ namespace WebCore {
     
 class DOMImplementation;
     
-class FTPDirectoryDocument : public HTMLDocument {
+class FTPDirectoryDocument final : public HTMLDocument {
 public:
     static PassRefPtr<FTPDirectoryDocument> create(Frame* frame, const URL& url)
     {
index 30915d3..9a885c4 100644 (file)
@@ -96,7 +96,7 @@ public:
 
     bool isLiveLink() const;
 
-    virtual bool willRespondToMouseClickEvents() override;
+    virtual bool willRespondToMouseClickEvents() override final;
 
     bool hasRel(uint32_t relation) const;
     
@@ -114,14 +114,14 @@ private:
     virtual bool supportsFocus() const override;
     virtual bool isMouseFocusable() const override;
     virtual bool isKeyboardFocusable(KeyboardEvent*) const override;
-    virtual void defaultEventHandler(Event*) override;
+    virtual void defaultEventHandler(Event*) override final;
     virtual void setActive(bool active = true, bool pause = false) override final;
-    virtual void accessKeyAction(bool sendMouseEvents) override;
-    virtual bool isURLAttribute(const Attribute&) const override;
-    virtual bool canStartSelection() const override;
+    virtual void accessKeyAction(bool sendMouseEvents) override final;
+    virtual bool isURLAttribute(const Attribute&) const override final;
+    virtual bool canStartSelection() const override final;
     virtual String target() const override;
     virtual short tabIndex() const override final;
-    virtual bool draggable() const override;
+    virtual bool draggable() const override final;
 
     void sendPings(const URL& destinationURL);
 
index 26fa14a..23e561c 100644 (file)
@@ -40,7 +40,7 @@ static const AtomicString& summaryQuerySelector()
     return selector;
 };
 
-class DetailsContentElement : public InsertionPoint {
+class DetailsContentElement final : public InsertionPoint {
 public:
     static PassRefPtr<DetailsContentElement> create(Document&);
 
@@ -63,7 +63,7 @@ PassRefPtr<DetailsContentElement> DetailsContentElement::create(Document& docume
     return adoptRef(new DetailsContentElement(document));
 }
 
-class DetailsSummaryElement : public InsertionPoint {
+class DetailsSummaryElement final : public InsertionPoint {
 public:
     static PassRefPtr<DetailsSummaryElement> create(Document&);
 
index e7ae3ec..0025d0d 100644 (file)
@@ -150,7 +150,7 @@ private:
     virtual void refFormAssociatedElement() override { ref(); }
     virtual void derefFormAssociatedElement() override { deref(); }
 
-    virtual bool isFormControlElement() const override { return true; }
+    virtual bool isFormControlElement() const override final { return true; }
     virtual bool alwaysCreateUserAgentShadowRoot() const override { return true; }
 
     virtual short tabIndex() const override final;
index 30a731e..e56aa4d 100644 (file)
@@ -35,7 +35,7 @@ class QualifiedName;
 // This class is just a big hack to find form elements even in malformed HTML elements.
 // The famous <table><tr><form><td> problem.
 
-class HTMLFormControlsCollection : public HTMLCollection {
+class HTMLFormControlsCollection final : public HTMLCollection {
 public:
     static PassRef<HTMLFormControlsCollection> create(ContainerNode&, CollectionType);
 
index 6e4fb0f..b28e764 100644 (file)
@@ -46,10 +46,6 @@ private:
     
     virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
 
-#if ENABLE(FULLSCREEN_API)
-    virtual bool allowFullScreen() const { return false; }
-#endif
-
     bool m_frameBorder;
     bool m_frameBorderSet;
 };
index 3ca7ab1..9854534 100644 (file)
@@ -35,7 +35,7 @@ public:
     URL location() const;
     void setLocation(const String&);
 
-    virtual ScrollbarMode scrollingMode() const override { return m_scrolling; }
+    virtual ScrollbarMode scrollingMode() const override final { return m_scrolling; }
     
     int marginWidth() const { return m_marginWidth; }
     int marginHeight() const { return m_marginHeight; }
@@ -43,7 +43,7 @@ public:
     int width();
     int height();
 
-    virtual bool canContainRangeEndPoint() const override { return false; }
+    virtual bool canContainRangeEndPoint() const override final { return false; }
 
 protected:
     HTMLFrameElementBase(const QualifiedName&, Document&);
@@ -51,18 +51,18 @@ protected:
     bool isURLAllowed() const;
 
     virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
-    virtual void didNotifySubtreeInsertions(ContainerNode*) override;
+    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override final;
+    virtual void didNotifySubtreeInsertions(ContainerNode*) override final;
     virtual void didAttachRenderers() override;
 
 private:
-    virtual bool supportsFocus() const override;
-    virtual void setFocus(bool) override;
+    virtual bool supportsFocus() const override final;
+    virtual void setFocus(bool) override final;
     
-    virtual bool isURLAttribute(const Attribute&) const override;
-    virtual bool isHTMLContentAttribute(const Attribute&) const override;
+    virtual bool isURLAttribute(const Attribute&) const override final;
+    virtual bool isHTMLContentAttribute(const Attribute&) const override final;
 
-    virtual bool isFrameElementBase() const override { return true; }
+    virtual bool isFrameElementBase() const override final { return true; }
 
     void setNameAndOpenURL();
     void openURL(LockHistory = LockHistory::Yes, LockBackForwardList = LockBackForwardList::Yes);
index 9c3b27e..01fa700 100644 (file)
@@ -63,7 +63,7 @@ protected:
 
 private:
     virtual bool isKeyboardFocusable(KeyboardEvent*) const override;
-    virtual bool isFrameOwnerElement() const override { return true; }
+    virtual bool isFrameOwnerElement() const override final { return true; }
 
     Frame* m_contentFrame;
     SandboxFlags m_sandboxFlags;
index d7a65cd..26b55e4 100644 (file)
@@ -68,7 +68,7 @@ public:
 
     DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitspeechchange);
 
-    virtual HTMLInputElement* toInputElement() override { return this; }
+    virtual HTMLInputElement* toInputElement() override final { return this; }
 
     WEBCORE_EXPORT virtual bool shouldAutocomplete() const override;
 
index 9639e96..47f831c 100644 (file)
@@ -39,7 +39,7 @@ public:
     // DOM Functions
 
     void start();
-    void stop() override;
+    virtual void stop() override;
     
     int scrollAmount() const;
     void setScrollAmount(int, ExceptionCode&);
index 8d93cf3..e76e46f 100644 (file)
@@ -470,7 +470,7 @@ protected:
     DisplayMode displayMode() const { return m_displayMode; }
     virtual void setDisplayMode(DisplayMode mode) { m_displayMode = mode; }
     
-    virtual bool isMediaElement() const override { return true; }
+    virtual bool isMediaElement() const override final { return true; }
 
 #if ENABLE(VIDEO_TRACK)
     bool ignoreTrackDisplayUpdateRequests() const { return m_ignoreTrackDisplayUpdate > 0 || !m_textTracks || !m_cueTree.size(); }
index c907ec7..31d7d34 100644 (file)
@@ -36,7 +36,7 @@ namespace WebCore {
 class HTMLMediaElement;
 class SourceBuffer;
 
-class HTMLMediaSession : public MediaSession {
+class HTMLMediaSession final : public MediaSession {
 public:
     static std::unique_ptr<HTMLMediaSession> create(MediaSessionClient&);
 
@@ -88,7 +88,7 @@ public:
 #endif
 
 private:
-    virtual bool requiresPlaybackTargetRouteMonitoring() const { return m_hasPlaybackTargetAvailabilityListeners; }
+    virtual bool requiresPlaybackTargetRouteMonitoring() const override { return m_hasPlaybackTargetAvailabilityListeners; }
 
     BehaviorRestrictions m_restrictions;
     bool m_hasPlaybackTargetAvailabilityListeners;
index a28cb44..a9bc946 100644 (file)
@@ -70,7 +70,6 @@ private:
 
     virtual bool supportLabels() const override { return true; }
 
-    virtual bool recalcWillValidate() const { return false; }
     virtual RenderPtr<RenderElement> createElementRenderer(PassRef<RenderStyle>) override;
     virtual bool childShouldCreateRenderer(const Node&) const override;
     virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
index 0914c54..29f647f 100644 (file)
@@ -33,7 +33,7 @@ class Document;
 
 class HTMLNameCollection : public HTMLCollection {
 public:
-    ~HTMLNameCollection();
+    virtual ~HTMLNameCollection();
 
     Document& document() { return downcast<Document>(ownerNode()); }
 
index 7b4bbbf..03a6bbe 100644 (file)
@@ -88,9 +88,9 @@ private:
     virtual void derefFormAssociatedElement() override { deref(); }
     virtual HTMLFormElement* virtualForm() const override;
 
-    virtual FormNamedItem* asFormNamedItem() override final { return this; }
-    virtual HTMLObjectElement& asHTMLElement() override final { return *this; }
-    virtual const HTMLObjectElement& asHTMLElement() const override final { return *this; }
+    virtual FormNamedItem* asFormNamedItem() override { return this; }
+    virtual HTMLObjectElement& asHTMLElement() override { return *this; }
+    virtual const HTMLObjectElement& asHTMLElement() const override { return *this; }
 
     virtual bool isFormControlElement() const override { return false; }
 
index 57a3742..cb9d9c0 100644 (file)
@@ -42,7 +42,7 @@ public:
 private:
     HTMLOptGroupElement(const QualifiedName&, Document&);
 
-    virtual const AtomicString& formControlType() const;
+    const AtomicString& formControlType() const;
     virtual bool isFocusable() const override;
     virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
     virtual bool rendererIsNeeded(const RenderStyle&) override { return false; }
index 654ef11..9a6c20b 100644 (file)
@@ -39,7 +39,7 @@ public:
     static PassRefPtr<HTMLOptionElement> createForJSConstructor(Document&, const String& data, const String& value,
        bool defaultSelected, bool selected, ExceptionCode&);
 
-    WEBCORE_EXPORT virtual String text() const;
+    WEBCORE_EXPORT String text() const;
     void setText(const String&, ExceptionCode&);
 
     int index() const;
index 2e70bf9..5733233 100644 (file)
@@ -30,7 +30,7 @@
 
 namespace WebCore {
 
-class HTMLSpanElement : public HTMLElement {
+class HTMLSpanElement final : public HTMLElement {
 public:
     static PassRefPtr<HTMLSpanElement> create(const QualifiedName&, Document&);
 
index 91f0b7c..4b552e0 100644 (file)
@@ -58,7 +58,7 @@ private:
 
     virtual void finishParsingChildren() override;
 
-    virtual bool isLoading() const { return m_styleSheetOwner.isLoading(); }
+    bool isLoading() const { return m_styleSheetOwner.isLoading(); }
     virtual bool sheetLoaded() override { return m_styleSheetOwner.sheetLoaded(document()); }
     virtual void notifyLoadedSheetAndAllCriticalSubresources(bool errorOccurred) override;
     virtual void startLoadingDynamicSheet() override { m_styleSheetOwner.startLoadingDynamicSheet(document()); }
index 753b41c..fb3973a 100644 (file)
@@ -36,7 +36,7 @@ namespace WebCore {
 
 using namespace HTMLNames;
 
-class SummaryContentElement : public InsertionPoint {
+class SummaryContentElement final : public InsertionPoint {
 public:
     static PassRefPtr<SummaryContentElement> create(Document&);
 
index bc22842..0db8abe 100644 (file)
@@ -43,7 +43,7 @@ private:
     virtual void didAddUserAgentShadowRoot(ShadowRoot*) override;
     HTMLDetailsElement* detailsElement() const;
 
-    bool supportsFocus() const override;
+    virtual bool supportsFocus() const override;
 };
 
 }
index 3315e68..b4c5925 100644 (file)
@@ -41,13 +41,13 @@ public:
         return adoptRef(new HTMLUnknownElement(tagName, document));
     }
 
-    virtual bool isHTMLUnknownElement() const override { return true; }
-
 private:
     HTMLUnknownElement(const QualifiedName& tagName, Document& document)
         : HTMLElement(tagName, document, CreateHTMLElement)
     {
     }
+
+    virtual bool isHTMLUnknownElement() const override { return true; }
 };
 
 } // namespace
index 9c80e4b..7af3742 100644 (file)
@@ -92,7 +92,7 @@ private:
     virtual bool isURLAttribute(const Attribute&) const override;
     virtual const AtomicString& imageSourceURL() const override;
 
-    virtual bool hasAvailableVideoFrame() const;
+    bool hasAvailableVideoFrame() const;
     virtual void updateDisplayState() override;
     virtual void didMoveToNewDocument(Document* oldDocument) override;
     virtual void setDisplayMode(DisplayMode) override;
index 29208e0..cd01e00 100644 (file)
@@ -35,7 +35,7 @@
 
 namespace WebCore {
 
-class HiddenInputType : public InputType {
+class HiddenInputType final : public InputType {
 public:
     explicit HiddenInputType(HTMLInputElement& element) : InputType(element) { }
 
index a3c2f85..e6ef5c5 100644 (file)
@@ -38,7 +38,7 @@
 
 namespace WebCore {
 
-class ImageInputType : public BaseButtonInputType {
+class ImageInputType final : public BaseButtonInputType {
 public:
     explicit ImageInputType(HTMLInputElement&);
 
index a61f31f..80aef0c 100644 (file)
@@ -45,7 +45,7 @@ struct MediaKeyEventInit : public EventInit {
     unsigned short systemCode;
 };
 
-class MediaKeyEvent : public Event {
+class MediaKeyEvent final : public Event {
 public:
     virtual ~MediaKeyEvent();
 
index cb869fa..a4e25ac 100644 (file)
@@ -36,7 +36,7 @@
 
 namespace WebCore {
 
-class MonthInputType : public BaseChooserOnlyDateAndTimeInputType {
+class MonthInputType final : public BaseChooserOnlyDateAndTimeInputType {
 public:
     explicit MonthInputType(HTMLInputElement& element) : BaseChooserOnlyDateAndTimeInputType(element) { }
 
index d39b91f..9de9fb5 100644 (file)
@@ -35,7 +35,7 @@
 
 namespace WebCore {
 
-class NumberInputType : public TextFieldInputType {
+class NumberInputType final : public TextFieldInputType {
 public:
     explicit NumberInputType(HTMLInputElement& element) : TextFieldInputType(element) { }
 
index d1e2701..f8046db 100644 (file)
@@ -35,7 +35,7 @@
 
 namespace WebCore {
 
-class PasswordInputType : public BaseTextInputType {
+class PasswordInputType final : public BaseTextInputType {
 public:
     explicit PasswordInputType(HTMLInputElement& element) : BaseTextInputType(element) { }
 
index 6c51249..a627f56 100644 (file)
@@ -40,7 +40,7 @@ class SecurityOrigin;
 class URLRegistry;
 class URLRegistrable;
 
-class PublicURLManager : public ActiveDOMObject {
+class PublicURLManager final : public ActiveDOMObject {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit PublicURLManager(ScriptExecutionContext*);
index 3910474..796a2f0 100644 (file)
@@ -35,7 +35,7 @@
 
 namespace WebCore {
 
-class RadioInputType : public BaseCheckableInputType {
+class RadioInputType final : public BaseCheckableInputType {
 public:
     explicit RadioInputType(HTMLInputElement& element) : BaseCheckableInputType(element) { }
 
index 7c0266b..05e3539 100644 (file)
@@ -35,7 +35,7 @@
 
 namespace WebCore {
 
-class ResetInputType : public BaseButtonInputType {
+class ResetInputType final : public BaseButtonInputType {
 public:
     explicit ResetInputType(HTMLInputElement& element) : BaseButtonInputType(element) { }
 
index c5da555..68f78b6 100644 (file)
@@ -35,7 +35,7 @@
 
 namespace WebCore {
 
-class SubmitInputType : public BaseButtonInputType {
+class SubmitInputType final : public BaseButtonInputType {
 public:
     explicit SubmitInputType(HTMLInputElement& element) : BaseButtonInputType(element) { }
 
index cdd7c2e..c564671 100644 (file)
@@ -35,7 +35,7 @@
 
 namespace WebCore {
 
-class TelephoneInputType : public BaseTextInputType {
+class TelephoneInputType final : public BaseTextInputType {
 public:
     explicit TelephoneInputType(HTMLInputElement& element) : BaseTextInputType(element) { }
 
index d419e8a..abc5f48 100644 (file)
@@ -35,7 +35,7 @@
 
 namespace WebCore {
 
-class TextInputType : public BaseTextInputType {
+class TextInputType final : public BaseTextInputType {
 public:
     explicit TextInputType(HTMLInputElement& element) : BaseTextInputType(element) { }
 
index 4b1e01a..1f1462a 100644 (file)
@@ -36,7 +36,7 @@
 
 namespace WebCore {
 
-class TimeInputType : public BaseChooserOnlyDateAndTimeInputType {
+class TimeInputType final : public BaseChooserOnlyDateAndTimeInputType {
 public:
     explicit TimeInputType(HTMLInputElement&);
 
index eae3caf..6b9b864 100644 (file)
@@ -35,7 +35,7 @@
 
 namespace WebCore {
 
-class URLInputType : public BaseTextInputType {
+class URLInputType final : public BaseTextInputType {
 public:
     explicit URLInputType(HTMLInputElement& element) : BaseTextInputType(element) { }
 
index 3dfddfd..4ea6c56 100644 (file)
@@ -36,7 +36,7 @@
 
 namespace WebCore {
 
-class WeekInputType : public BaseChooserOnlyDateAndTimeInputType {
+class WeekInputType final : public BaseChooserOnlyDateAndTimeInputType {
 public:
     explicit WeekInputType(HTMLInputElement& element) : BaseChooserOnlyDateAndTimeInputType(element) { }
 
index 23b4e62..7d04086 100644 (file)
@@ -32,7 +32,7 @@ namespace WebCore {
 
 class WebGLRenderingContext;
 
-class ANGLEInstancedArrays : public WebGLExtension {
+class ANGLEInstancedArrays final : public WebGLExtension {
 public:
     explicit ANGLEInstancedArrays(WebGLRenderingContext*);
     virtual ~ANGLEInstancedArrays();
index 4c2fa63..6b29b2c 100644 (file)
@@ -57,7 +57,7 @@ class TextMetrics;
 
 typedef int ExceptionCode;
 
-class CanvasRenderingContext2D : public CanvasRenderingContext, public CanvasPathMethods {
+class CanvasRenderingContext2D final : public CanvasRenderingContext, public CanvasPathMethods {
 public:
     CanvasRenderingContext2D(HTMLCanvasElement*, bool usesCSSCompatibilityParseMode, bool usesDashboardCompatibilityMode);
     virtual ~CanvasRenderingContext2D();
@@ -235,7 +235,7 @@ private:
         LTR
     };
 
-    struct State : FontSelectorClient {
+    struct State final : FontSelectorClient {
         State();
         virtual ~State();
 
index 6b8d35f..6af8e36 100644 (file)
@@ -36,7 +36,7 @@
 
 namespace WebCore {
 
-class DOMPath : public RefCounted<DOMPath>, public CanvasPathMethods {
+class DOMPath final : public RefCounted<DOMPath>, public CanvasPathMethods {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     static PassRefPtr<DOMPath> create() { return adoptRef(new DOMPath); }
index 88d911a..6cdcfb5 100644 (file)
@@ -30,7 +30,7 @@
 
 namespace WebCore {
 
-class EXTShaderTextureLOD : public WebGLExtension {
+class EXTShaderTextureLOD final : public WebGLExtension {
 public:
     explicit EXTShaderTextureLOD(WebGLRenderingContext*);
     virtual ~EXTShaderTextureLOD();
index 833c81d..b044910 100644 (file)
@@ -30,7 +30,7 @@
 
 namespace WebCore {
 
-class EXTTextureFilterAnisotropic : public WebGLExtension {
+class EXTTextureFilterAnisotropic final : public WebGLExtension {
 public:
     explicit EXTTextureFilterAnisotropic(WebGLRenderingContext*);
     virtual ~EXTTextureFilterAnisotropic();
index 64fd6c6..08ee144 100644 (file)
@@ -30,7 +30,7 @@
 
 namespace WebCore {
 
-class OESElementIndexUint : public WebGLExtension {
+class OESElementIndexUint final : public WebGLExtension {
 public:
     explicit OESElementIndexUint(WebGLRenderingContext*);
     virtual ~OESElementIndexUint();
index b0a401a..3bef8ca 100644 (file)
@@ -30,7 +30,7 @@
 
 namespace WebCore {
 
-class OESStandardDerivatives : public WebGLExtension {
+class OESStandardDerivatives final : public WebGLExtension {
 public:
     explicit OESStandardDerivatives(WebGLRenderingContext*);
     virtual ~OESStandardDerivatives();
index ee6f956..dc6fbe2 100644 (file)
@@ -30,7 +30,7 @@
 
 namespace WebCore {
 
-class OESTextureFloat : public WebGLExtension {
+class OESTextureFloat final : public WebGLExtension {
 public:
     OESTextureFloat(WebGLRenderingContext*);
     virtual ~OESTextureFloat();
index 0158ff1..10117e1 100644 (file)
@@ -30,7 +30,7 @@
 
 namespace WebCore {
 
-class OESTextureFloatLinear : public WebGLExtension {
+class OESTextureFloatLinear final : public WebGLExtension {
 public:
     explicit OESTextureFloatLinear(WebGLRenderingContext*);
     virtual ~OESTextureFloatLinear();
index bb42b5c..8649dae 100644 (file)
@@ -30,7 +30,7 @@
 
 namespace WebCore {
 
-class OESTextureHalfFloat : public WebGLExtension {
+class OESTextureHalfFloat final : public WebGLExtension {
 public:
     OESTextureHalfFloat(WebGLRenderingContext*);
     virtual ~OESTextureHalfFloat();
index bb9485d..9b6fe4a 100644 (file)
@@ -30,7 +30,7 @@
 
 namespace WebCore {
 
-class OESTextureHalfFloatLinear : public WebGLExtension {
+class OESTextureHalfFloatLinear final : public WebGLExtension {
 public:
     OESTextureHalfFloatLinear(WebGLRenderingContext*);
     virtual ~OESTextureHalfFloatLinear();
index aa4cd29..63ee6a1 100644 (file)
@@ -36,7 +36,7 @@ class WebGLVertexArrayObjectOES;
 
 typedef int ExceptionCode;
 
-class OESVertexArrayObject : public WebGLExtension {
+class OESVertexArrayObject final : public WebGLExtension {
 public:
     OESVertexArrayObject(WebGLRenderingContext*);
     virtual ~OESVertexArrayObject();
index 3a9692b..d9be87c 100644 (file)
@@ -37,7 +37,7 @@ class ArrayBufferView;
 
 namespace WebCore {
 
-class WebGLBuffer : public WebGLSharedObject {
+class WebGLBuffer final : public WebGLSharedObject {
 public:
     virtual ~WebGLBuffer();
 
index 3f10c3b..6cf6733 100644 (file)
@@ -32,7 +32,7 @@ namespace WebCore {
 
 class WebGLTexture;
 
-class WebGLCompressedTextureATC : public WebGLExtension {
+class WebGLCompressedTextureATC final : public WebGLExtension {
 public:
     explicit WebGLCompressedTextureATC(WebGLRenderingContext*);
     virtual ~WebGLCompressedTextureATC();
index b8e7271..99edf60 100644 (file)
@@ -30,7 +30,7 @@
 
 namespace WebCore {
 
-class WebGLCompressedTexturePVRTC : public WebGLExtension {
+class WebGLCompressedTexturePVRTC final : public WebGLExtension {
 public:
     explicit WebGLCompressedTexturePVRTC(WebGLRenderingContext*);
     virtual ~WebGLCompressedTexturePVRTC();
index c925561..f5f7678 100644 (file)
@@ -32,7 +32,7 @@ namespace WebCore {
 
 class WebGLTexture;
 
-class WebGLCompressedTextureS3TC : public WebGLExtension {
+class WebGLCompressedTextureS3TC final : public WebGLExtension {
 public:
     explicit WebGLCompressedTextureS3TC(WebGLRenderingContext*);
     virtual ~WebGLCompressedTextureS3TC();
index 5391a2b..8d2233c 100644 (file)
@@ -33,7 +33,7 @@
 
 namespace WebCore {
 
-class WebGLContextAttributes : public CanvasContextAttributes {
+class WebGLContextAttributes final : public CanvasContextAttributes {
   public:
     virtual ~WebGLContextAttributes();
 
index fa1ebfb..d7529f0 100644 (file)
@@ -36,7 +36,7 @@ struct WebGLContextEventInit : public EventInit {
     String statusMessage;
 };
 
-class WebGLContextEvent : public Event {
+class WebGLContextEvent final : public Event {
 public:
     static PassRefPtr<WebGLContextEvent> create()
     {
index d5e4f0e..1136f64 100644 (file)
@@ -30,7 +30,7 @@
 
 namespace WebCore {
 
-class WebGLDebugRendererInfo : public WebGLExtension {
+class WebGLDebugRendererInfo final : public WebGLExtension {
 public:
     enum EnumType {
         UNMASKED_VENDOR_WEBGL = 0x9245,
index bf92430..5b03fbf 100644 (file)
@@ -34,7 +34,7 @@ class WebGLShader;
 
 typedef int ExceptionCode;
 
-class WebGLDebugShaders : public WebGLExtension {
+class WebGLDebugShaders final : public WebGLExtension {
 public:
     explicit WebGLDebugShaders(WebGLRenderingContext*);
     virtual ~WebGLDebugShaders();
index 72711b0..e2aff33 100644 (file)
@@ -30,7 +30,7 @@
 
 namespace WebCore {
 
-class WebGLDepthTexture : public WebGLExtension {
+class WebGLDepthTexture final : public WebGLExtension {
 public:
     explicit WebGLDepthTexture(WebGLRenderingContext*);
     virtual ~WebGLDepthTexture();
index 1e1815c..a2bed45 100644 (file)
@@ -30,7 +30,7 @@
 
 namespace WebCore {
 
-class WebGLDrawBuffers : public WebGLExtension {
+class WebGLDrawBuffers final : public WebGLExtension {
 public:
     explicit WebGLDrawBuffers(WebGLRenderingContext*);
     virtual ~WebGLDrawBuffers();
index 1a36a8b..e7501ef 100644 (file)
@@ -37,7 +37,7 @@ namespace WebCore {
 class WebGLRenderbuffer;
 class WebGLTexture;
 
-class WebGLFramebuffer : public WebGLContextObject {
+class WebGLFramebuffer final : public WebGLContextObject {
 public:
     class WebGLAttachment : public RefCounted<WebGLAttachment> {
     public:
@@ -106,8 +106,6 @@ protected:
     virtual void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
 
 private:
-    virtual bool isFramebuffer() const { return true; }
-
     WebGLAttachment* getAttachment(GC3Denum) const;
 
     // Return false if framebuffer is incomplete.
index cfc3814..659409a 100644 (file)
@@ -32,7 +32,7 @@ namespace WebCore {
 
 class WebGLRenderingContext;
 
-class WebGLLoseContext : public WebGLExtension {
+class WebGLLoseContext final : public WebGLExtension {
 public:
     explicit WebGLLoseContext(WebGLRenderingContext*);
     virtual ~WebGLLoseContext();
index 6549ddd..90c5080 100644 (file)
@@ -35,7 +35,7 @@
 
 namespace WebCore {
 
-class WebGLProgram : public WebGLSharedObject {
+class WebGLProgram final : public WebGLSharedObject {
 public:
     virtual ~WebGLProgram();
 
index f4f3f5a..d850cb6 100644 (file)
@@ -33,7 +33,7 @@
 
 namespace WebCore {
 
-class WebGLRenderbuffer : public WebGLSharedObject {
+class WebGLRenderbuffer final : public WebGLSharedObject {
 public:
     virtual ~WebGLRenderbuffer();
 
index 340980c..50ae42c 100644 (file)
@@ -82,7 +82,7 @@ class WebGLVertexArrayObjectOES;
 
 typedef int ExceptionCode;
 
-class WebGLRenderingContext : public CanvasRenderingContext, public ActiveDOMObject {
+class WebGLRenderingContext final : public CanvasRenderingContext, public ActiveDOMObject {
 public:
     static std::unique_ptr<WebGLRenderingContext> create(HTMLCanvasElement*, WebGLContextAttributes*);
     virtual ~WebGLRenderingContext();
@@ -320,7 +320,7 @@ public:
 
     void markLayerComposited();
     virtual void paintRenderingResultsToCanvas() override;
-    virtual PassRefPtr<ImageData> paintRenderingResultsToImageData();
+    PassRefPtr<ImageData> paintRenderingResultsToImageData();
 
     void removeSharedObject(WebGLSharedObject*);
     void removeContextObject(WebGLContextObject*);
index 7e21f6a..ddf5b17 100644 (file)
@@ -32,7 +32,7 @@
 
 namespace WebCore {
 
-class WebGLShader : public WebGLSharedObject {
+class WebGLShader final : public WebGLSharedObject {
 public:
     virtual ~WebGLShader();
 
index 86b4548..97edfb1 100644 (file)
@@ -43,7 +43,6 @@ public:
     WebGLContextGroup* contextGroup() const { return m_contextGroup; }
 
     virtual bool isBuffer() const { return false; }
-    virtual bool isFramebuffer() const { return false; }
     virtual bool isProgram() const { return false; }
     virtual bool isRenderbuffer() const { return false; }
     virtual bool isShader() const { return false; }
index 889d6d5..64a3792 100644 (file)
@@ -33,7 +33,7 @@
 
 namespace WebCore {
 
-class WebGLTexture : public WebGLSharedObject {
+class WebGLTexture final : public WebGLSharedObject {
 public:
 
     enum TextureExtensionFlag {
@@ -81,12 +81,11 @@ public:
 
     static GC3Dint computeLevelCount(GC3Dsizei width, GC3Dsizei height);
 
-protected:
+private:
     WebGLTexture(WebGLRenderingContext*);
 
     virtual void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
 
-private:
     class LevelInfo {
     public:
         LevelInfo()
index 3c6361c..b01e9f3 100644 (file)
@@ -33,7 +33,7 @@
 
 namespace WebCore {
 
-class WebGLVertexArrayObjectOES : public WebGLContextObject {
+class WebGLVertexArrayObjectOES final : public WebGLContextObject {
 public:
     enum VaoType {
         VaoTypeDefault,
@@ -92,8 +92,6 @@ private:
     WebGLVertexArrayObjectOES(WebGLRenderingContext*, VaoType);
 
     virtual void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
-
-    virtual bool isVertexArray() const { return true; }
     
     VaoType m_type;
     bool m_hasEverBeenBound;
index 001e982..a0c9cd5 100644 (file)
@@ -44,7 +44,7 @@ protected:
     explicit ImageControlsRootElement(Document&);
 
 private:
-    virtual bool isImageControlsRootElement() const override { return true; }
+    virtual bool isImageControlsRootElement() const override final { return true; }
 };
 
 } // namespace WebCore
index 594a5cc..c63b728 100644 (file)
@@ -68,9 +68,9 @@ protected:
     virtual void childrenChanged(const ChildChange&) override;
     virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
     virtual void removedFrom(ContainerNode&) override;
-    virtual bool isInsertionPointNode() const override { return true; }
 
 private:
+    virtual bool isInsertionPointNode() const override final { return true; }
 
     bool m_hasDistribution;
 };
index a35b450..00f04a3 100644 (file)
@@ -109,18 +109,20 @@ private:
 
 class MediaControlDivElement : public HTMLDivElement, public MediaControlElement {
 protected:
-    virtual bool isMediaControlElement() const override { return MediaControlElement::isMediaControlElement(); }
     explicit MediaControlDivElement(Document&, MediaControlElementType);
+
+private:
+    virtual bool isMediaControlElement() const override final { return MediaControlElement::isMediaControlElement(); }
 };
 
 // ----------------------------
 
 class MediaControlInputElement : public HTMLInputElement, public MediaControlElement {
 protected:
-    virtual bool isMediaControlElement() const override { return MediaControlElement::isMediaControlElement(); }
     explicit MediaControlInputElement(Document&, MediaControlElementType);
 
 private:
+    virtual bool isMediaControlElement() const override final { return MediaControlElement::isMediaControlElement(); }
     virtual void updateDisplayType() { }
 };
 
index 1a32d6f..1474aa4 100644 (file)
@@ -101,7 +101,7 @@ private:
 
 // ----------------------------
 
-class MediaControlTimelineContainerElement : public MediaControlDivElement {
+class MediaControlTimelineContainerElement final : public MediaControlDivElement {
 public:
     static PassRefPtr<MediaControlTimelineContainerElement> create(Document&);
 
@@ -115,7 +115,7 @@ private:
 
 // ----------------------------
 
-class MediaControlVolumeSliderContainerElement : public MediaControlDivElement {
+class MediaControlVolumeSliderContainerElement final : public MediaControlDivElement {
 public:
     static PassRefPtr<MediaControlVolumeSliderContainerElement> create(Document&);
 
@@ -133,7 +133,7 @@ private:
 
 // ----------------------------
 
-class MediaControlStatusDisplayElement : public MediaControlDivElement {
+class MediaControlStatusDisplayElement final : public MediaControlDivElement {
 public:
     static PassRefPtr<MediaControlStatusDisplayElement> create(Document&);
 
@@ -209,7 +209,7 @@ private:
 
 // ----------------------------
 
-class MediaControlSeekForwardButtonElement : public MediaControlSeekButtonElement {
+class MediaControlSeekForwardButtonElement final : public MediaControlSeekButtonElement {
 public:
     static PassRefPtr<MediaControlSeekForwardButtonElement> create(Document&);
 
@@ -221,7 +221,7 @@ private:
 
 // ----------------------------
 
-class MediaControlSeekBackButtonElement : public MediaControlSeekButtonElement {
+class MediaControlSeekBackButtonElement final : public MediaControlSeekButtonElement {
 public:
     static PassRefPtr<MediaControlSeekBackButtonElement> create(Document&);
 
@@ -233,7 +233,7 @@ private:
 
 // ----------------------------
 
-class MediaControlRewindButtonElement : public MediaControlInputElement {
+class MediaControlRewindButtonElement final : public MediaControlInputElement {
 public:
     static PassRefPtr<MediaControlRewindButtonElement> create(Document&);
 
@@ -249,7 +249,7 @@ private:
 
 // ----------------------------
 
-class MediaControlReturnToRealtimeButtonElement : public MediaControlInputElement {
+class MediaControlReturnToRealtimeButtonElement final : public MediaControlInputElement {
 public:
     static PassRefPtr<MediaControlReturnToRealtimeButtonElement> create(Document&);
 
@@ -358,7 +358,7 @@ public:
     virtual bool willRespondToMouseClickEvents() override { return true; }
 #endif
 
-    virtual void setIsFullscreen(bool);
+    void setIsFullscreen(bool);
 
 private:
     explicit MediaControlFullscreenButtonElement(Document&);
@@ -377,7 +377,7 @@ private:
 };
 // ----------------------------
 
-class MediaControlFullscreenVolumeSliderElement : public MediaControlVolumeSliderElement {
+class MediaControlFullscreenVolumeSliderElement final : public MediaControlVolumeSliderElement {
 public:
     static PassRefPtr<MediaControlFullscreenVolumeSliderElement> create(Document&);
 
@@ -387,7 +387,7 @@ private:
 
 // ----------------------------
 
-class MediaControlFullscreenVolumeMinButtonElement : public MediaControlInputElement {
+class MediaControlFullscreenVolumeMinButtonElement final : public MediaControlInputElement {
 public:
     static PassRefPtr<MediaControlFullscreenVolumeMinButtonElement> create(Document&);
 
@@ -402,7 +402,7 @@ private:
 
 // ----------------------------
 
-class MediaControlFullscreenVolumeMaxButtonElement : public MediaControlInputElement {
+class MediaControlFullscreenVolumeMaxButtonElement final : public MediaControlInputElement {
 public:
     static PassRefPtr<MediaControlFullscreenVolumeMaxButtonElement> create(Document&);
 
index ad21605..6e17e35 100644 (file)
@@ -142,7 +142,7 @@ protected:
     bool m_isMouseOverControls;
 
 private:
-    virtual bool isMediaControls() const override { return true; }
+    virtual bool isMediaControls() const override final { return true; }
 };
 
 inline MediaControls* toMediaControls(Node* node)
index 492df2b..d2da627 100644 (file)
@@ -59,7 +59,7 @@ private:
     MediaControlsApple* m_mediaControls;
 };
 
-class MediaControlsApple : public MediaControls {
+class MediaControlsApple final : public MediaControls {
 public:
     static PassRefPtr<MediaControlsApple> createControls(Document&);
 
index 3ec19dc..1139601 100644 (file)
@@ -56,7 +56,7 @@ public:
     // implementation, e.g. during event handling.
     static PassRefPtr<SpinButtonElement> create(Document&, SpinButtonOwner&);
     UpDownState upDownState() const { return m_upDownState; }
-    virtual void releaseCapture();
+    void releaseCapture();
     void removeSpinButtonOwner() { m_spinButtonOwner = 0; }
 
     void step(int amount);
index 0602295..95ce0f0 100644 (file)
@@ -45,7 +45,7 @@ public:
     virtual void audioTrackEnabledChanged(AudioTrack*) = 0;
 };
 
-class AudioTrack : public TrackBase, public AudioTrackPrivateClient {
+class AudioTrack final : public TrackBase, public AudioTrackPrivateClient {
 public:
     static PassRefPtr<AudioTrack> create(AudioTrackClient* client, PassRefPtr<AudioTrackPrivate> trackPrivate)
     {
@@ -62,9 +62,9 @@ public:
     virtual const AtomicString& defaultKindKeyword() const override { return emptyAtom; }
 
     virtual bool enabled() const override { return m_enabled; }
-    virtual void setEnabled(const bool);
+    void setEnabled(const bool);
 
-    virtual void clearClient() override { m_client = 0; }
+    virtual void clearClient() override { m_client = nullptr; }
     AudioTrackClient* client() const { return m_client; }
 
     size_t inbandTrackIndex();
index 88baeaf..956b04a 100644 (file)
@@ -34,7 +34,7 @@ namespace WebCore {
 
 class AudioTrack;
 
-class AudioTrackList : public TrackListBase {
+class AudioTrackList final : public TrackListBase {
 public:
     static PassRefPtr<AudioTrackList> create(HTMLMediaElement* owner, ScriptExecutionContext* context)
     {
index 2b67287..f8a0d7a 100644 (file)
@@ -43,7 +43,7 @@ namespace WebCore {
 
 class ScriptExecutionContext;
 
-class DataCue : public TextTrackCue {
+class DataCue final : public TextTrackCue {
 public:
     static PassRefPtr<DataCue> create(ScriptExecutionContext& context, const MediaTime& start, const MediaTime& end, ArrayBuffer* data, ExceptionCode& ec)
     {
@@ -73,7 +73,7 @@ public:
 #endif
 
     virtual ~DataCue();
-    virtual CueType cueType() const { return Data; }
+    virtual CueType cueType() const override { return Data; }
 
     PassRefPtr<ArrayBuffer> data() const;
     void setData(ArrayBuffer*, ExceptionCode&);
index 1166e4b..45b9c64 100644 (file)
@@ -42,7 +42,7 @@ class InbandTextTrackPrivate;
 class SerializedPlatformRepresentation;
 #endif
 
-class InbandDataTextTrack : public InbandTextTrack {
+class InbandDataTextTrack final : public InbandTextTrack {
 public:
     static PassRefPtr<InbandDataTextTrack> create(ScriptExecutionContext*, TextTrackClient*, PassRefPtr<InbandTextTrackPrivate>);
     virtual ~InbandDataTextTrack();
index d01fa83..d79a85b 100644 (file)
@@ -39,10 +39,10 @@ class Document;
 class InbandTextTrackPrivate;
 class TextTrackCue;
 
-class GenericTextTrackCueMap {
+class GenericTextTrackCueMap final {
 public:
     GenericTextTrackCueMap();
-    virtual ~GenericTextTrackCueMap();
+    ~GenericTextTrackCueMap();
 
     void add(GenericCueData*, TextTrackCueGeneric*);
 
@@ -60,7 +60,7 @@ private:
     CueDataToCueMap m_dataToCueMap;
 };
 
-class InbandGenericTextTrack : public InbandTextTrack, private WebVTTParserClient {
+class InbandGenericTextTrack final : public InbandTextTrack, private WebVTTParserClient {
 public:
     static PassRefPtr<InbandGenericTextTrack> create(ScriptExecutionContext*, TextTrackClient*, PassRefPtr<InbandTextTrackPrivate>);
     virtual ~InbandGenericTextTrack();
index 067302a..0a1e403 100644 (file)
@@ -53,8 +53,6 @@ public:
 
     void setPrivate(PassRefPtr<InbandTextTrackPrivate>);
 
-    virtual bool isInband() const override { return true; }
-
 protected:
     InbandTextTrack(ScriptExecutionContext*, TextTrackClient*, PassRefPtr<InbandTextTrackPrivate>);
 
@@ -64,7 +62,7 @@ protected:
     RefPtr<InbandTextTrackPrivate> m_private;
 
 private:
-
+    virtual bool isInband() const override final { return true; }
     virtual void idChanged(TrackPrivateBase*, const AtomicString&) override;
     virtual void labelChanged(TrackPrivateBase*, const AtomicString&) override;
     virtual void languageChanged(TrackPrivateBase*, const AtomicString&) override;
index abbbdd8..0bd8bce 100644 (file)
@@ -35,7 +35,7 @@
 
 namespace WebCore {
 
-class InbandWebVTTTextTrack : public InbandTextTrack, private WebVTTParserClient {
+class InbandWebVTTTextTrack final : public InbandTextTrack, private WebVTTParserClient {
 public:
     static PassRefPtr<InbandTextTrack> create(ScriptExecutionContext*, TextTrackClient*, PassRefPtr<InbandTextTrackPrivate>);
     virtual ~InbandWebVTTTextTrack();
index b112b0f..06e3fea 100644 (file)
@@ -38,7 +38,7 @@ namespace WebCore {
 class HTMLTrackElement;
 class LoadableTextTrack;
 
-class LoadableTextTrack : public TextTrack, private TextTrackLoaderClient {
+class LoadableTextTrack final : public TextTrack, private TextTrackLoaderClient {
 public:
     static PassRefPtr<LoadableTextTrack> create(HTMLTrackElement* track, const String& kind, const String& label, const String& language)
     {
@@ -65,7 +65,7 @@ private:
     virtual void newCuesAvailable(TextTrackLoader*) override;
     virtual void cueLoadingCompleted(TextTrackLoader*, bool loadingFailed) override;
 #if ENABLE(WEBVTT_REGIONS)
-    virtual void newRegionsAvailable(TextTrackLoader*);
+    virtual void newRegionsAvailable(TextTrackLoader*) override;
 #endif
 
     LoadableTextTrack(HTMLTrackElement*, const String& kind, const String& label, const String& language);
index 817788d..562ad12 100644 (file)
@@ -34,7 +34,7 @@ namespace WebCore {
 
 class TextTrack;
 
-class TextTrackList : public TrackListBase {
+class TextTrackList final : public TrackListBase {
 public:
     static PassRefPtr<TextTrackList> create(HTMLMediaElement* element, ScriptExecutionContext* context)
     {
index b199b3f..aae7d82 100644 (file)
@@ -39,7 +39,7 @@ struct TrackEventInit : public EventInit {
     RefPtr<TrackBase> track;
 };
 
-class TrackEvent : public Event {
+class TrackEvent final : public Event {
 public:
     virtual ~TrackEvent();
 
index 422fa84..8c2a194 100644 (file)
@@ -59,12 +59,12 @@ public:
     virtual void applyCSSProperties(const IntSize& videoSize);
 
     static const AtomicString& vttCueBoxShadowPseudoId();
-    virtual void setFontSizeFromCaptionUserPrefs(int fontSize) { m_fontSizeFromCaptionUserPrefs = fontSize; }
+    void setFontSizeFromCaptionUserPrefs(int fontSize) { m_fontSizeFromCaptionUserPrefs = fontSize; }
 
 protected:
     VTTCueBox(Document&, VTTCue&);
 
-    virtual RenderPtr<RenderElement> createElementRenderer(PassRef<RenderStyle>) override;
+    virtual RenderPtr<RenderElement> createElementRenderer(PassRef<RenderStyle>) override final;
 
     VTTCue& m_cue;
     int m_fontSizeFromCaptionUserPrefs;
index db965ab..e162f52 100644 (file)
@@ -46,7 +46,7 @@ class HTMLDivElement;
 class VTTCueBox;
 class VTTScanner;
 
-class VTTRegion : public RefCounted<VTTRegion>, public ContextDestructionObserver {
+class VTTRegion final : public RefCounted<VTTRegion>, public ContextDestructionObserver {
 public:
     static PassRefPtr<VTTRegion> create(ScriptExecutionContext& context)
     {
index 27a5102..80c21c6 100644 (file)
@@ -46,7 +46,7 @@ public:
     virtual void videoTrackSelectedChanged(VideoTrack*) = 0;
 };
 
-class VideoTrack : public TrackBase, public VideoTrackPrivateClient {
+class VideoTrack final : public TrackBase, public VideoTrackPrivateClient {
 public:
     static PassRefPtr<VideoTrack> create(VideoTrackClient* client, PassRefPtr<VideoTrackPrivate> trackPrivate)
     {
index 62193b5..c7b27c1 100644 (file)
@@ -34,13 +34,13 @@ namespace WebCore {
 
 class VideoTrack;
 
-class VideoTrackList : public TrackListBase {
+class VideoTrackList final : public TrackListBase {
 public:
     static PassRefPtr<VideoTrackList> create(HTMLMediaElement* owner, ScriptExecutionContext* context)
     {
         return adoptRef(new VideoTrackList(owner, context));
     }
-    ~VideoTrackList();
+    virtual ~VideoTrackList();
 
     VideoTrack* getTrackById(const AtomicString&) const;
     long selectedIndex() const;
index b06938c..c347ae0 100644 (file)
@@ -64,11 +64,11 @@ public:
     virtual void fileFailedToParse() = 0;
 };
 
-class WebVTTCueData : public RefCounted<WebVTTCueData> {
+class WebVTTCueData final : public RefCounted<WebVTTCueData> {
 public:
 
     static PassRefPtr<WebVTTCueData> create() { return adoptRef(new WebVTTCueData()); }
-    virtual ~WebVTTCueData() { }
+    ~WebVTTCueData() { }
 
     MediaTime startTime() const { return m_startTime; }
     void setStartTime(const MediaTime& startTime) { m_startTime = startTime; }