Remove "virtual" from all lines that have both "virtual" and "override".
https://bugs.webkit.org/show_bug.cgi?id=155005

Reviewed by Geoffrey Garen.

* Scripts/do-webcore-rename: Added a regular expression to this script to do the job.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@197563 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/html/AttributeDOMTokenList.h b/Source/WebCore/html/AttributeDOMTokenList.h
index 6fd8c00..85fb7e5 100644
--- a/Source/WebCore/html/AttributeDOMTokenList.h
+++ b/Source/WebCore/html/AttributeDOMTokenList.h
@@ -38,11 +38,11 @@
     void attributeValueChanged(const AtomicString&);
 
 private:
-    virtual void ref() override { m_element.ref(); }
-    virtual void deref() override { m_element.deref(); }
+    void ref() override { m_element.ref(); }
+    void deref() override { m_element.deref(); }
 
-    virtual Element* element() const override { return &m_element; }
-    virtual void updateAfterTokenChange() override;
+    Element* element() const override { return &m_element; }
+    void updateAfterTokenChange() override;
 
     Element& m_element;
     const WebCore::QualifiedName& m_attributeName;
diff --git a/Source/WebCore/html/BaseButtonInputType.h b/Source/WebCore/html/BaseButtonInputType.h
index fe0a918..c501dbc 100644
--- a/Source/WebCore/html/BaseButtonInputType.h
+++ b/Source/WebCore/html/BaseButtonInputType.h
@@ -41,11 +41,11 @@
     explicit BaseButtonInputType(HTMLInputElement& element) : BaseClickableWithKeyInputType(element) { }
 
 private:
-    virtual bool shouldSaveAndRestoreFormControlState() const override;
-    virtual bool appendFormData(FormDataList&, bool) const override;
-    virtual RenderPtr<RenderElement> createInputRenderer(Ref<RenderStyle>&&) override;
-    virtual bool storesValueSeparateFromAttribute() override;
-    virtual void setValue(const String&, bool, TextFieldEventBehavior) override;
+    bool shouldSaveAndRestoreFormControlState() const override;
+    bool appendFormData(FormDataList&, bool) const override;
+    RenderPtr<RenderElement> createInputRenderer(Ref<RenderStyle>&&) override;
+    bool storesValueSeparateFromAttribute() override;
+    void setValue(const String&, bool, TextFieldEventBehavior) override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/BaseCheckableInputType.h b/Source/WebCore/html/BaseCheckableInputType.h
index fc60ec1..ae2155b 100644
--- a/Source/WebCore/html/BaseCheckableInputType.h
+++ b/Source/WebCore/html/BaseCheckableInputType.h
@@ -39,19 +39,19 @@
 class BaseCheckableInputType : public InputType {
 protected:
     explicit BaseCheckableInputType(HTMLInputElement& element) : InputType(element) { }
-    virtual void handleKeydownEvent(KeyboardEvent*) override;
+    void handleKeydownEvent(KeyboardEvent*) override;
 
 private:
-    virtual FormControlState saveFormControlState() const override;
-    virtual void restoreFormControlState(const FormControlState&) override;
-    virtual bool appendFormData(FormDataList&, bool) const override;
-    virtual void handleKeypressEvent(KeyboardEvent*) override;
-    virtual bool canSetStringValue() const override;
-    virtual void accessKeyAction(bool sendMouseEvents) override;
-    virtual String fallbackValue() const override;
-    virtual bool storesValueSeparateFromAttribute() override;
-    virtual void setValue(const String&, bool, TextFieldEventBehavior) override;
-    virtual bool isCheckable() override;
+    FormControlState saveFormControlState() const override;
+    void restoreFormControlState(const FormControlState&) override;
+    bool appendFormData(FormDataList&, bool) const override;
+    void handleKeypressEvent(KeyboardEvent*) override;
+    bool canSetStringValue() const override;
+    void accessKeyAction(bool sendMouseEvents) override;
+    String fallbackValue() const override;
+    bool storesValueSeparateFromAttribute() override;
+    void setValue(const String&, bool, TextFieldEventBehavior) override;
+    bool isCheckable() override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.h b/Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.h
index 626c12f..5e2df99 100644
--- a/Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.h
+++ b/Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.h
@@ -44,19 +44,19 @@
     void closeDateTimeChooser();
 
     // InputType functions:
-    virtual void createShadowSubtree() override;
-    virtual void detach() override;
-    virtual void setValue(const String&, bool valueChanged, TextFieldEventBehavior) override;
-    virtual void handleDOMActivateEvent(Event*) override;
-    virtual void handleKeydownEvent(KeyboardEvent*) override;
-    virtual void handleKeypressEvent(KeyboardEvent*) override;
-    virtual void handleKeyupEvent(KeyboardEvent*) override;
-    virtual void accessKeyAction(bool sendMouseEvents) override;
-    virtual bool isMouseFocusable() const override;
+    void createShadowSubtree() override;
+    void detach() override;
+    void setValue(const String&, bool valueChanged, TextFieldEventBehavior) override;
+    void handleDOMActivateEvent(Event*) override;
+    void handleKeydownEvent(KeyboardEvent*) override;
+    void handleKeypressEvent(KeyboardEvent*) override;
+    void handleKeyupEvent(KeyboardEvent*) override;
+    void accessKeyAction(bool sendMouseEvents) override;
+    bool isMouseFocusable() const override;
 
     // DateTimeChooserClient functions:
-    virtual void didChooseValue(const String&) override;
-    virtual void didEndChooser() override;
+    void didChooseValue(const String&) override;
+    void didEndChooser() override;
 
     RefPtr<DateTimeChooser> m_dateTimeChooser;
 };
diff --git a/Source/WebCore/html/BaseClickableWithKeyInputType.h b/Source/WebCore/html/BaseClickableWithKeyInputType.h
index 9bf1d48..bdd4500 100644
--- a/Source/WebCore/html/BaseClickableWithKeyInputType.h
+++ b/Source/WebCore/html/BaseClickableWithKeyInputType.h
@@ -47,10 +47,10 @@
     explicit BaseClickableWithKeyInputType(HTMLInputElement& element) : InputType(element) { }
 
 private:
-    virtual void handleKeydownEvent(KeyboardEvent*) override;
-    virtual void handleKeypressEvent(KeyboardEvent*) override;
-    virtual void handleKeyupEvent(KeyboardEvent*) override;
-    virtual void accessKeyAction(bool sendMouseEvents) override;
+    void handleKeydownEvent(KeyboardEvent*) override;
+    void handleKeypressEvent(KeyboardEvent*) override;
+    void handleKeyupEvent(KeyboardEvent*) override;
+    void accessKeyAction(bool sendMouseEvents) override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/BaseDateAndTimeInputType.h b/Source/WebCore/html/BaseDateAndTimeInputType.h
index a3bcd3a..0f09c77 100644
--- a/Source/WebCore/html/BaseDateAndTimeInputType.h
+++ b/Source/WebCore/html/BaseDateAndTimeInputType.h
@@ -42,15 +42,15 @@
 protected:
     BaseDateAndTimeInputType(HTMLInputElement& element) : InputType(element) { }
 
-    virtual Decimal parseToNumber(const String&, const Decimal&) const override;
-    virtual bool parseToDateComponents(const String&, DateComponents*) const override;
-    virtual String sanitizeValue(const String&) const override;
-    virtual String serialize(const Decimal&) const override;
+    Decimal parseToNumber(const String&, const Decimal&) const override;
+    bool parseToDateComponents(const String&, DateComponents*) const override;
+    String sanitizeValue(const String&) const override;
+    String serialize(const Decimal&) const override;
     String serializeWithComponents(const DateComponents&) const;
     virtual bool setMillisecondToDateComponents(double, DateComponents*) const = 0;
-    virtual String visibleValue() const override;
+    String visibleValue() const override;
 #if PLATFORM(IOS)
-    virtual bool isKeyboardFocusable(KeyboardEvent*) const override;
+    bool isKeyboardFocusable(KeyboardEvent*) const override;
 #endif
 
 private:
@@ -58,19 +58,19 @@
 #if !PLATFORM(IOS)
     virtual DateComponents::Type dateType() const = 0;
 #endif
-    virtual double valueAsDate() const override;
-    virtual void setValueAsDate(double, ExceptionCode&) const override;
-    virtual double valueAsDouble() const override;
-    virtual void setValueAsDecimal(const Decimal&, TextFieldEventBehavior, ExceptionCode&) const override;
-    virtual bool typeMismatchFor(const String&) const override;
-    virtual bool typeMismatch() const override;
-    virtual bool valueMissing(const String&) const override;
-    virtual Decimal defaultValueForStepUp() const override;
-    virtual bool isSteppable() const override;
+    double valueAsDate() const override;
+    void setValueAsDate(double, ExceptionCode&) const override;
+    double valueAsDouble() const override;
+    void setValueAsDecimal(const Decimal&, TextFieldEventBehavior, ExceptionCode&) const override;
+    bool typeMismatchFor(const String&) const override;
+    bool typeMismatch() const override;
+    bool valueMissing(const String&) const override;
+    Decimal defaultValueForStepUp() const override;
+    bool isSteppable() const override;
     virtual String serializeWithMilliseconds(double) const;
-    virtual String localizeValue(const String&) const override;
-    virtual bool supportsReadOnly() const override;
-    virtual bool shouldRespectListAttribute() override;
+    String localizeValue(const String&) const override;
+    bool supportsReadOnly() const override;
+    bool shouldRespectListAttribute() override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/BaseTextInputType.h b/Source/WebCore/html/BaseTextInputType.h
index ee550d4..8289fd9 100644
--- a/Source/WebCore/html/BaseTextInputType.h
+++ b/Source/WebCore/html/BaseTextInputType.h
@@ -42,10 +42,10 @@
     explicit BaseTextInputType(HTMLInputElement& element) : TextFieldInputType(element) { }
 
 private:
-    virtual bool isTextType() const override;
-    virtual bool patternMismatch(const String&) const override;
-    virtual bool supportsPlaceholder() const override;
-    virtual bool supportsSelectionAPI() const override;
+    bool isTextType() const override;
+    bool patternMismatch(const String&) const override;
+    bool supportsPlaceholder() const override;
+    bool supportsSelectionAPI() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/ButtonInputType.h b/Source/WebCore/html/ButtonInputType.h
index 1dea033..5c62862 100644
--- a/Source/WebCore/html/ButtonInputType.h
+++ b/Source/WebCore/html/ButtonInputType.h
@@ -40,9 +40,9 @@
     explicit ButtonInputType(HTMLInputElement& element) : BaseButtonInputType(element) { }
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual bool supportsValidation() const override;
-    virtual bool isTextButton() const override;
+    const AtomicString& formControlType() const override;
+    bool supportsValidation() const override;
+    bool isTextButton() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/CachedHTMLCollection.h b/Source/WebCore/html/CachedHTMLCollection.h
index dcb022b..1df7f83 100644
--- a/Source/WebCore/html/CachedHTMLCollection.h
+++ b/Source/WebCore/html/CachedHTMLCollection.h
@@ -39,10 +39,10 @@
 
     virtual ~CachedHTMLCollection();
 
-    virtual unsigned length() const override final { return m_indexCache.nodeCount(collection()); }
-    virtual Element* item(unsigned offset) const override { return m_indexCache.nodeAt(collection(), offset); }
-    virtual Element* namedItem(const AtomicString& name) const override;
-    virtual size_t memoryCost() const override final { return m_indexCache.memoryCost() + HTMLCollection::memoryCost(); }
+    unsigned length() const override final { return m_indexCache.nodeCount(collection()); }
+    Element* item(unsigned offset) const override { return m_indexCache.nodeAt(collection(), offset); }
+    Element* namedItem(const AtomicString& name) const override;
+    size_t memoryCost() const override final { return m_indexCache.memoryCost() + HTMLCollection::memoryCost(); }
 
     // For CollectionIndexCache; do not use elsewhere.
     using CollectionTraversalIterator = typename CollectionTraversal<traversalType>::Iterator;
@@ -54,7 +54,7 @@
     bool collectionCanTraverseBackward() const { return traversalType != CollectionTraversalType::CustomForwardOnly; }
     void willValidateIndexCache() const { document().registerCollection(const_cast<CachedHTMLCollection<HTMLCollectionClass, traversalType>&>(*this)); }
 
-    virtual void invalidateCache(Document&) override;
+    void invalidateCache(Document&) override;
 
     bool elementMatches(Element&) const;
 
diff --git a/Source/WebCore/html/CheckboxInputType.h b/Source/WebCore/html/CheckboxInputType.h
index 854ce3e..3d38e1f 100644
--- a/Source/WebCore/html/CheckboxInputType.h
+++ b/Source/WebCore/html/CheckboxInputType.h
@@ -40,14 +40,14 @@
     explicit CheckboxInputType(HTMLInputElement& element) : BaseCheckableInputType(element) { }
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual bool valueMissing(const String&) const override;
-    virtual String valueMissingText() const override;
-    virtual void handleKeyupEvent(KeyboardEvent*) override;
-    virtual void willDispatchClick(InputElementClickState&) override;
-    virtual void didDispatchClick(Event*, const InputElementClickState&) override;
-    virtual bool isCheckbox() const override;
-    virtual bool supportsIndeterminateAppearance() const override;
+    const AtomicString& formControlType() const override;
+    bool valueMissing(const String&) const override;
+    String valueMissingText() const override;
+    void handleKeyupEvent(KeyboardEvent*) override;
+    void willDispatchClick(InputElementClickState&) override;
+    void didDispatchClick(Event*, const InputElementClickState&) override;
+    bool isCheckbox() const override;
+    bool supportsIndeterminateAppearance() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/ColorInputType.h b/Source/WebCore/html/ColorInputType.h
index fe577ca..ff6498b 100644
--- a/Source/WebCore/html/ColorInputType.h
+++ b/Source/WebCore/html/ColorInputType.h
@@ -45,26 +45,26 @@
     virtual ~ColorInputType();
 
 private:
-    virtual void didChooseColor(const Color&) override;
-    virtual void didEndChooser() override;
-    virtual IntRect elementRectRelativeToRootView() const override;
-    virtual Color currentColor() override;
-    virtual bool shouldShowSuggestions() const override;
-    virtual Vector<Color> suggestions() const override;
-    virtual bool isColorControl() const override;
-    virtual const AtomicString& formControlType() const override;
-    virtual bool supportsRequired() const override;
-    virtual String fallbackValue() const override;
-    virtual String sanitizeValue(const String&) const override;
-    virtual void createShadowSubtree() override;
-    virtual void setValue(const String&, bool valueChanged, TextFieldEventBehavior) override;
-    virtual void handleDOMActivateEvent(Event*) override;
-    virtual void detach() override;
-    virtual bool shouldRespectListAttribute() override;
-    virtual bool typeMismatchFor(const String&) const override;
-    virtual bool shouldResetOnDocumentActivation() override;
-    virtual Color valueAsColor() const override;
-    virtual void selectColor(const Color&) override;
+    void didChooseColor(const Color&) override;
+    void didEndChooser() override;
+    IntRect elementRectRelativeToRootView() const override;
+    Color currentColor() override;
+    bool shouldShowSuggestions() const override;
+    Vector<Color> suggestions() const override;
+    bool isColorControl() const override;
+    const AtomicString& formControlType() const override;
+    bool supportsRequired() const override;
+    String fallbackValue() const override;
+    String sanitizeValue(const String&) const override;
+    void createShadowSubtree() override;
+    void setValue(const String&, bool valueChanged, TextFieldEventBehavior) override;
+    void handleDOMActivateEvent(Event*) override;
+    void detach() override;
+    bool shouldRespectListAttribute() override;
+    bool typeMismatchFor(const String&) const override;
+    bool shouldResetOnDocumentActivation() override;
+    Color valueAsColor() const override;
+    void selectColor(const Color&) override;
 
     void endColorChooser();
     void updateColorSwatch();
diff --git a/Source/WebCore/html/DateInputType.h b/Source/WebCore/html/DateInputType.h
index 8ca01f5..7540a57 100644
--- a/Source/WebCore/html/DateInputType.h
+++ b/Source/WebCore/html/DateInputType.h
@@ -41,12 +41,12 @@
     explicit DateInputType(HTMLInputElement&);
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual DateComponents::Type dateType() const override;
-    virtual StepRange createStepRange(AnyStepHandling) const override;
-    virtual bool parseToDateComponentsInternal(const UChar*, unsigned length, DateComponents*) const override;
-    virtual bool setMillisecondToDateComponents(double, DateComponents*) const override;
-    virtual bool isDateField() const override;
+    const AtomicString& formControlType() const override;
+    DateComponents::Type dateType() const override;
+    StepRange createStepRange(AnyStepHandling) const override;
+    bool parseToDateComponentsInternal(const UChar*, unsigned length, DateComponents*) const override;
+    bool setMillisecondToDateComponents(double, DateComponents*) const override;
+    bool isDateField() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/DateTimeInputType.h b/Source/WebCore/html/DateTimeInputType.h
index 28b511e..0204a0a 100644
--- a/Source/WebCore/html/DateTimeInputType.h
+++ b/Source/WebCore/html/DateTimeInputType.h
@@ -42,14 +42,14 @@
     explicit DateTimeInputType(HTMLInputElement& element) : BaseDateTimeInputType(element) { }
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual DateComponents::Type dateType() const override;
-    virtual StepRange createStepRange(AnyStepHandling) const override;
-    virtual Decimal defaultValueForStepUp() const override;
-    virtual bool parseToDateComponentsInternal(const UChar*, unsigned length, DateComponents*) const override;
-    virtual bool setMillisecondToDateComponents(double, DateComponents*) const override;
-    virtual bool isDateTimeField() const override;
-    virtual String sanitizeValue(const String&) const override;
+    const AtomicString& formControlType() const override;
+    DateComponents::Type dateType() const override;
+    StepRange createStepRange(AnyStepHandling) const override;
+    Decimal defaultValueForStepUp() const override;
+    bool parseToDateComponentsInternal(const UChar*, unsigned length, DateComponents*) const override;
+    bool setMillisecondToDateComponents(double, DateComponents*) const override;
+    bool isDateTimeField() const override;
+    String sanitizeValue(const String&) const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/DateTimeLocalInputType.h b/Source/WebCore/html/DateTimeLocalInputType.h
index 929a4ca..88c0b5b 100644
--- a/Source/WebCore/html/DateTimeLocalInputType.h
+++ b/Source/WebCore/html/DateTimeLocalInputType.h
@@ -41,14 +41,14 @@
     explicit DateTimeLocalInputType(HTMLInputElement& element) : BaseChooserOnlyDateAndTimeInputType(element) { }
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual DateComponents::Type dateType() const override;
-    virtual double valueAsDate() const override;
-    virtual void setValueAsDate(double, ExceptionCode&) const override;
-    virtual StepRange createStepRange(AnyStepHandling) const override;
-    virtual bool parseToDateComponentsInternal(const UChar*, unsigned length, DateComponents*) const override;
-    virtual bool setMillisecondToDateComponents(double, DateComponents*) const override;
-    virtual bool isDateTimeLocalField() const override;
+    const AtomicString& formControlType() const override;
+    DateComponents::Type dateType() const override;
+    double valueAsDate() const override;
+    void setValueAsDate(double, ExceptionCode&) const override;
+    StepRange createStepRange(AnyStepHandling) const override;
+    bool parseToDateComponentsInternal(const UChar*, unsigned length, DateComponents*) const override;
+    bool setMillisecondToDateComponents(double, DateComponents*) const override;
+    bool isDateTimeLocalField() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/EmailInputType.h b/Source/WebCore/html/EmailInputType.h
index 45818cc..3de88b4 100644
--- a/Source/WebCore/html/EmailInputType.h
+++ b/Source/WebCore/html/EmailInputType.h
@@ -40,13 +40,13 @@
     explicit EmailInputType(HTMLInputElement& element) : BaseTextInputType(element) { }
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual bool typeMismatchFor(const String&) const override;
-    virtual bool typeMismatch() const override;
-    virtual String typeMismatchText() const override;
-    virtual bool isEmailField() const override;
-    virtual bool supportsSelectionAPI() const override;
-    virtual String sanitizeValue(const String&) const override;
+    const AtomicString& formControlType() const override;
+    bool typeMismatchFor(const String&) const override;
+    bool typeMismatch() const override;
+    String typeMismatchText() const override;
+    bool isEmailField() const override;
+    bool supportsSelectionAPI() const override;
+    String sanitizeValue(const String&) const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/FTPDirectoryDocument.cpp b/Source/WebCore/html/FTPDirectoryDocument.cpp
index 54eb790..7a64533 100644
--- a/Source/WebCore/html/FTPDirectoryDocument.cpp
+++ b/Source/WebCore/html/FTPDirectoryDocument.cpp
@@ -50,11 +50,11 @@
     }
 
 private:
-    virtual void append(RefPtr<StringImpl>&&) override;
-    virtual void finish() override;
+    void append(RefPtr<StringImpl>&&) override;
+    void finish() override;
 
     // FIXME: Why do we need this?
-    virtual bool isWaitingForScripts() const override { return false; }
+    bool isWaitingForScripts() const override { return false; }
 
     void checkBuffer(int len = 10)
     {
diff --git a/Source/WebCore/html/FTPDirectoryDocument.h b/Source/WebCore/html/FTPDirectoryDocument.h
index c156ad6..1979ae8 100644
--- a/Source/WebCore/html/FTPDirectoryDocument.h
+++ b/Source/WebCore/html/FTPDirectoryDocument.h
@@ -40,7 +40,7 @@
 
 private:
     FTPDirectoryDocument(Frame*, const URL&);
-    virtual Ref<DocumentParser> createParser() override;
+    Ref<DocumentParser> createParser() override;
 };
     
 } // namespace WebCore
diff --git a/Source/WebCore/html/FileInputType.h b/Source/WebCore/html/FileInputType.h
index aaecc06..9a50144 100644
--- a/Source/WebCore/html/FileInputType.h
+++ b/Source/WebCore/html/FileInputType.h
@@ -51,44 +51,44 @@
     static Vector<FileChooserFileInfo> filesFromFormControlState(const FormControlState&);
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual FormControlState saveFormControlState() const override;
-    virtual void restoreFormControlState(const FormControlState&) override;
-    virtual bool appendFormData(FormDataList&, bool) const override;
-    virtual bool valueMissing(const String&) const override;
-    virtual String valueMissingText() const override;
-    virtual void handleDOMActivateEvent(Event*) override;
-    virtual RenderPtr<RenderElement> createInputRenderer(Ref<RenderStyle>&&) override;
-    virtual bool canSetStringValue() const override;
-    virtual bool canChangeFromAnotherType() const override;
-    virtual FileList* files() override;
-    virtual void setFiles(PassRefPtr<FileList>) override;
+    const AtomicString& formControlType() const override;
+    FormControlState saveFormControlState() const override;
+    void restoreFormControlState(const FormControlState&) override;
+    bool appendFormData(FormDataList&, bool) const override;
+    bool valueMissing(const String&) const override;
+    String valueMissingText() const override;
+    void handleDOMActivateEvent(Event*) override;
+    RenderPtr<RenderElement> createInputRenderer(Ref<RenderStyle>&&) override;
+    bool canSetStringValue() const override;
+    bool canChangeFromAnotherType() const override;
+    FileList* files() override;
+    void setFiles(PassRefPtr<FileList>) override;
 #if PLATFORM(IOS)
-    virtual String displayString() const override;
+    String displayString() const override;
 #endif
-    virtual bool canSetValue(const String&) override;
-    virtual bool getTypeSpecificValue(String&) override; // Checked first, before internal storage or the value attribute.
-    virtual void setValue(const String&, bool valueChanged, TextFieldEventBehavior) override;
+    bool canSetValue(const String&) override;
+    bool getTypeSpecificValue(String&) override; // Checked first, before internal storage or the value attribute.
+    void setValue(const String&, bool valueChanged, TextFieldEventBehavior) override;
 
 #if ENABLE(DRAG_SUPPORT)
-    virtual bool receiveDroppedFiles(const DragData&) override;
+    bool receiveDroppedFiles(const DragData&) override;
 #endif
 
-    virtual Icon* icon() const override;
-    virtual bool isFileUpload() const override;
-    virtual void createShadowSubtree() override;
-    virtual void disabledAttributeChanged() override;
-    virtual void multipleAttributeChanged() override;
-    virtual String defaultToolTip() const override;
+    Icon* icon() const override;
+    bool isFileUpload() const override;
+    void createShadowSubtree() override;
+    void disabledAttributeChanged() override;
+    void multipleAttributeChanged() override;
+    String defaultToolTip() const override;
 
     // FileChooserClient implementation.
-    virtual void filesChosen(const Vector<FileChooserFileInfo>&) override;
+    void filesChosen(const Vector<FileChooserFileInfo>&) override;
 #if PLATFORM(IOS)
-    virtual void filesChosen(const Vector<FileChooserFileInfo>&, const String& displayString, Icon*) override;
+    void filesChosen(const Vector<FileChooserFileInfo>&, const String& displayString, Icon*) override;
 #endif
 
     // FileIconLoaderClient implementation.
-    virtual void updateRendering(PassRefPtr<Icon>) override;
+    void updateRendering(PassRefPtr<Icon>) override;
 
     PassRefPtr<FileList> createFileList(const Vector<FileChooserFileInfo>& files) const;
     void requestIcon(const Vector<String>&);
diff --git a/Source/WebCore/html/FormAssociatedElement.cpp b/Source/WebCore/html/FormAssociatedElement.cpp
index 7593904..da3de8d 100644
--- a/Source/WebCore/html/FormAssociatedElement.cpp
+++ b/Source/WebCore/html/FormAssociatedElement.cpp
@@ -44,7 +44,7 @@
     FormAttributeTargetObserver(const AtomicString& id, FormAssociatedElement&);
 
 private:
-    virtual void idTargetChanged() override;
+    void idTargetChanged() override;
 
     FormAssociatedElement& m_element;
 };
diff --git a/Source/WebCore/html/FormAssociatedElement.h b/Source/WebCore/html/FormAssociatedElement.h
index f39acf2..78411e7 100644
--- a/Source/WebCore/html/FormAssociatedElement.h
+++ b/Source/WebCore/html/FormAssociatedElement.h
@@ -112,7 +112,7 @@
 
     void resetFormAttributeTargetObserver();
 
-    virtual bool isFormAssociatedElement() const override final { return true; }
+    bool isFormAssociatedElement() const override final { return true; }
 
     std::unique_ptr<FormAttributeTargetObserver> m_formAttributeTargetObserver;
     HTMLFormElement* m_form;
diff --git a/Source/WebCore/html/HTMLAnchorElement.h b/Source/WebCore/html/HTMLAnchorElement.h
index 1483b16..660c706 100644
--- a/Source/WebCore/html/HTMLAnchorElement.h
+++ b/Source/WebCore/html/HTMLAnchorElement.h
@@ -103,7 +103,7 @@
 
     bool isLiveLink() const;
 
-    virtual bool willRespondToMouseClickEvents() override final;
+    bool willRespondToMouseClickEvents() override final;
 
     bool hasRel(uint32_t relation) const;
     
@@ -115,20 +115,20 @@
 protected:
     HTMLAnchorElement(const QualifiedName&, Document&);
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
 
 private:
-    virtual bool supportsFocus() const override;
-    virtual bool isMouseFocusable() const override;
-    virtual bool isKeyboardFocusable(KeyboardEvent*) const override;
-    virtual void defaultEventHandler(Event*) override final;
-    virtual void setActive(bool active = true, bool pause = false) override final;
-    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 final;
+    bool supportsFocus() const override;
+    bool isMouseFocusable() const override;
+    bool isKeyboardFocusable(KeyboardEvent*) const override;
+    void defaultEventHandler(Event*) override final;
+    void setActive(bool active = true, bool pause = false) override final;
+    void accessKeyAction(bool sendMouseEvents) override final;
+    bool isURLAttribute(const Attribute&) const override final;
+    bool canStartSelection() const override final;
+    String target() const override;
+    short tabIndex() const override final;
+    bool draggable() const override final;
 
     void sendPings(const URL& destinationURL);
 
diff --git a/Source/WebCore/html/HTMLAppletElement.h b/Source/WebCore/html/HTMLAppletElement.h
index ea8941e..f488bf1 100644
--- a/Source/WebCore/html/HTMLAppletElement.h
+++ b/Source/WebCore/html/HTMLAppletElement.h
@@ -34,13 +34,13 @@
 private:
     HTMLAppletElement(const QualifiedName&, Document&, bool createdByParser);
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
     
-    virtual bool rendererIsNeeded(const RenderStyle&) override;
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    bool rendererIsNeeded(const RenderStyle&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 
-    virtual RenderWidget* renderWidgetLoadingPlugin() const override;
-    virtual void updateWidget(PluginCreationOption) override;
+    RenderWidget* renderWidgetLoadingPlugin() const override;
+    void updateWidget(PluginCreationOption) override;
 
     bool canEmbedJava() const;
 };
diff --git a/Source/WebCore/html/HTMLAreaElement.h b/Source/WebCore/html/HTMLAreaElement.h
index a063b81..707b05c 100644
--- a/Source/WebCore/html/HTMLAreaElement.h
+++ b/Source/WebCore/html/HTMLAreaElement.h
@@ -51,14 +51,14 @@
 private:
     HTMLAreaElement(const QualifiedName&, Document&);
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual bool supportsFocus() const override;
-    virtual String target() const override;
-    virtual bool isKeyboardFocusable(KeyboardEvent*) const override;
-    virtual bool isMouseFocusable() const override;
-    virtual bool isFocusable() const override;
-    virtual void updateFocusAppearance(SelectionRestorationMode, SelectionRevealMode) override;
-    virtual void setFocus(bool) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool supportsFocus() const override;
+    String target() const override;
+    bool isKeyboardFocusable(KeyboardEvent*) const override;
+    bool isMouseFocusable() const override;
+    bool isFocusable() const override;
+    void updateFocusAppearance(SelectionRestorationMode, SelectionRevealMode) override;
+    void setFocus(bool) override;
 
     enum Shape { Default, Poly, Rect, Circle, Unknown };
     Path getRegion(const LayoutSize&) const;
diff --git a/Source/WebCore/html/HTMLAttachmentElement.h b/Source/WebCore/html/HTMLAttachmentElement.h
index e54dc89..cc431ba 100644
--- a/Source/WebCore/html/HTMLAttachmentElement.h
+++ b/Source/WebCore/html/HTMLAttachmentElement.h
@@ -47,11 +47,11 @@
     HTMLAttachmentElement(const QualifiedName&, Document&);
     virtual ~HTMLAttachmentElement();
 
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 
-    virtual bool shouldSelectOnMouseDown() override { return true; }
-    virtual bool canContainRangeEndPoint() const override { return false; }
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool shouldSelectOnMouseDown() override { return true; }
+    bool canContainRangeEndPoint() const override { return false; }
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
     
     RefPtr<File> m_file;
 };
diff --git a/Source/WebCore/html/HTMLAudioElement.h b/Source/WebCore/html/HTMLAudioElement.h
index 75c6755..f8e8011 100644
--- a/Source/WebCore/html/HTMLAudioElement.h
+++ b/Source/WebCore/html/HTMLAudioElement.h
@@ -42,7 +42,7 @@
 private:
     HTMLAudioElement(const QualifiedName&, Document&, bool);
 
-    virtual PlatformMediaSession::MediaType presentationType() const override { return PlatformMediaSession::Audio; }
+    PlatformMediaSession::MediaType presentationType() const override { return PlatformMediaSession::Audio; }
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/HTMLBRElement.h b/Source/WebCore/html/HTMLBRElement.h
index 23e4fef..8e0c3bd 100644
--- a/Source/WebCore/html/HTMLBRElement.h
+++ b/Source/WebCore/html/HTMLBRElement.h
@@ -33,15 +33,15 @@
     static Ref<HTMLBRElement> create(Document&);
     static Ref<HTMLBRElement> create(const QualifiedName&, Document&);
 
-    virtual bool canContainRangeEndPoint() const override { return false; }
+    bool canContainRangeEndPoint() const override { return false; }
 
 private:
     HTMLBRElement(const QualifiedName&, Document&);
 
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
 
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 };
 
 } // namespace
diff --git a/Source/WebCore/html/HTMLBaseElement.h b/Source/WebCore/html/HTMLBaseElement.h
index a0e656d..a37c949 100644
--- a/Source/WebCore/html/HTMLBaseElement.h
+++ b/Source/WebCore/html/HTMLBaseElement.h
@@ -37,11 +37,11 @@
 private:
     HTMLBaseElement(const QualifiedName&, Document&);
 
-    virtual String target() const override;
-    virtual bool isURLAttribute(const Attribute&) const override;
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
-    virtual void removedFrom(ContainerNode&) override;
+    String target() const override;
+    bool isURLAttribute(const Attribute&) const override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    void removedFrom(ContainerNode&) override;
 };
 
 } // namespace
diff --git a/Source/WebCore/html/HTMLBodyElement.h b/Source/WebCore/html/HTMLBodyElement.h
index c4cdfd5..eec886eb 100644
--- a/Source/WebCore/html/HTMLBodyElement.h
+++ b/Source/WebCore/html/HTMLBodyElement.h
@@ -41,26 +41,26 @@
 
     bool isFirstBodyElementOfDocument() const;
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
 
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
 
-    virtual bool isURLAttribute(const Attribute&) const override;
+    bool isURLAttribute(const Attribute&) const override;
     
-    virtual bool supportsFocus() const override;
+    bool supportsFocus() const override;
 
-    virtual int scrollLeft() override;
-    virtual void setScrollLeft(int) override;
+    int scrollLeft() override;
+    void setScrollLeft(int) override;
     
-    virtual int scrollTop() override;
-    virtual void setScrollTop(int) override;
+    int scrollTop() override;
+    void setScrollTop(int) override;
     
-    virtual int scrollHeight() override;
-    virtual int scrollWidth() override;
+    int scrollHeight() override;
+    int scrollWidth() override;
     
-    virtual void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
+    void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
 
     static EventHandlerNameMap createWindowEventHandlerNameMap();
 };
diff --git a/Source/WebCore/html/HTMLButtonElement.h b/Source/WebCore/html/HTMLButtonElement.h
index 3b27080..160343f 100644
--- a/Source/WebCore/html/HTMLButtonElement.h
+++ b/Source/WebCore/html/HTMLButtonElement.h
@@ -36,41 +36,41 @@
     
     const AtomicString& value() const;
 
-    virtual bool willRespondToMouseClickEvents() override;
+    bool willRespondToMouseClickEvents() override;
 
 private:
     HTMLButtonElement(const QualifiedName& tagName, Document&, HTMLFormElement*);
 
     enum Type { SUBMIT, RESET, BUTTON };
 
-    virtual const AtomicString& formControlType() const override;
+    const AtomicString& formControlType() const override;
 
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 
     // HTMLFormControlElement always creates one, but buttons don't need it.
-    virtual bool alwaysCreateUserAgentShadowRoot() const override { return false; }
-    virtual bool canHaveUserAgentShadowRoot() const override final { return true; }
+    bool alwaysCreateUserAgentShadowRoot() const override { return false; }
+    bool canHaveUserAgentShadowRoot() const override final { return true; }
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void defaultEventHandler(Event*) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void defaultEventHandler(Event*) override;
 
-    virtual bool appendFormData(FormDataList&, bool) override;
+    bool appendFormData(FormDataList&, bool) override;
 
-    virtual bool isEnumeratable() const override { return true; }
-    virtual bool supportLabels() const override { return true; }
+    bool isEnumeratable() const override { return true; }
+    bool supportLabels() const override { return true; }
 
-    virtual bool isSuccessfulSubmitButton() const override;
-    virtual bool isActivatedSubmit() const override;
-    virtual void setActivatedSubmit(bool flag) override;
+    bool isSuccessfulSubmitButton() const override;
+    bool isActivatedSubmit() const override;
+    void setActivatedSubmit(bool flag) override;
 
-    virtual void accessKeyAction(bool sendMouseEvents) override;
-    virtual bool isURLAttribute(const Attribute&) const override;
+    void accessKeyAction(bool sendMouseEvents) override;
+    bool isURLAttribute(const Attribute&) const override;
 
-    virtual bool canStartSelection() const override { return false; }
+    bool canStartSelection() const override { return false; }
 
-    virtual bool isOptionalFormControl() const override { return true; }
-    virtual bool computeWillValidate() const override;
+    bool isOptionalFormControl() const override { return true; }
+    bool computeWillValidate() const override;
 
     Type m_type;
     bool m_isActivatedSubmit;
diff --git a/Source/WebCore/html/HTMLCanvasElement.h b/Source/WebCore/html/HTMLCanvasElement.h
index a774900..7e81135 100644
--- a/Source/WebCore/html/HTMLCanvasElement.h
+++ b/Source/WebCore/html/HTMLCanvasElement.h
@@ -149,11 +149,11 @@
 private:
     HTMLCanvasElement(const QualifiedName&, Document&);
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 
-    virtual bool canContainRangeEndPoint() const override;
-    virtual bool canStartSelection() const override;
+    bool canContainRangeEndPoint() const override;
+    bool canStartSelection() const override;
 
     void reset();
 
diff --git a/Source/WebCore/html/HTMLCollection.h b/Source/WebCore/html/HTMLCollection.h
index 8674c6a..dcd40eb 100644
--- a/Source/WebCore/html/HTMLCollection.h
+++ b/Source/WebCore/html/HTMLCollection.h
@@ -66,14 +66,14 @@
     virtual ~HTMLCollection();
 
     // DOM API
-    virtual Element* item(unsigned index) const override = 0; // Tighten return type from NodeList::item().
+    Element* item(unsigned index) const override = 0; // Tighten return type from NodeList::item().
     virtual Element* namedItem(const AtomicString& name) const = 0;
     const Vector<AtomicString>& supportedPropertyNames();
     RefPtr<NodeList> tags(const String&);
 
     // Non-DOM API
     Vector<Ref<Element>> namedItems(const AtomicString& name) const;
-    virtual size_t memoryCost() const override;
+    size_t memoryCost() const override;
 
     bool isRootedAtDocument() const;
     NodeListInvalidationType invalidationType() const;
diff --git a/Source/WebCore/html/HTMLDetailsElement.h b/Source/WebCore/html/HTMLDetailsElement.h
index 9234fe0..562854a 100644
--- a/Source/WebCore/html/HTMLDetailsElement.h
+++ b/Source/WebCore/html/HTMLDetailsElement.h
@@ -38,11 +38,11 @@
 private:
     HTMLDetailsElement(const QualifiedName&, Document&);
 
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
 
-    virtual void didAddUserAgentShadowRoot(ShadowRoot*) override;
-    virtual bool canHaveUserAgentShadowRoot() const override final { return true; }
+    void didAddUserAgentShadowRoot(ShadowRoot*) override;
+    bool canHaveUserAgentShadowRoot() const override final { return true; }
 
     bool m_isOpen { false };
     HTMLSlotElement* m_summarySlot { nullptr };
diff --git a/Source/WebCore/html/HTMLDivElement.h b/Source/WebCore/html/HTMLDivElement.h
index bcc0e98..d96f870 100644
--- a/Source/WebCore/html/HTMLDivElement.h
+++ b/Source/WebCore/html/HTMLDivElement.h
@@ -36,8 +36,8 @@
     HTMLDivElement(const QualifiedName&, Document&);
 
 private:
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/HTMLDocument.h b/Source/WebCore/html/HTMLDocument.h
index d7daeff..26db74f 100644
--- a/Source/WebCore/html/HTMLDocument.h
+++ b/Source/WebCore/html/HTMLDocument.h
@@ -86,9 +86,9 @@
     HTMLDocument(Frame*, const URL&, DocumentClassFlags = 0, unsigned constructionFlags = 0);
 
 private:
-    virtual bool isFrameSet() const override;
-    virtual Ref<DocumentParser> createParser() override;
-    virtual Ref<Document> cloneDocumentWithoutChildren() const override final;
+    bool isFrameSet() const override;
+    Ref<DocumentParser> createParser() override;
+    Ref<Document> cloneDocumentWithoutChildren() const override final;
 
     DocumentOrderedMap m_documentNamedItem;
     DocumentOrderedMap m_windowNamedItem;
diff --git a/Source/WebCore/html/HTMLElement.h b/Source/WebCore/html/HTMLElement.h
index 2624a42..3cc12c6 100644
--- a/Source/WebCore/html/HTMLElement.h
+++ b/Source/WebCore/html/HTMLElement.h
@@ -42,9 +42,9 @@
 public:
     static Ref<HTMLElement> create(const QualifiedName& tagName, Document&);
 
-    WEBCORE_EXPORT virtual String title() const override final;
+    WEBCORE_EXPORT String title() const override final;
 
-    virtual short tabIndex() const override;
+    short tabIndex() const override;
 
     void setInnerText(const String&, ExceptionCode&);
     void setOuterText(const String&, ExceptionCode&);
@@ -54,7 +54,7 @@
     void insertAdjacentText(const String& where, const String& text, ExceptionCode&);
 
     virtual bool hasCustomFocusLogic() const;
-    virtual bool supportsFocus() const override;
+    bool supportsFocus() const override;
 
     String contentEditable() const;
     void setContentEditable(const String&, ExceptionCode&);
@@ -72,12 +72,12 @@
 
     void click();
 
-    virtual void accessKeyAction(bool sendMouseEvents) override;
+    void accessKeyAction(bool sendMouseEvents) override;
 
     bool ieForbidsInsertHTML() const;
 
-    virtual bool rendererIsNeeded(const RenderStyle&) override;
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    bool rendererIsNeeded(const RenderStyle&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 
     HTMLFormElement* form() const { return virtualForm(); }
 
@@ -91,9 +91,9 @@
     virtual bool isTextControlInnerTextElement() const { return false; }
     virtual bool canHaveUserAgentShadowRoot() const { return false; }
 
-    virtual bool willRespondToMouseMoveEvents() override;
-    virtual bool willRespondToMouseWheelEvents() override;
-    virtual bool willRespondToMouseClickEvents() override;
+    bool willRespondToMouseMoveEvents() override;
+    bool willRespondToMouseWheelEvents() override;
+    bool willRespondToMouseClickEvents() override;
 
     virtual bool isLabelable() const { return false; }
     virtual FormNamedItem* asFormNamedItem() { return 0; }
@@ -111,13 +111,13 @@
     void applyAlignmentAttributeToStyle(const AtomicString&, MutableStyleProperties&);
     void applyBorderAttributeToStyle(const AtomicString&, MutableStyleProperties&);
 
-    virtual bool matchesReadWritePseudoClass() const override;
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    bool matchesReadWritePseudoClass() const override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
     unsigned parseBorderWidthAttribute(const AtomicString&) const;
 
-    virtual void childrenChanged(const ChildChange&) override;
+    void childrenChanged(const ChildChange&) override;
     void calculateAndAdjustDirectionality();
 
     typedef HashMap<AtomicStringImpl*, AtomicString> EventHandlerNameMap;
@@ -125,7 +125,7 @@
     static const AtomicString& eventNameForEventHandlerAttribute(const QualifiedName& attributeName, const EventHandlerNameMap&);
 
 private:
-    virtual String nodeName() const override final;
+    String nodeName() const override final;
 
     void mapLanguageAttributeToLocale(const AtomicString&, MutableStyleProperties&);
 
diff --git a/Source/WebCore/html/HTMLEmbedElement.h b/Source/WebCore/html/HTMLEmbedElement.h
index 4607e3e..78d163a 100644
--- a/Source/WebCore/html/HTMLEmbedElement.h
+++ b/Source/WebCore/html/HTMLEmbedElement.h
@@ -34,20 +34,20 @@
 private:
     HTMLEmbedElement(const QualifiedName&, Document&, bool createdByParser);
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
 
-    virtual bool rendererIsNeeded(const RenderStyle&) override;
+    bool rendererIsNeeded(const RenderStyle&) override;
 
-    virtual bool isURLAttribute(const Attribute&) const override;
-    virtual const AtomicString& imageSourceURL() const override;
+    bool isURLAttribute(const Attribute&) const override;
+    const AtomicString& imageSourceURL() const override;
 
-    virtual RenderWidget* renderWidgetLoadingPlugin() const override;
+    RenderWidget* renderWidgetLoadingPlugin() const override;
 
-    virtual void updateWidget(PluginCreationOption) override;
+    void updateWidget(PluginCreationOption) override;
 
-    virtual void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
+    void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
 
     void parametersForPlugin(Vector<String>& paramNames, Vector<String>& paramValues);
 };
diff --git a/Source/WebCore/html/HTMLFieldSetElement.h b/Source/WebCore/html/HTMLFieldSetElement.h
index db16fa7..9cd3d8b 100644
--- a/Source/WebCore/html/HTMLFieldSetElement.h
+++ b/Source/WebCore/html/HTMLFieldSetElement.h
@@ -51,18 +51,18 @@
     HTMLFieldSetElement(const QualifiedName&, Document&, HTMLFormElement*);
     ~HTMLFieldSetElement();
 
-    virtual bool isEnumeratable() const override { return true; }
-    virtual bool supportsFocus() const override;
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
-    virtual const AtomicString& formControlType() const override;
-    virtual bool computeWillValidate() const override { return false; }
-    virtual void disabledAttributeChanged() override;
-    virtual void disabledStateChanged() override;
-    virtual void childrenChanged(const ChildChange&) override;
-    virtual void didMoveToNewDocument(Document* oldDocument) override;
+    bool isEnumeratable() const override { return true; }
+    bool supportsFocus() const override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    const AtomicString& formControlType() const override;
+    bool computeWillValidate() const override { return false; }
+    void disabledAttributeChanged() override;
+    void disabledStateChanged() override;
+    void childrenChanged(const ChildChange&) override;
+    void didMoveToNewDocument(Document* oldDocument) override;
 
-    virtual bool matchesValidPseudoClass() const override;
-    virtual bool matchesInvalidPseudoClass() const override;
+    bool matchesValidPseudoClass() const override;
+    bool matchesInvalidPseudoClass() const override;
 
     void refreshElementsIfNeeded() const;
 
diff --git a/Source/WebCore/html/HTMLFontElement.h b/Source/WebCore/html/HTMLFontElement.h
index 00df802..db403d5 100644
--- a/Source/WebCore/html/HTMLFontElement.h
+++ b/Source/WebCore/html/HTMLFontElement.h
@@ -37,8 +37,8 @@
 private:
     HTMLFontElement(const QualifiedName&, Document&);
 
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
 };
 
 } // namespace
diff --git a/Source/WebCore/html/HTMLFormControlElement.h b/Source/WebCore/html/HTMLFormControlElement.h
index d483b11..4927e38 100644
--- a/Source/WebCore/html/HTMLFormControlElement.h
+++ b/Source/WebCore/html/HTMLFormControlElement.h
@@ -70,11 +70,11 @@
     void dispatchChangeEvent();
     void dispatchFormControlInputEvent();
 
-    virtual bool isDisabledFormControl() const override;
-    virtual bool isDefaultButtonForForm() const override;
+    bool isDisabledFormControl() const override;
+    bool isDefaultButtonForForm() const override;
 
-    virtual bool isFocusable() const override;
-    virtual bool isEnumeratable() const override { return false; }
+    bool isFocusable() const override;
+    bool isEnumeratable() const override { return false; }
 
     bool isRequired() const;
 
@@ -86,7 +86,7 @@
 
     // Override in derived classes to get the encoded name=value pair for submitting.
     // Return true for a successful control (see HTML4-17.13.2).
-    virtual bool appendFormData(FormDataList&, bool) override { return false; }
+    bool appendFormData(FormDataList&, bool) override { return false; }
 
     virtual bool isSuccessfulSubmitButton() const { return false; }
     virtual bool isActivatedSubmit() const { return false; }
@@ -101,13 +101,13 @@
     void setAutocapitalize(const AtomicString&);
 #endif
 
-    virtual bool willValidate() const override final;
+    bool willValidate() const override final;
     void updateVisibleValidationMessage();
     void hideVisibleValidationMessage();
     bool checkValidity(Vector<RefPtr<FormAssociatedElement>>* unhandledInvalidControls = 0);
     // This must be called when a validation constraint or control value is changed.
     void updateValidity();
-    virtual void setCustomValidity(const String&) override;
+    void setCustomValidity(const String&) override;
 
     bool isReadOnly() const { return m_isReadOnly; }
     bool isDisabledOrReadOnly() const { return isDisabledFormControl() || m_isReadOnly; }
@@ -128,24 +128,24 @@
 
     bool disabledByAncestorFieldset() const { return m_disabledByAncestorFieldset; }
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
     virtual void disabledAttributeChanged();
     virtual void disabledStateChanged();
     virtual void readOnlyAttributeChanged();
     virtual void requiredAttributeChanged();
-    virtual void didAttachRenderers() override;
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    void didAttachRenderers() override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
     void finishedInsertingSubtree() override;
-    virtual void removedFrom(ContainerNode&) override;
-    virtual void didMoveToNewDocument(Document* oldDocument) override;
+    void removedFrom(ContainerNode&) override;
+    void didMoveToNewDocument(Document* oldDocument) override;
 
-    virtual bool supportsFocus() const override;
-    virtual bool isKeyboardFocusable(KeyboardEvent*) const override;
-    virtual bool isMouseFocusable() const override;
+    bool supportsFocus() const override;
+    bool isKeyboardFocusable(KeyboardEvent*) const override;
+    bool isMouseFocusable() const override;
 
-    virtual void didRecalcStyle(Style::Change) override;
+    void didRecalcStyle(Style::Change) override;
 
-    virtual void dispatchBlurEvent(RefPtr<Element>&& newFocusedElement) override;
+    void dispatchBlurEvent(RefPtr<Element>&& newFocusedElement) override;
 
     // This must be called any time the result of willValidate() has changed.
     void setNeedsWillValidateCheck();
@@ -153,29 +153,29 @@
 
     bool validationMessageShadowTreeContains(const Node&) const;
 
-    virtual void willChangeForm() override;
-    virtual void didChangeForm() override;
+    void willChangeForm() override;
+    void didChangeForm() override;
 
 private:
-    virtual void refFormAssociatedElement() override { ref(); }
-    virtual void derefFormAssociatedElement() override { deref(); }
+    void refFormAssociatedElement() override { ref(); }
+    void derefFormAssociatedElement() override { deref(); }
 
-    virtual bool matchesValidPseudoClass() const override;
-    virtual bool matchesInvalidPseudoClass() const override;
+    bool matchesValidPseudoClass() const override;
+    bool matchesInvalidPseudoClass() const override;
 
-    virtual bool isFormControlElement() const override final { return true; }
-    virtual bool alwaysCreateUserAgentShadowRoot() const override { return true; }
+    bool isFormControlElement() const override final { return true; }
+    bool alwaysCreateUserAgentShadowRoot() const override { return true; }
 
-    virtual short tabIndex() const override final;
+    short tabIndex() const override final;
 
-    virtual HTMLFormElement* virtualForm() const override;
+    HTMLFormElement* virtualForm() const override;
     bool isValidFormControlElement() const;
 
     bool computeIsDisabledByFieldsetAncestor() const;
 
-    virtual HTMLElement& asHTMLElement() override final { return *this; }
-    virtual const HTMLFormControlElement& asHTMLElement() const override final { return *this; }
-    virtual HTMLFormControlElement* asFormNamedItem() override final { return this; }
+    HTMLElement& asHTMLElement() override final { return *this; }
+    const HTMLFormControlElement& asHTMLElement() const override final { return *this; }
+    HTMLFormControlElement* asFormNamedItem() override final { return this; }
 
     std::unique_ptr<ValidationMessage> m_validationMessage;
     bool m_disabled : 1;
diff --git a/Source/WebCore/html/HTMLFormControlElementWithState.h b/Source/WebCore/html/HTMLFormControlElementWithState.h
index 323cadd..2644bae 100644
--- a/Source/WebCore/html/HTMLFormControlElementWithState.h
+++ b/Source/WebCore/html/HTMLFormControlElementWithState.h
@@ -34,7 +34,7 @@
 public:
     virtual ~HTMLFormControlElementWithState();
 
-    virtual bool canContainRangeEndPoint() const override { return false; }
+    bool canContainRangeEndPoint() const override { return false; }
 
     virtual bool shouldSaveAndRestoreFormControlState() const;
     virtual FormControlState saveFormControlState() const;
@@ -45,10 +45,10 @@
     HTMLFormControlElementWithState(const QualifiedName& tagName, Document&, HTMLFormElement*);
 
     virtual bool shouldAutocomplete() const;
-    virtual void finishParsingChildren() override;
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
-    virtual void removedFrom(ContainerNode&) override;
-    virtual bool isFormControlElementWithState() const override;
+    void finishParsingChildren() override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    void removedFrom(ContainerNode&) override;
+    bool isFormControlElementWithState() const override;
 };
 
 } // namespace
diff --git a/Source/WebCore/html/HTMLFormControlsCollection.h b/Source/WebCore/html/HTMLFormControlsCollection.h
index 93d477f..7599a14 100644
--- a/Source/WebCore/html/HTMLFormControlsCollection.h
+++ b/Source/WebCore/html/HTMLFormControlsCollection.h
@@ -39,7 +39,7 @@
     static Ref<HTMLFormControlsCollection> create(ContainerNode&, CollectionType);
     virtual ~HTMLFormControlsCollection();
 
-    virtual HTMLElement* item(unsigned offset) const override;
+    HTMLElement* item(unsigned offset) const override;
 
     // For CachedHTMLCollection.
     HTMLElement* customElementAfter(Element*) const;
@@ -47,8 +47,8 @@
 private:
     explicit HTMLFormControlsCollection(ContainerNode&);
 
-    virtual void invalidateCache(Document&) override;
-    virtual void updateNamedElementCache() const override;
+    void invalidateCache(Document&) override;
+    void updateNamedElementCache() const override;
 
     const Vector<FormAssociatedElement*>& formControlElements() const;
     const Vector<HTMLImageElement*>& formImageElements() const;
diff --git a/Source/WebCore/html/HTMLFormElement.h b/Source/WebCore/html/HTMLFormElement.h
index f865bba..48010d0 100644
--- a/Source/WebCore/html/HTMLFormElement.h
+++ b/Source/WebCore/html/HTMLFormElement.h
@@ -111,7 +111,7 @@
     String method() const;
     void setMethod(const String&);
 
-    virtual String target() const override;
+    String target() const override;
 
     bool wasUserSubmitted() const;
 
@@ -143,21 +143,21 @@
 private:
     HTMLFormElement(const QualifiedName&, Document&);
 
-    virtual bool rendererIsNeeded(const RenderStyle&) override;
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
-    virtual void removedFrom(ContainerNode&) override;
-    virtual void finishParsingChildren() override;
+    bool rendererIsNeeded(const RenderStyle&) override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    void removedFrom(ContainerNode&) override;
+    void finishParsingChildren() override;
 
-    virtual void handleLocalEvents(Event&) override;
+    void handleLocalEvents(Event&) override;
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual bool isURLAttribute(const Attribute&) const override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool isURLAttribute(const Attribute&) const override;
 
-    virtual void resumeFromDocumentSuspension() override;
+    void resumeFromDocumentSuspension() override;
 
-    virtual void didMoveToNewDocument(Document* oldDocument) override;
+    void didMoveToNewDocument(Document* oldDocument) override;
 
-    virtual void copyNonAttributePropertiesFromElement(const Element&) override;
+    void copyNonAttributePropertiesFromElement(const Element&) override;
 
     void submit(Event*, bool activateSubmitButton, bool processingUserGesture, FormSubmissionTrigger);
 
@@ -177,8 +177,8 @@
     void assertItemCanBeInPastNamesMap(FormNamedItem*) const;
     void removeFromPastNamesMap(FormNamedItem*);
 
-    virtual bool matchesValidPseudoClass() const override;
-    virtual bool matchesInvalidPseudoClass() const override;
+    bool matchesValidPseudoClass() const override;
+    bool matchesInvalidPseudoClass() const override;
 
     typedef HashMap<RefPtr<AtomicStringImpl>, FormNamedItem*> PastNamesMap;
 
diff --git a/Source/WebCore/html/HTMLFrameElement.h b/Source/WebCore/html/HTMLFrameElement.h
index 87688c0..a6a5242 100644
--- a/Source/WebCore/html/HTMLFrameElement.h
+++ b/Source/WebCore/html/HTMLFrameElement.h
@@ -39,12 +39,12 @@
 private:
     HTMLFrameElement(const QualifiedName&, Document&);
 
-    virtual void didAttachRenderers() override;
+    void didAttachRenderers() override;
 
-    virtual bool rendererIsNeeded(const RenderStyle&) override;
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    bool rendererIsNeeded(const RenderStyle&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
     
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
 
     bool m_frameBorder;
     bool m_frameBorderSet;
diff --git a/Source/WebCore/html/HTMLFrameElementBase.h b/Source/WebCore/html/HTMLFrameElementBase.h
index 013cba0..5e09bd1 100644
--- a/Source/WebCore/html/HTMLFrameElementBase.h
+++ b/Source/WebCore/html/HTMLFrameElementBase.h
@@ -35,7 +35,7 @@
     URL location() const;
     void setLocation(const String&);
 
-    virtual ScrollbarMode scrollingMode() const override final { return m_scrolling; }
+    ScrollbarMode scrollingMode() const override final { return m_scrolling; }
     
     int marginWidth() const { return m_marginWidth; }
     int marginHeight() const { return m_marginHeight; }
@@ -43,26 +43,26 @@
     int width();
     int height();
 
-    virtual bool canContainRangeEndPoint() const override final { return false; }
+    bool canContainRangeEndPoint() const override final { return false; }
 
 protected:
     HTMLFrameElementBase(const QualifiedName&, Document&);
 
     bool isURLAllowed() const;
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override final;
-    virtual void finishedInsertingSubtree() override final;
-    virtual void didAttachRenderers() override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override final;
+    void finishedInsertingSubtree() override final;
+    void didAttachRenderers() override;
 
 private:
-    virtual bool supportsFocus() const override final;
-    virtual void setFocus(bool) override final;
+    bool supportsFocus() const override final;
+    void setFocus(bool) override final;
     
-    virtual bool isURLAttribute(const Attribute&) const override final;
-    virtual bool isHTMLContentAttribute(const Attribute&) const override final;
+    bool isURLAttribute(const Attribute&) const override final;
+    bool isHTMLContentAttribute(const Attribute&) const override final;
 
-    virtual bool isFrameElementBase() const override final { return true; }
+    bool isFrameElementBase() const override final { return true; }
 
     void setNameAndOpenURL();
     void openURL(LockHistory = LockHistory::Yes, LockBackForwardList = LockBackForwardList::Yes);
diff --git a/Source/WebCore/html/HTMLFrameOwnerElement.h b/Source/WebCore/html/HTMLFrameOwnerElement.h
index 96671f3..8a0bebb 100644
--- a/Source/WebCore/html/HTMLFrameOwnerElement.h
+++ b/Source/WebCore/html/HTMLFrameOwnerElement.h
@@ -63,8 +63,8 @@
     void setSandboxFlags(SandboxFlags);
 
 private:
-    virtual bool isKeyboardFocusable(KeyboardEvent*) const override;
-    virtual bool isFrameOwnerElement() const override final { return true; }
+    bool isKeyboardFocusable(KeyboardEvent*) const override;
+    bool isFrameOwnerElement() const override final { return true; }
 
     Frame* m_contentFrame;
     SandboxFlags m_sandboxFlags;
diff --git a/Source/WebCore/html/HTMLFrameSetElement.h b/Source/WebCore/html/HTMLFrameSetElement.h
index 6cd85dc..06dfa7d 100644
--- a/Source/WebCore/html/HTMLFrameSetElement.h
+++ b/Source/WebCore/html/HTMLFrameSetElement.h
@@ -50,20 +50,20 @@
 private:
     HTMLFrameSetElement(const QualifiedName&, Document&);
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
 
-    virtual void willAttachRenderers() override;
-    virtual bool rendererIsNeeded(const RenderStyle&) override;
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    void willAttachRenderers() override;
+    bool rendererIsNeeded(const RenderStyle&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
     
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 
-    virtual bool willRecalcStyle(Style::Change) override;
+    bool willRecalcStyle(Style::Change) override;
 
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
-    virtual void removedFrom(ContainerNode&) override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    void removedFrom(ContainerNode&) override;
 
     std::unique_ptr<Length[]> m_rowLengths;
     std::unique_ptr<Length[]> m_colLengths;
diff --git a/Source/WebCore/html/HTMLHRElement.h b/Source/WebCore/html/HTMLHRElement.h
index f159465..fcfe987 100644
--- a/Source/WebCore/html/HTMLHRElement.h
+++ b/Source/WebCore/html/HTMLHRElement.h
@@ -35,9 +35,9 @@
 private:
     HTMLHRElement(const QualifiedName&, Document&);
 
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
-    virtual bool canContainRangeEndPoint() const override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    bool canContainRangeEndPoint() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/HTMLHtmlElement.h b/Source/WebCore/html/HTMLHtmlElement.h
index 44d6d60..2cc219f 100644
--- a/Source/WebCore/html/HTMLHtmlElement.h
+++ b/Source/WebCore/html/HTMLHtmlElement.h
@@ -38,7 +38,7 @@
 private:
     HTMLHtmlElement(const QualifiedName&, Document&);
 
-    virtual bool isURLAttribute(const Attribute&) const override;
+    bool isURLAttribute(const Attribute&) const override;
 };
 
 } // namespace
diff --git a/Source/WebCore/html/HTMLIFrameElement.h b/Source/WebCore/html/HTMLIFrameElement.h
index 9d07bd9..e421a96 100644
--- a/Source/WebCore/html/HTMLIFrameElement.h
+++ b/Source/WebCore/html/HTMLIFrameElement.h
@@ -40,15 +40,15 @@
     HTMLIFrameElement(const QualifiedName&, Document&);
 
 #if PLATFORM(IOS)
-    virtual bool isKeyboardFocusable(KeyboardEvent*) const override { return false; }
+    bool isKeyboardFocusable(KeyboardEvent*) const override { return false; }
 #endif
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
 
-    virtual bool rendererIsNeeded(const RenderStyle&) override;
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    bool rendererIsNeeded(const RenderStyle&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 
     std::unique_ptr<AttributeDOMTokenList> m_sandbox;
 };
diff --git a/Source/WebCore/html/HTMLImageElement.h b/Source/WebCore/html/HTMLImageElement.h
index d55728d..3822894 100644
--- a/Source/WebCore/html/HTMLImageElement.h
+++ b/Source/WebCore/html/HTMLImageElement.h
@@ -80,14 +80,14 @@
     bool complete() const;
 
 #if PLATFORM(IOS)
-    virtual bool willRespondToMouseClickEvents() override;
+    bool willRespondToMouseClickEvents() override;
 #endif
 
     bool hasPendingActivity() const { return m_imageLoader.hasPendingActivity(); }
 
-    virtual bool canContainRangeEndPoint() const override { return false; }
+    bool canContainRangeEndPoint() const override { return false; }
 
-    virtual const AtomicString& imageSourceURL() const override;
+    const AtomicString& imageSourceURL() const override;
 
     bool hasShadowControls() const { return m_experimentalImageMenuEnabled; }
     
@@ -97,34 +97,34 @@
 protected:
     HTMLImageElement(const QualifiedName&, Document&, HTMLFormElement* = 0);
 
-    virtual void didMoveToNewDocument(Document* oldDocument) override;
+    void didMoveToNewDocument(Document* oldDocument) override;
 
 private:
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
 
-    virtual void didAttachRenderers() override;
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    void didAttachRenderers() override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
     void setBestFitURLAndDPRFromImageCandidate(const ImageCandidate&);
 
-    virtual bool canStartSelection() const override;
+    bool canStartSelection() const override;
 
-    virtual bool isURLAttribute(const Attribute&) const override;
-    virtual bool attributeContainsURL(const Attribute&) const override;
-    virtual String completeURLsInAttributeValue(const URL& base, const Attribute&) const override;
+    bool isURLAttribute(const Attribute&) const override;
+    bool attributeContainsURL(const Attribute&) const override;
+    String completeURLsInAttributeValue(const URL& base, const Attribute&) const override;
 
-    virtual bool draggable() const override;
+    bool draggable() const override;
 
-    virtual void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
+    void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
 
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
-    virtual void removedFrom(ContainerNode&) override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    void removedFrom(ContainerNode&) override;
 
-    virtual bool isFormAssociatedElement() const override final { return false; }
-    virtual FormNamedItem* asFormNamedItem() override final { return this; }
-    virtual HTMLImageElement& asHTMLElement() override final { return *this; }
-    virtual const HTMLImageElement& asHTMLElement() const override final { return *this; }
+    bool isFormAssociatedElement() const override final { return false; }
+    FormNamedItem* asFormNamedItem() override final { return this; }
+    HTMLImageElement& asHTMLElement() override final { return *this; }
+    const HTMLImageElement& asHTMLElement() const override final { return *this; }
 
     void selectImageSource();
 
@@ -147,7 +147,7 @@
     void createImageControls();
     void destroyImageControls();
     bool hasImageControls() const;
-    virtual bool childShouldCreateRenderer(const Node&) const override;
+    bool childShouldCreateRenderer(const Node&) const override;
 #endif
 
     friend class HTMLPictureElement;
diff --git a/Source/WebCore/html/HTMLImageLoader.h b/Source/WebCore/html/HTMLImageLoader.h
index e9bf1c2..900c34b 100644
--- a/Source/WebCore/html/HTMLImageLoader.h
+++ b/Source/WebCore/html/HTMLImageLoader.h
@@ -32,10 +32,10 @@
     explicit HTMLImageLoader(Element&);
     virtual ~HTMLImageLoader();
 
-    virtual void dispatchLoadEvent() override;
-    virtual String sourceURI(const AtomicString&) const override;
+    void dispatchLoadEvent() override;
+    String sourceURI(const AtomicString&) const override;
 
-    virtual void notifyFinished(CachedResource*) override;
+    void notifyFinished(CachedResource*) override;
 };
 
 }
diff --git a/Source/WebCore/html/HTMLInputElement.cpp b/Source/WebCore/html/HTMLInputElement.cpp
index 32f31f3..dcdbed3 100644
--- a/Source/WebCore/html/HTMLInputElement.cpp
+++ b/Source/WebCore/html/HTMLInputElement.cpp
@@ -78,7 +78,7 @@
 public:
     ListAttributeTargetObserver(const AtomicString& id, HTMLInputElement*);
 
-    virtual void idTargetChanged() override;
+    void idTargetChanged() override;
 
 private:
     HTMLInputElement* m_element;
diff --git a/Source/WebCore/html/HTMLInputElement.h b/Source/WebCore/html/HTMLInputElement.h
index 9027d71..634046e 100644
--- a/Source/WebCore/html/HTMLInputElement.h
+++ b/Source/WebCore/html/HTMLInputElement.h
@@ -66,18 +66,18 @@
     static Ref<HTMLInputElement> create(const QualifiedName&, Document&, HTMLFormElement*, bool createdByParser);
     virtual ~HTMLInputElement();
 
-    WEBCORE_EXPORT virtual bool shouldAutocomplete() const override final;
+    WEBCORE_EXPORT bool shouldAutocomplete() const override final;
 
     // For ValidityState
-    virtual bool hasBadInput() const override final;
-    virtual bool patternMismatch() const override final;
-    virtual bool rangeUnderflow() const override final;
-    virtual bool rangeOverflow() const override final;
-    virtual bool stepMismatch() const override final;
-    virtual bool tooLong() const override final;
-    virtual bool typeMismatch() const override final;
-    virtual bool valueMissing() const override final;
-    virtual String validationMessage() const override final;
+    bool hasBadInput() const override final;
+    bool patternMismatch() const override final;
+    bool rangeUnderflow() const override final;
+    bool rangeOverflow() const override final;
+    bool stepMismatch() const override final;
+    bool tooLong() const override final;
+    bool typeMismatch() const override final;
+    bool valueMissing() const override final;
+    String validationMessage() const override final;
 
     // Returns the minimum value for type=date, number, or range.  Don't call this for other types.
     double minimum() const;
@@ -141,8 +141,8 @@
 
     HTMLElement* containerElement() const;
     
-    virtual TextControlInnerTextElement* innerTextElement() const override final;
-    virtual Ref<RenderStyle> createInnerTextStyle(const RenderStyle&) const override;
+    TextControlInnerTextElement* innerTextElement() const override final;
+    Ref<RenderStyle> createInnerTextStyle(const RenderStyle&) const override;
 
     HTMLElement* innerBlockElement() const;
     HTMLElement* innerSpinButtonElement() const;
@@ -151,7 +151,7 @@
     HTMLElement* cancelButtonElement() const;
     HTMLElement* sliderThumbElement() const;
     HTMLElement* sliderTrackElement() const;
-    virtual HTMLElement* placeholderElement() const override final;
+    HTMLElement* placeholderElement() const override final;
     WEBCORE_EXPORT HTMLElement* autoFillButtonElement() const;
 
     bool checked() const { return m_isChecked; }
@@ -162,7 +162,7 @@
     void setIndeterminate(bool);
     // shouldAppearChecked is used by the rendering tree/CSS while checked() is used by JS to determine checked state
     bool shouldAppearChecked() const;
-    virtual bool shouldAppearIndeterminate() const override final;
+    bool shouldAppearIndeterminate() const override final;
 
     unsigned size() const;
     bool sizeShouldIncludeDecoration(int& preferredSize) const;
@@ -170,7 +170,7 @@
 
     void setType(const AtomicString&);
 
-    WEBCORE_EXPORT virtual String value() const override final;
+    WEBCORE_EXPORT String value() const override final;
     void setValue(const String&, ExceptionCode&, TextFieldEventBehavior = DispatchNoEvent);
     WEBCORE_EXPORT void setValue(const String&, TextFieldEventBehavior = DispatchNoEvent);
     WEBCORE_EXPORT void setValueForUser(const String&);
@@ -200,17 +200,17 @@
 
     bool canHaveSelection() const;
 
-    virtual bool rendererIsNeeded(const RenderStyle&) override final;
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override final;
-    virtual void willAttachRenderers() override final;
-    virtual void didAttachRenderers() override final;
-    virtual void didDetachRenderers() override final;
+    bool rendererIsNeeded(const RenderStyle&) override final;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override final;
+    void willAttachRenderers() override final;
+    void didAttachRenderers() override final;
+    void didDetachRenderers() override final;
 
     // FIXME: For isActivatedSubmit and setActivatedSubmit, we should use the NVI-idiom here by making
     // it private virtual in all classes and expose a public method in HTMLFormControlElement to call
     // the private virtual method.
-    virtual bool isActivatedSubmit() const override final;
-    virtual void setActivatedSubmit(bool flag) override final;
+    bool isActivatedSubmit() const override final;
+    void setActivatedSubmit(bool flag) override final;
 
     String altText() const;
 
@@ -263,7 +263,7 @@
     void addSearchResult();
     void onSearch();
 
-    virtual bool willRespondToMouseClickEvents() override;
+    bool willRespondToMouseClickEvents() override;
 
 #if ENABLE(DATALIST_ELEMENT)
     HTMLElement* list() const;
@@ -299,18 +299,18 @@
     void setHeight(unsigned);
     void setWidth(unsigned);
 
-    virtual void blur() override final;
+    void blur() override final;
     void defaultBlur();
 
-    virtual const AtomicString& name() const override final;
+    const AtomicString& name() const override final;
 
     void endEditing();
 
     static Vector<FileChooserFileInfo> filesFromFileInputFormControlState(const FormControlState&);
 
-    virtual bool matchesReadWritePseudoClass() const override final;
-    virtual void setRangeText(const String& replacement, ExceptionCode&) override final;
-    virtual void setRangeText(const String& replacement, unsigned start, unsigned end, const String& selectionMode, ExceptionCode&) override final;
+    bool matchesReadWritePseudoClass() const override final;
+    void setRangeText(const String& replacement, ExceptionCode&) override final;
+    void setRangeText(const String& replacement, unsigned start, unsigned end, const String& selectionMode, ExceptionCode&) override final;
 
     HTMLImageLoader* imageLoader() { return m_imageLoader.get(); }
     HTMLImageLoader& ensureImageLoader();
@@ -324,67 +324,67 @@
 protected:
     HTMLInputElement(const QualifiedName&, Document&, HTMLFormElement*, bool createdByParser);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 
 private:
     enum AutoCompleteSetting { Uninitialized, On, Off };
 
-    virtual void didAddUserAgentShadowRoot(ShadowRoot*) override final;
-    virtual bool canHaveUserAgentShadowRoot() const override final { return true; }
+    void didAddUserAgentShadowRoot(ShadowRoot*) override final;
+    bool canHaveUserAgentShadowRoot() const override final { return true; }
 
-    virtual void willChangeForm() override final;
-    virtual void didChangeForm() override final;
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override final;
+    void willChangeForm() override final;
+    void didChangeForm() override final;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override final;
     void finishedInsertingSubtree() override final;
-    virtual void removedFrom(ContainerNode&) override final;
-    virtual void didMoveToNewDocument(Document* oldDocument) override final;
+    void removedFrom(ContainerNode&) override final;
+    void didMoveToNewDocument(Document* oldDocument) override final;
 
-    virtual bool hasCustomFocusLogic() const override final;
-    virtual bool isKeyboardFocusable(KeyboardEvent*) const override final;
-    virtual bool isMouseFocusable() const override final;
-    virtual bool isEnumeratable() const override final;
-    virtual bool supportLabels() const override final;
-    virtual void updateFocusAppearance(SelectionRestorationMode, SelectionRevealMode) override final;
-    virtual bool shouldUseInputMethod() override final;
+    bool hasCustomFocusLogic() const override final;
+    bool isKeyboardFocusable(KeyboardEvent*) const override final;
+    bool isMouseFocusable() const override final;
+    bool isEnumeratable() const override final;
+    bool supportLabels() const override final;
+    void updateFocusAppearance(SelectionRestorationMode, SelectionRevealMode) override final;
+    bool shouldUseInputMethod() override final;
 
-    virtual bool isTextFormControl() const override final { return isTextField(); }
+    bool isTextFormControl() const override final { return isTextField(); }
 
-    virtual bool canTriggerImplicitSubmission() const override final { return isTextField(); }
+    bool canTriggerImplicitSubmission() const override final { return isTextField(); }
 
-    virtual const AtomicString& formControlType() const override final;
+    const AtomicString& formControlType() const override final;
 
-    virtual bool shouldSaveAndRestoreFormControlState() const override final;
-    virtual FormControlState saveFormControlState() const override final;
-    virtual void restoreFormControlState(const FormControlState&) override final;
+    bool shouldSaveAndRestoreFormControlState() const override final;
+    FormControlState saveFormControlState() const override final;
+    void restoreFormControlState(const FormControlState&) override final;
 
-    virtual bool canStartSelection() const override final;
+    bool canStartSelection() const override final;
 
-    virtual void accessKeyAction(bool sendMouseEvents) override final;
+    void accessKeyAction(bool sendMouseEvents) override final;
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override final;
-    virtual bool isPresentationAttribute(const QualifiedName&) const override final;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override final;
-    virtual void finishParsingChildren() override final;
-    virtual void parserDidSetAttributes() override final;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override final;
+    bool isPresentationAttribute(const QualifiedName&) const override final;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override final;
+    void finishParsingChildren() override final;
+    void parserDidSetAttributes() override final;
 
-    virtual void copyNonAttributePropertiesFromElement(const Element&) override final;
+    void copyNonAttributePropertiesFromElement(const Element&) override final;
 
-    virtual bool appendFormData(FormDataList&, bool) override final;
+    bool appendFormData(FormDataList&, bool) override final;
 
-    virtual bool isSuccessfulSubmitButton() const override final;
+    bool isSuccessfulSubmitButton() const override final;
 
-    virtual void reset() override final;
+    void reset() override final;
 
-    virtual bool isURLAttribute(const Attribute&) const override final;
-    virtual bool isInRange() const override final;
-    virtual bool isOutOfRange() const override final;
+    bool isURLAttribute(const Attribute&) const override final;
+    bool isInRange() const override final;
+    bool isOutOfRange() const override final;
 
-    virtual void resumeFromDocumentSuspension() override final;
+    void resumeFromDocumentSuspension() override final;
 #if ENABLE(INPUT_TYPE_COLOR)
-    virtual void prepareForDocumentSuspension() override final;
+    void prepareForDocumentSuspension() override final;
 #endif
 
-    virtual void addSubresourceAttributeURLs(ListHashSet<URL>&) const override final;
+    void addSubresourceAttributeURLs(ListHashSet<URL>&) const override final;
 
     bool needsSuspensionCallback();
     void registerForSuspensionCallbackIfNeeded();
@@ -394,22 +394,22 @@
     bool isTextType() const;
     bool tooLong(const String&, NeedsToCheckDirtyFlag) const;
 
-    virtual bool supportsPlaceholder() const override final;
-    virtual void updatePlaceholderText() override final;
-    virtual bool isEmptyValue() const override final;
-    virtual void handleFocusEvent(Node* oldFocusedNode, FocusDirection) override final;
-    virtual void handleBlurEvent() override final;
+    bool supportsPlaceholder() const override final;
+    void updatePlaceholderText() override final;
+    bool isEmptyValue() const override final;
+    void handleFocusEvent(Node* oldFocusedNode, FocusDirection) override final;
+    void handleBlurEvent() override final;
 
-    virtual bool isOptionalFormControl() const override final { return !isRequiredFormControl(); }
-    virtual bool isRequiredFormControl() const override final;
-    virtual bool computeWillValidate() const override final;
-    virtual void requiredAttributeChanged() override final;
+    bool isOptionalFormControl() const override final { return !isRequiredFormControl(); }
+    bool isRequiredFormControl() const override final;
+    bool computeWillValidate() const override final;
+    void requiredAttributeChanged() override final;
 
     void initializeInputType();
     void updateType();
     void runPostTypeUpdateTasks();
     
-    virtual void subtreeHasChanged() override final;
+    void subtreeHasChanged() override final;
 
 #if ENABLE(DATALIST_ELEMENT)
     void resetListAttributeTargetObserver();
diff --git a/Source/WebCore/html/HTMLKeygenElement.cpp b/Source/WebCore/html/HTMLKeygenElement.cpp
index b617b03..4828dc2 100644
--- a/Source/WebCore/html/HTMLKeygenElement.cpp
+++ b/Source/WebCore/html/HTMLKeygenElement.cpp
@@ -59,7 +59,7 @@
     }
 
 private:
-    virtual Ref<Element> cloneElementWithoutAttributesAndChildren(Document& targetDocument) override
+    Ref<Element> cloneElementWithoutAttributesAndChildren(Document& targetDocument) override
     {
         return create(targetDocument);
     }
diff --git a/Source/WebCore/html/HTMLKeygenElement.h b/Source/WebCore/html/HTMLKeygenElement.h
index 30ac3ed..9a91c56 100644
--- a/Source/WebCore/html/HTMLKeygenElement.h
+++ b/Source/WebCore/html/HTMLKeygenElement.h
@@ -37,22 +37,22 @@
 private:
     HTMLKeygenElement(const QualifiedName&, Document&, HTMLFormElement*);
 
-    virtual bool computeWillValidate() const override { return false; }
-    virtual bool canStartSelection() const override { return false; }
+    bool computeWillValidate() const override { return false; }
+    bool canStartSelection() const override { return false; }
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
 
-    virtual bool appendFormData(FormDataList&, bool) override;
-    virtual const AtomicString& formControlType() const override;
-    virtual bool isOptionalFormControl() const override { return false; }
+    bool appendFormData(FormDataList&, bool) override;
+    const AtomicString& formControlType() const override;
+    bool isOptionalFormControl() const override { return false; }
 
-    virtual bool isEnumeratable() const override { return true; }
-    virtual bool supportLabels() const override { return true; }
+    bool isEnumeratable() const override { return true; }
+    bool supportLabels() const override { return true; }
 
-    virtual void reset() override;
-    virtual bool shouldSaveAndRestoreFormControlState() const override;
+    void reset() override;
+    bool shouldSaveAndRestoreFormControlState() const override;
 
-    virtual bool canHaveUserAgentShadowRoot() const override final { return true; }
+    bool canHaveUserAgentShadowRoot() const override final { return true; }
 
     HTMLSelectElement* shadowSelect() const;
 };
diff --git a/Source/WebCore/html/HTMLLIElement.h b/Source/WebCore/html/HTMLLIElement.h
index 489b434..06d392f 100644
--- a/Source/WebCore/html/HTMLLIElement.h
+++ b/Source/WebCore/html/HTMLLIElement.h
@@ -35,11 +35,11 @@
 private:
     HTMLLIElement(const QualifiedName&, Document&);
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
 
-    virtual void didAttachRenderers() override;
+    void didAttachRenderers() override;
 
     void parseValue(const AtomicString&);
 };
diff --git a/Source/WebCore/html/HTMLLabelElement.h b/Source/WebCore/html/HTMLLabelElement.h
index 8815bfe..255edd1 100644
--- a/Source/WebCore/html/HTMLLabelElement.h
+++ b/Source/WebCore/html/HTMLLabelElement.h
@@ -36,23 +36,23 @@
     LabelableElement* control();
     HTMLFormElement* form() const;
 
-    virtual bool willRespondToMouseClickEvents() override;
+    bool willRespondToMouseClickEvents() override;
 
 private:
     HTMLLabelElement(const QualifiedName&, Document&);
 
-    virtual bool isFocusable() const override;
+    bool isFocusable() const override;
 
-    virtual void accessKeyAction(bool sendMouseEvents) override;
+    void accessKeyAction(bool sendMouseEvents) override;
 
     // Overridden to update the hover/active state of the corresponding control.
-    virtual void setActive(bool = true, bool pause = false) override;
-    virtual void setHovered(bool = true) override;
+    void setActive(bool = true, bool pause = false) override;
+    void setHovered(bool = true) override;
 
     // Overridden to either click() or focus() the corresponding control.
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 
-    virtual void focus(bool restorePreviousSelection, FocusDirection) override;
+    void focus(bool restorePreviousSelection, FocusDirection) override;
 };
 
 } //namespace
diff --git a/Source/WebCore/html/HTMLLegendElement.h b/Source/WebCore/html/HTMLLegendElement.h
index 4de12d9..5521641 100644
--- a/Source/WebCore/html/HTMLLegendElement.h
+++ b/Source/WebCore/html/HTMLLegendElement.h
@@ -40,9 +40,9 @@
     // Control in the legend's fieldset that gets focus and access key.
     HTMLFormControlElement* associatedControl();
 
-    virtual void accessKeyAction(bool sendMouseEvents) override;
-    virtual void focus(bool restorePreviousSelection, FocusDirection) override;
-    virtual HTMLFormElement* virtualForm() const override;
+    void accessKeyAction(bool sendMouseEvents) override;
+    void focus(bool restorePreviousSelection, FocusDirection) override;
+    HTMLFormElement* virtualForm() const override;
 };
 
 } //namespace
diff --git a/Source/WebCore/html/HTMLLinkElement.h b/Source/WebCore/html/HTMLLinkElement.h
index 279335ea..2e3b44f 100644
--- a/Source/WebCore/html/HTMLLinkElement.h
+++ b/Source/WebCore/html/HTMLLinkElement.h
@@ -50,7 +50,7 @@
     URL href() const;
     const AtomicString& rel() const;
 
-    virtual String target() const override;
+    String target() const override;
 
     const AtomicString& type() const;
 
@@ -73,39 +73,39 @@
     DOMTokenList& relList();
 
 private:
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
 
-    virtual bool shouldLoadLink() override;
+    bool shouldLoadLink() override;
     void process();
     static void processCallback(Node*);
     void clearSheet();
 
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
-    virtual void removedFrom(ContainerNode&) override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    void removedFrom(ContainerNode&) override;
 
     // from CachedResourceClient
-    virtual void setCSSStyleSheet(const String& href, const URL& baseURL, const String& charset, const CachedCSSStyleSheet* sheet) override;
-    virtual bool sheetLoaded() override;
-    virtual void notifyLoadedSheetAndAllCriticalSubresources(bool errorOccurred) override;
-    virtual void startLoadingDynamicSheet() override;
+    void setCSSStyleSheet(const String& href, const URL& baseURL, const String& charset, const CachedCSSStyleSheet* sheet) override;
+    bool sheetLoaded() override;
+    void notifyLoadedSheetAndAllCriticalSubresources(bool errorOccurred) override;
+    void startLoadingDynamicSheet() override;
 
-    virtual void linkLoaded() override;
-    virtual void linkLoadingErrored() override;
+    void linkLoaded() override;
+    void linkLoadingErrored() override;
 
     bool isAlternate() const { return m_disabledState == Unset && m_relAttribute.isAlternate; }
     
     void setDisabledState(bool);
 
-    virtual bool isURLAttribute(const Attribute&) const override;
+    bool isURLAttribute(const Attribute&) const override;
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
     void handleClick(Event&);
 
     HTMLLinkElement(const QualifiedName&, Document&, bool createdByParser);
 
-    virtual void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
+    void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
 
-    virtual void finishParsingChildren() override;
+    void finishParsingChildren() override;
 
     enum PendingSheetType { Unknown, ActiveSheet, InactiveSheet };
     void addPendingSheet(PendingSheetType);
diff --git a/Source/WebCore/html/HTMLMapElement.h b/Source/WebCore/html/HTMLMapElement.h
index 7d77408..6ab6082 100644
--- a/Source/WebCore/html/HTMLMapElement.h
+++ b/Source/WebCore/html/HTMLMapElement.h
@@ -46,10 +46,10 @@
 private:
     HTMLMapElement(const QualifiedName&, Document&);
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
 
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
-    virtual void removedFrom(ContainerNode&) override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    void removedFrom(ContainerNode&) override;
 
     AtomicString m_name;
 };
diff --git a/Source/WebCore/html/HTMLMarqueeElement.h b/Source/WebCore/html/HTMLMarqueeElement.h
index 6d196dd..033419c 100644
--- a/Source/WebCore/html/HTMLMarqueeElement.h
+++ b/Source/WebCore/html/HTMLMarqueeElement.h
@@ -39,7 +39,7 @@
     // DOM Functions
 
     void start();
-    virtual void stop() override;
+    void stop() override;
     
     unsigned scrollAmount() const;
     void setScrollAmount(unsigned);
@@ -53,16 +53,16 @@
 private:
     HTMLMarqueeElement(const QualifiedName&, Document&);
 
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
 
     // ActiveDOMObject
-    virtual bool canSuspendForDocumentSuspension() const override;
-    virtual void suspend(ReasonForSuspension) override;
-    virtual void resume() override;
-    virtual const char* activeDOMObjectName() const override { return "HTMLMarqueeElement"; }
+    bool canSuspendForDocumentSuspension() const override;
+    void suspend(ReasonForSuspension) override;
+    void resume() override;
+    const char* activeDOMObjectName() const override { return "HTMLMarqueeElement"; }
 
-    virtual bool canHaveUserAgentShadowRoot() const override final { return true; }
+    bool canHaveUserAgentShadowRoot() const override final { return true; }
 
     RenderMarquee* renderMarquee() const;
 };
diff --git a/Source/WebCore/html/HTMLMediaElement.h b/Source/WebCore/html/HTMLMediaElement.h
index 725fb3a..0e418aa 100644
--- a/Source/WebCore/html/HTMLMediaElement.h
+++ b/Source/WebCore/html/HTMLMediaElement.h
@@ -111,22 +111,22 @@
     MediaPlayer* player() const { return m_player.get(); }
 
     virtual bool isVideo() const { return false; }
-    virtual bool hasVideo() const override { return false; }
-    virtual bool hasAudio() const override;
+    bool hasVideo() const override { return false; }
+    bool hasAudio() const override;
 
     static HashSet<HTMLMediaElement*>& allMediaElements();
 
     void rewind(double timeDelta);
-    WEBCORE_EXPORT virtual void returnToRealtime() override;
+    WEBCORE_EXPORT void returnToRealtime() override;
 
     // Eventually overloaded in HTMLVideoElement
-    virtual bool supportsFullscreen(HTMLMediaElementEnums::VideoFullscreenMode) const override { return false; };
+    bool supportsFullscreen(HTMLMediaElementEnums::VideoFullscreenMode) const override { return false; };
 
-    virtual bool supportsScanning() const override;
+    bool supportsScanning() const override;
 
     bool canSaveMediaData() const;
 
-    virtual bool doesHaveAttribute(const AtomicString&, AtomicString* value = nullptr) const override;
+    bool doesHaveAttribute(const AtomicString&, AtomicString* value = nullptr) const override;
 
     WEBCORE_EXPORT PlatformMedia platformMedia() const;
     PlatformLayer* platformLayer() const;
@@ -166,26 +166,26 @@
     String preload() const;    
     void setPreload(const String&);
 
-    virtual PassRefPtr<TimeRanges> buffered() const override;
+    PassRefPtr<TimeRanges> buffered() const override;
     void load();
     String canPlayType(const String& mimeType, const String& keySystem = String(), const URL& = URL()) const;
 
 // ready state
     using HTMLMediaElementEnums::ReadyState;
-    virtual ReadyState readyState() const override;
+    ReadyState readyState() const override;
     bool seeking() const;
 
 // playback state
-    WEBCORE_EXPORT virtual double currentTime() const override;
-    virtual void setCurrentTime(double) override;
+    WEBCORE_EXPORT double currentTime() const override;
+    void setCurrentTime(double) override;
     virtual void setCurrentTime(double, ExceptionCode&);
     virtual double getStartDate() const;
-    WEBCORE_EXPORT virtual double duration() const override;
-    WEBCORE_EXPORT virtual bool paused() const override;
-    virtual double defaultPlaybackRate() const override;
-    virtual void setDefaultPlaybackRate(double) override;
-    WEBCORE_EXPORT virtual double playbackRate() const override;
-    virtual void setPlaybackRate(double) override;
+    WEBCORE_EXPORT double duration() const override;
+    WEBCORE_EXPORT bool paused() const override;
+    double defaultPlaybackRate() const override;
+    void setDefaultPlaybackRate(double) override;
+    WEBCORE_EXPORT double playbackRate() const override;
+    void setPlaybackRate(double) override;
 
 // MediaTime versions of playback state
     MediaTime currentMediaTime() const;
@@ -196,16 +196,16 @@
     void updatePlaybackRate();
     bool webkitPreservesPitch() const;
     void setWebkitPreservesPitch(bool);
-    virtual PassRefPtr<TimeRanges> played() override;
-    virtual PassRefPtr<TimeRanges> seekable() const override;
+    PassRefPtr<TimeRanges> played() override;
+    PassRefPtr<TimeRanges> seekable() const override;
     WEBCORE_EXPORT bool ended() const;
     bool autoplay() const;
     bool isAutoplaying() const { return m_autoplaying; }
     bool loop() const;
     void setLoop(bool b);
-    WEBCORE_EXPORT virtual void play() override;
-    WEBCORE_EXPORT virtual void pause() override;
-    virtual void setShouldBufferData(bool) override;
+    WEBCORE_EXPORT void play() override;
+    WEBCORE_EXPORT void pause() override;
+    void setShouldBufferData(bool) override;
     void fastSeek(double);
     double minFastReverseRate() const;
     double maxFastForwardRate() const;
@@ -217,7 +217,7 @@
     bool webkitClosedCaptionsVisible() const;
     void setWebkitClosedCaptionsVisible(bool);
 
-    virtual bool elementIsHidden() const override { return m_elementIsHidden; }
+    bool elementIsHidden() const override { return m_elementIsHidden; }
 
 #if ENABLE(MEDIA_STATISTICS)
 // Statistics
@@ -250,20 +250,20 @@
 // controls
     bool controls() const;
     void setControls(bool);
-    WEBCORE_EXPORT virtual double volume() const override;
-    virtual void setVolume(double, ExceptionCode&) override;
-    WEBCORE_EXPORT virtual bool muted() const override;
-    WEBCORE_EXPORT virtual void setMuted(bool) override;
+    WEBCORE_EXPORT double volume() const override;
+    void setVolume(double, ExceptionCode&) override;
+    WEBCORE_EXPORT bool muted() const override;
+    WEBCORE_EXPORT void setMuted(bool) override;
 
     WEBCORE_EXPORT void togglePlayState();
-    WEBCORE_EXPORT virtual void beginScrubbing() override;
-    WEBCORE_EXPORT virtual void endScrubbing() override;
+    WEBCORE_EXPORT void beginScrubbing() override;
+    WEBCORE_EXPORT void endScrubbing() override;
 
-    virtual void beginScanning(ScanDirection) override;
-    virtual void endScanning() override;
+    void beginScanning(ScanDirection) override;
+    void endScanning() override;
     double nextScanRate();
 
-    WEBCORE_EXPORT virtual bool canPlay() const override;
+    WEBCORE_EXPORT bool canPlay() const override;
 
     double percentLoaded() const;
 
@@ -291,15 +291,15 @@
     virtual void didAddTextTrack(HTMLTrackElement*);
     virtual void didRemoveTextTrack(HTMLTrackElement*);
 
-    virtual void mediaPlayerDidAddAudioTrack(PassRefPtr<AudioTrackPrivate>) override;
-    virtual void mediaPlayerDidAddTextTrack(PassRefPtr<InbandTextTrackPrivate>) override;
-    virtual void mediaPlayerDidAddVideoTrack(PassRefPtr<VideoTrackPrivate>) override;
-    virtual void mediaPlayerDidRemoveAudioTrack(PassRefPtr<AudioTrackPrivate>) override;
-    virtual void mediaPlayerDidRemoveTextTrack(PassRefPtr<InbandTextTrackPrivate>) override;
-    virtual void mediaPlayerDidRemoveVideoTrack(PassRefPtr<VideoTrackPrivate>) override;
+    void mediaPlayerDidAddAudioTrack(PassRefPtr<AudioTrackPrivate>) override;
+    void mediaPlayerDidAddTextTrack(PassRefPtr<InbandTextTrackPrivate>) override;
+    void mediaPlayerDidAddVideoTrack(PassRefPtr<VideoTrackPrivate>) override;
+    void mediaPlayerDidRemoveAudioTrack(PassRefPtr<AudioTrackPrivate>) override;
+    void mediaPlayerDidRemoveTextTrack(PassRefPtr<InbandTextTrackPrivate>) override;
+    void mediaPlayerDidRemoveVideoTrack(PassRefPtr<VideoTrackPrivate>) override;
 
 #if ENABLE(AVF_CAPTIONS)
-    virtual Vector<RefPtr<PlatformTextTrack>> outOfBandTrackSources() override;
+    Vector<RefPtr<PlatformTextTrack>> outOfBandTrackSources() override;
 #endif
 
     struct TrackGroup;
@@ -315,19 +315,19 @@
     void updateTextTrackDisplay();
 
     // AudioTrackClient
-    virtual void audioTrackEnabledChanged(AudioTrack*) override;
+    void audioTrackEnabledChanged(AudioTrack*) override;
 
     // TextTrackClient
     virtual void textTrackReadyStateChanged(TextTrack*);
-    virtual void textTrackKindChanged(TextTrack*) override;
-    virtual void textTrackModeChanged(TextTrack*) override;
-    virtual void textTrackAddCues(TextTrack*, const TextTrackCueList*) override;
-    virtual void textTrackRemoveCues(TextTrack*, const TextTrackCueList*) override;
-    virtual void textTrackAddCue(TextTrack*, PassRefPtr<TextTrackCue>) override;
-    virtual void textTrackRemoveCue(TextTrack*, PassRefPtr<TextTrackCue>) override;
+    void textTrackKindChanged(TextTrack*) override;
+    void textTrackModeChanged(TextTrack*) override;
+    void textTrackAddCues(TextTrack*, const TextTrackCueList*) override;
+    void textTrackRemoveCues(TextTrack*, const TextTrackCueList*) override;
+    void textTrackAddCue(TextTrack*, PassRefPtr<TextTrackCue>) override;
+    void textTrackRemoveCue(TextTrack*, PassRefPtr<TextTrackCue>) override;
 
     // VideoTrackClient
-    virtual void videoTrackSelectedChanged(VideoTrack*) override;
+    void videoTrackSelectedChanged(VideoTrack*) override;
 
     bool requiresTextTrackRepresentation() const;
     void setTextTrackRepresentation(TextTrackRepresentation*);
@@ -336,15 +336,15 @@
 
 #if ENABLE(WIRELESS_PLAYBACK_TARGET)
     void webkitShowPlaybackTargetPicker();
-    virtual bool addEventListener(const AtomicString& eventType, RefPtr<EventListener>&&, bool useCapture) override;
-    virtual bool removeEventListener(const AtomicString& eventType, EventListener*, bool useCapture) override;
+    bool addEventListener(const AtomicString& eventType, RefPtr<EventListener>&&, bool useCapture) override;
+    bool removeEventListener(const AtomicString& eventType, EventListener*, bool useCapture) override;
 
-    virtual void wirelessRoutesAvailableDidChange() override;
-    virtual bool canPlayToWirelessPlaybackTarget() const override;
-    virtual bool isPlayingToWirelessPlaybackTarget() const override;
-    virtual void setWirelessPlaybackTarget(Ref<MediaPlaybackTarget>&&) override;
-    virtual void setShouldPlayToPlaybackTarget(bool) override;
-    virtual void customPlaybackActionSelected() override;
+    void wirelessRoutesAvailableDidChange() override;
+    bool canPlayToWirelessPlaybackTarget() const override;
+    bool isPlayingToWirelessPlaybackTarget() const override;
+    void setWirelessPlaybackTarget(Ref<MediaPlaybackTarget>&&) override;
+    void setShouldPlayToPlaybackTarget(bool) override;
+    void customPlaybackActionSelected() override;
     String playbackTargetPickerCustomActionName() const;
 #endif
     bool webkitCurrentPlaybackTargetIsWireless() const;
@@ -358,7 +358,7 @@
 
     bool hasSingleSecurityOrigin() const { return !m_player || m_player->hasSingleSecurityOrigin(); }
     
-    WEBCORE_EXPORT virtual bool isFullscreen() const override;
+    WEBCORE_EXPORT bool isFullscreen() const override;
     void toggleFullscreenState();
 
     using MediaPlayerEnums::VideoFullscreenMode;
@@ -366,19 +366,19 @@
     virtual void fullscreenModeChanged(VideoFullscreenMode mode) { m_videoFullscreenMode = mode; }
 
     void enterFullscreen(VideoFullscreenMode);
-    virtual void enterFullscreen() override;
+    void enterFullscreen() override;
     WEBCORE_EXPORT void exitFullscreen();
 
-    virtual bool hasClosedCaptions() const override;
-    virtual bool closedCaptionsVisible() const override;
-    virtual void setClosedCaptionsVisible(bool) override;
+    bool hasClosedCaptions() const override;
+    bool closedCaptionsVisible() const override;
+    void setClosedCaptionsVisible(bool) override;
 
     MediaControls* mediaControls() const;
 
     void sourceWasRemoved(HTMLSourceElement*);
     void sourceWasAdded(HTMLSourceElement*);
 
-    virtual void privateBrowsingStateDidChange() override;
+    void privateBrowsingStateDidChange() override;
 
     // Media cache management.
     WEBCORE_EXPORT static void getSitesInMediaCache(Vector<String>&);
@@ -388,7 +388,7 @@
 
     bool isPlaying() const { return m_playing; }
 
-    virtual bool hasPendingActivity() const override;
+    bool hasPendingActivity() const override;
 
 #if ENABLE(WEB_AUDIO)
     MediaElementAudioSourceNode* audioSourceNode() { return m_audioSourceNode; }
@@ -446,7 +446,7 @@
 
     double maxBufferedTime() const;
 
-    virtual MediaProducer::MediaStateFlags mediaState() const override;
+    MediaProducer::MediaStateFlags mediaState() const override;
 
     void layoutSizeChanged();
     void visibilityDidChange();
@@ -471,7 +471,7 @@
     DisplayMode displayMode() const { return m_displayMode; }
     virtual void setDisplayMode(DisplayMode mode) { m_displayMode = mode; }
     
-    virtual bool isMediaElement() const override final { return true; }
+    bool isMediaElement() const override final { return true; }
 
 #if ENABLE(VIDEO_TRACK)
     bool ignoreTrackDisplayUpdateRequests() const { return m_ignoreTrackDisplayUpdate > 0 || !m_textTracks || !m_cueTree.size(); }
@@ -479,7 +479,7 @@
     void endIgnoringTrackDisplayUpdateRequests();
 #endif
 
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 
 #if ENABLE(MEDIA_CONTROLS_SCRIPT)
     bool mediaControlsDependOnPageScaleFactor() const { return m_mediaControlsDependOnPageScaleFactor; }
@@ -491,23 +491,23 @@
 private:
     void createMediaPlayer();
 
-    virtual bool alwaysCreateUserAgentShadowRoot() const override { return true; }
+    bool alwaysCreateUserAgentShadowRoot() const override { return true; }
 
     // FIXME: Shadow DOM spec says we should be able to create shadow root on audio and video elements
-    virtual bool canHaveUserAgentShadowRoot() const override final { return true; }
+    bool canHaveUserAgentShadowRoot() const override final { return true; }
 
-    virtual bool hasCustomFocusLogic() const override;
-    virtual bool supportsFocus() const override;
-    virtual bool isMouseFocusable() const override;
-    virtual bool rendererIsNeeded(const RenderStyle&) override;
-    virtual bool childShouldCreateRenderer(const Node&) const override;
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
-    virtual void removedFrom(ContainerNode&) override;
-    virtual void didRecalcStyle(Style::Change) override;
+    bool hasCustomFocusLogic() const override;
+    bool supportsFocus() const override;
+    bool isMouseFocusable() const override;
+    bool rendererIsNeeded(const RenderStyle&) override;
+    bool childShouldCreateRenderer(const Node&) const override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    void removedFrom(ContainerNode&) override;
+    void didRecalcStyle(Style::Change) override;
 
-    virtual void willBecomeFullscreenElement() override;
-    virtual void didBecomeFullscreenElement() override;
-    virtual void willStopBeingFullscreenElement() override;
+    void willBecomeFullscreenElement() override;
+    void didBecomeFullscreenElement() override;
+    void willStopBeingFullscreenElement() override;
 
     // ActiveDOMObject API.
     const char* activeDOMObjectName() const override;
@@ -516,11 +516,11 @@
     void resume() override;
     void stop() override;
     void stopWithoutDestroyingMediaPlayer();
-    virtual void contextDestroyed() override;
+    void contextDestroyed() override;
     
-    virtual void mediaVolumeDidChange() override;
+    void mediaVolumeDidChange() override;
 
-    virtual void visibilityStateChanged() override;
+    void visibilityStateChanged() override;
 
     virtual void updateDisplayState() { }
     
@@ -530,94 +530,94 @@
     double effectivePlaybackRate() const;
     double requestedPlaybackRate() const;
 
-    virtual void mediaPlayerNetworkStateChanged(MediaPlayer*) override;
-    virtual void mediaPlayerReadyStateChanged(MediaPlayer*) override;
-    virtual void mediaPlayerTimeChanged(MediaPlayer*) override;
-    virtual void mediaPlayerVolumeChanged(MediaPlayer*) override;
-    virtual void mediaPlayerMuteChanged(MediaPlayer*) override;
-    virtual void mediaPlayerDurationChanged(MediaPlayer*) override;
-    virtual void mediaPlayerRateChanged(MediaPlayer*) override;
-    virtual void mediaPlayerPlaybackStateChanged(MediaPlayer*) override;
-    virtual void mediaPlayerSawUnsupportedTracks(MediaPlayer*) override;
-    virtual void mediaPlayerResourceNotSupported(MediaPlayer*) override;
-    virtual void mediaPlayerRepaint(MediaPlayer*) override;
-    virtual void mediaPlayerSizeChanged(MediaPlayer*) override;
-    virtual bool mediaPlayerRenderingCanBeAccelerated(MediaPlayer*) override;
-    virtual void mediaPlayerRenderingModeChanged(MediaPlayer*) override;
-    virtual void mediaPlayerEngineUpdated(MediaPlayer*) override;
+    void mediaPlayerNetworkStateChanged(MediaPlayer*) override;
+    void mediaPlayerReadyStateChanged(MediaPlayer*) override;
+    void mediaPlayerTimeChanged(MediaPlayer*) override;
+    void mediaPlayerVolumeChanged(MediaPlayer*) override;
+    void mediaPlayerMuteChanged(MediaPlayer*) override;
+    void mediaPlayerDurationChanged(MediaPlayer*) override;
+    void mediaPlayerRateChanged(MediaPlayer*) override;
+    void mediaPlayerPlaybackStateChanged(MediaPlayer*) override;
+    void mediaPlayerSawUnsupportedTracks(MediaPlayer*) override;
+    void mediaPlayerResourceNotSupported(MediaPlayer*) override;
+    void mediaPlayerRepaint(MediaPlayer*) override;
+    void mediaPlayerSizeChanged(MediaPlayer*) override;
+    bool mediaPlayerRenderingCanBeAccelerated(MediaPlayer*) override;
+    void mediaPlayerRenderingModeChanged(MediaPlayer*) override;
+    void mediaPlayerEngineUpdated(MediaPlayer*) override;
     
-    virtual void mediaPlayerFirstVideoFrameAvailable(MediaPlayer*) override;
-    virtual void mediaPlayerCharacteristicChanged(MediaPlayer*) override;
+    void mediaPlayerFirstVideoFrameAvailable(MediaPlayer*) override;
+    void mediaPlayerCharacteristicChanged(MediaPlayer*) override;
 
 #if ENABLE(ENCRYPTED_MEDIA)
-    virtual void mediaPlayerKeyAdded(MediaPlayer*, const String& keySystem, const String& sessionId) override;
-    virtual void mediaPlayerKeyError(MediaPlayer*, const String& keySystem, const String& sessionId, MediaPlayerClient::MediaKeyErrorCode, unsigned short systemCode) override;
-    virtual void mediaPlayerKeyMessage(MediaPlayer*, const String& keySystem, const String& sessionId, const unsigned char* message, unsigned messageLength, const URL& defaultURL) override;
-    virtual bool mediaPlayerKeyNeeded(MediaPlayer*, const String& keySystem, const String& sessionId, const unsigned char* initData, unsigned initDataLength) override;
+    void mediaPlayerKeyAdded(MediaPlayer*, const String& keySystem, const String& sessionId) override;
+    void mediaPlayerKeyError(MediaPlayer*, const String& keySystem, const String& sessionId, MediaPlayerClient::MediaKeyErrorCode, unsigned short systemCode) override;
+    void mediaPlayerKeyMessage(MediaPlayer*, const String& keySystem, const String& sessionId, const unsigned char* message, unsigned messageLength, const URL& defaultURL) override;
+    bool mediaPlayerKeyNeeded(MediaPlayer*, const String& keySystem, const String& sessionId, const unsigned char* initData, unsigned initDataLength) override;
 #endif
 
 #if ENABLE(ENCRYPTED_MEDIA_V2)
-    virtual RefPtr<ArrayBuffer> mediaPlayerCachedKeyForKeyId(const String& keyId) const override;
-    virtual bool mediaPlayerKeyNeeded(MediaPlayer*, Uint8Array*) override;
-    virtual String mediaPlayerMediaKeysStorageDirectory() const override;
+    RefPtr<ArrayBuffer> mediaPlayerCachedKeyForKeyId(const String& keyId) const override;
+    bool mediaPlayerKeyNeeded(MediaPlayer*, Uint8Array*) override;
+    String mediaPlayerMediaKeysStorageDirectory() const override;
 #endif
     
 #if ENABLE(WIRELESS_PLAYBACK_TARGET)
-    virtual void mediaPlayerCurrentPlaybackTargetIsWirelessChanged(MediaPlayer*) override;
+    void mediaPlayerCurrentPlaybackTargetIsWirelessChanged(MediaPlayer*) override;
     void enqueuePlaybackTargetAvailabilityChangedEvent();
 
     using EventTarget::dispatchEvent;
-    virtual bool dispatchEvent(Event&) override;
+    bool dispatchEvent(Event&) override;
 #endif
 
 #if ENABLE(MEDIA_SESSION)
     void setSessionInternal(MediaSession&);
 #endif
 
-    virtual String mediaPlayerReferrer() const override;
-    virtual String mediaPlayerUserAgent() const override;
+    String mediaPlayerReferrer() const override;
+    String mediaPlayerUserAgent() const override;
 
-    virtual bool mediaPlayerNeedsSiteSpecificHacks() const override;
-    virtual String mediaPlayerDocumentHost() const override;
+    bool mediaPlayerNeedsSiteSpecificHacks() const override;
+    String mediaPlayerDocumentHost() const override;
 
-    virtual void mediaPlayerEnterFullscreen() override;
-    virtual void mediaPlayerExitFullscreen() override;
-    virtual bool mediaPlayerIsFullscreen() const override;
-    virtual bool mediaPlayerIsFullscreenPermitted() const override;
-    virtual bool mediaPlayerIsVideo() const override;
-    virtual LayoutRect mediaPlayerContentBoxRect() const override;
-    virtual float mediaPlayerContentsScale() const override;
-    virtual void mediaPlayerSetSize(const IntSize&) override;
-    virtual void mediaPlayerPause() override;
-    virtual void mediaPlayerPlay() override;
-    virtual bool mediaPlayerPlatformVolumeConfigurationRequired() const override;
-    virtual bool mediaPlayerIsPaused() const override;
-    virtual bool mediaPlayerIsLooping() const override;
-    virtual CachedResourceLoader* mediaPlayerCachedResourceLoader() override;
-    virtual RefPtr<PlatformMediaResourceLoader> mediaPlayerCreateResourceLoader() override;
+    void mediaPlayerEnterFullscreen() override;
+    void mediaPlayerExitFullscreen() override;
+    bool mediaPlayerIsFullscreen() const override;
+    bool mediaPlayerIsFullscreenPermitted() const override;
+    bool mediaPlayerIsVideo() const override;
+    LayoutRect mediaPlayerContentBoxRect() const override;
+    float mediaPlayerContentsScale() const override;
+    void mediaPlayerSetSize(const IntSize&) override;
+    void mediaPlayerPause() override;
+    void mediaPlayerPlay() override;
+    bool mediaPlayerPlatformVolumeConfigurationRequired() const override;
+    bool mediaPlayerIsPaused() const override;
+    bool mediaPlayerIsLooping() const override;
+    CachedResourceLoader* mediaPlayerCachedResourceLoader() override;
+    RefPtr<PlatformMediaResourceLoader> mediaPlayerCreateResourceLoader() override;
 
 #if PLATFORM(WIN) && USE(AVFOUNDATION)
-    virtual GraphicsDeviceAdapter* mediaPlayerGraphicsDeviceAdapter(const MediaPlayer*) const override;
+    GraphicsDeviceAdapter* mediaPlayerGraphicsDeviceAdapter(const MediaPlayer*) const override;
 #endif
 
-    virtual bool mediaPlayerShouldWaitForResponseToAuthenticationChallenge(const AuthenticationChallenge&) override;
-    virtual void mediaPlayerHandlePlaybackCommand(PlatformMediaSession::RemoteControlCommandType command) override { didReceiveRemoteControlCommand(command); }
-    virtual String mediaPlayerSourceApplicationIdentifier() const override;
-    virtual Vector<String> mediaPlayerPreferredAudioCharacteristics() const override;
+    bool mediaPlayerShouldWaitForResponseToAuthenticationChallenge(const AuthenticationChallenge&) override;
+    void mediaPlayerHandlePlaybackCommand(PlatformMediaSession::RemoteControlCommandType command) override { didReceiveRemoteControlCommand(command); }
+    String mediaPlayerSourceApplicationIdentifier() const override;
+    Vector<String> mediaPlayerPreferredAudioCharacteristics() const override;
 
 #if PLATFORM(IOS)
-    virtual String mediaPlayerNetworkInterfaceName() const override;
-    virtual bool mediaPlayerGetRawCookies(const URL&, Vector<Cookie>&) const override;
+    String mediaPlayerNetworkInterfaceName() const override;
+    bool mediaPlayerGetRawCookies(const URL&, Vector<Cookie>&) const override;
 #endif
 
-    virtual bool mediaPlayerIsInMediaDocument() const override final;
-    virtual void mediaPlayerEngineFailedToLoad() const override final;
+    bool mediaPlayerIsInMediaDocument() const override final;
+    void mediaPlayerEngineFailedToLoad() const override final;
 
-    virtual double mediaPlayerRequestedPlaybackRate() const override final;
-    virtual VideoFullscreenMode mediaPlayerFullscreenMode() const override final { return fullscreenMode(); }
+    double mediaPlayerRequestedPlaybackRate() const override final;
+    VideoFullscreenMode mediaPlayerFullscreenMode() const override final { return fullscreenMode(); }
 
 #if USE(GSTREAMER)
-    virtual void requestInstallMissingPlugins(const String& details, const String& description, MediaPlayerRequestInstallMissingPluginsCallback&) override final;
+    void requestInstallMissingPlugins(const String& details, const String& description, MediaPlayerRequestInstallMissingPluginsCallback&) override final;
 #endif
 
     void pendingActionTimerFired();
@@ -664,7 +664,7 @@
         AfterDelay,
     };
     void markCaptionAndSubtitleTracksAsUnconfigured(ReconfigureMode);
-    virtual void captionPreferencesChanged() override;
+    void captionPreferencesChanged() override;
 #endif
 
     // These "internal" functions do not check user gesture restrictions.
@@ -696,7 +696,7 @@
 
     void setPlaybackRateInternal(double);
 
-    virtual void mediaCanStart() override;
+    void mediaCanStart() override;
 
     void setShouldDelayLoadEvent(bool);
     void invalidateCachedTime() const;
@@ -716,14 +716,14 @@
     void updateMediaController();
     bool isBlocked() const;
     bool isBlockedOnMediaController() const;
-    virtual bool hasCurrentSrc() const override { return !m_currentSrc.isEmpty(); }
-    virtual bool isLiveStream() const override { return movieLoadType() == MediaPlayerEnums::LiveStream; }
+    bool hasCurrentSrc() const override { return !m_currentSrc.isEmpty(); }
+    bool isLiveStream() const override { return movieLoadType() == MediaPlayerEnums::LiveStream; }
 
     void updateSleepDisabling();
     bool shouldDisableSleep() const;
 
 #if ENABLE(MEDIA_CONTROLS_SCRIPT)
-    virtual void didAddUserAgentShadowRoot(ShadowRoot*) override;
+    void didAddUserAgentShadowRoot(ShadowRoot*) override;
     DOMWrapperWorld& ensureIsolatedWorld();
     bool ensureMediaControlsInjectedScript();
 #endif
@@ -742,7 +742,7 @@
     void didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType) override;
     bool shouldOverrideBackgroundPlaybackRestriction(PlatformMediaSession::InterruptionType) const override;
 
-    virtual void pageMutedStateDidChange() override;
+    void pageMutedStateDidChange() override;
 
     bool effectiveMuted() const;
 
@@ -752,8 +752,8 @@
     void updateCaptionContainer();
 
 #if ENABLE(WIRELESS_PLAYBACK_TARGET)
-    virtual void prepareForDocumentSuspension() override final;
-    virtual void resumeFromDocumentSuspension() override final;
+    void prepareForDocumentSuspension() override final;
+    void resumeFromDocumentSuspension() override final;
 
     enum class UpdateMediaState {
         Asynchronously,
diff --git a/Source/WebCore/html/HTMLMetaElement.h b/Source/WebCore/html/HTMLMetaElement.h
index 407a3ee..718d584 100644
--- a/Source/WebCore/html/HTMLMetaElement.h
+++ b/Source/WebCore/html/HTMLMetaElement.h
@@ -38,8 +38,8 @@
 private:
     HTMLMetaElement(const QualifiedName&, Document&);
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
 
     void process();
 };
diff --git a/Source/WebCore/html/HTMLMeterElement.h b/Source/WebCore/html/HTMLMeterElement.h
index b8636ec..52d28ae 100644
--- a/Source/WebCore/html/HTMLMeterElement.h
+++ b/Source/WebCore/html/HTMLMeterElement.h
@@ -60,7 +60,7 @@
     double valueRatio() const;
     GaugeRegion gaugeRegion() const;
 
-    virtual bool canContainRangeEndPoint() const override { return false; }
+    bool canContainRangeEndPoint() const override { return false; }
 
 private:
     HTMLMeterElement(const QualifiedName&, Document&);
@@ -68,15 +68,15 @@
 
     RenderMeter* renderMeter() const;
 
-    virtual bool supportLabels() const override { return true; }
+    bool supportLabels() const override { return true; }
 
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
-    virtual bool childShouldCreateRenderer(const Node&) const override;
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    bool childShouldCreateRenderer(const Node&) const override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
 
     void didElementStateChange();
-    virtual void didAddUserAgentShadowRoot(ShadowRoot*) override;
-    virtual bool canHaveUserAgentShadowRoot() const override final { return true; }
+    void didAddUserAgentShadowRoot(ShadowRoot*) override;
+    bool canHaveUserAgentShadowRoot() const override final { return true; }
 
     RefPtr<MeterValueElement> m_value;
 };
diff --git a/Source/WebCore/html/HTMLModElement.h b/Source/WebCore/html/HTMLModElement.h
index 6cd2788..9b68d49 100644
--- a/Source/WebCore/html/HTMLModElement.h
+++ b/Source/WebCore/html/HTMLModElement.h
@@ -35,7 +35,7 @@
 private:
     HTMLModElement(const QualifiedName&, Document&);
 
-    virtual bool isURLAttribute(const Attribute&) const override;
+    bool isURLAttribute(const Attribute&) const override;
 };
 
 } //namespace
diff --git a/Source/WebCore/html/HTMLOListElement.h b/Source/WebCore/html/HTMLOListElement.h
index 7bc8676..3d3c989 100644
--- a/Source/WebCore/html/HTMLOListElement.h
+++ b/Source/WebCore/html/HTMLOListElement.h
@@ -54,9 +54,9 @@
 
     void recalculateItemCount();
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
 
     Optional<int> m_start;
     unsigned m_itemCount;
diff --git a/Source/WebCore/html/HTMLObjectElement.h b/Source/WebCore/html/HTMLObjectElement.h
index e6e7421..a87881b 100644
--- a/Source/WebCore/html/HTMLObjectElement.h
+++ b/Source/WebCore/html/HTMLObjectElement.h
@@ -39,16 +39,16 @@
     bool containsJavaApplet() const;
 
     bool hasFallbackContent() const;
-    virtual bool useFallbackContent() const override { return m_useFallbackContent; }
+    bool useFallbackContent() const override { return m_useFallbackContent; }
     void renderFallbackContent();
 
-    virtual bool willValidate() const override { return false; }
+    bool willValidate() const override { return false; }
 
     // Implementation of constraint validation API.
     // Note that the object elements are always barred from constraint validation.
     static bool checkValidity() { return true; }
-    virtual void setCustomValidity(const String&) override { }
-    virtual String validationMessage() const override { return String(); }
+    void setCustomValidity(const String&) override { }
+    String validationMessage() const override { return String(); }
 
     using HTMLPlugInImageElement::ref;
     using HTMLPlugInImageElement::deref;
@@ -58,26 +58,26 @@
 private:
     HTMLObjectElement(const QualifiedName&, Document&, HTMLFormElement*, bool createdByParser);
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
 
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
     void finishedInsertingSubtree() override final;
-    virtual void removedFrom(ContainerNode&) override;
+    void removedFrom(ContainerNode&) override;
 
-    virtual void didMoveToNewDocument(Document* oldDocument) override;
+    void didMoveToNewDocument(Document* oldDocument) override;
 
-    virtual void childrenChanged(const ChildChange&) override;
+    void childrenChanged(const ChildChange&) override;
 
-    virtual bool isURLAttribute(const Attribute&) const override;
-    virtual const AtomicString& imageSourceURL() const override;
+    bool isURLAttribute(const Attribute&) const override;
+    const AtomicString& imageSourceURL() const override;
 
-    virtual RenderWidget* renderWidgetLoadingPlugin() const override;
+    RenderWidget* renderWidgetLoadingPlugin() const override;
 
-    virtual void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
+    void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
 
-    virtual void updateWidget(PluginCreationOption) override;
+    void updateWidget(PluginCreationOption) override;
     void updateDocNamedItem();
 
     // FIXME: This function should not deal with url or serviceType
@@ -88,20 +88,20 @@
     bool hasValidClassId();
     void clearUseFallbackContent() { m_useFallbackContent = false; }
 
-    virtual void refFormAssociatedElement() override { ref(); }
-    virtual void derefFormAssociatedElement() override { deref(); }
-    virtual HTMLFormElement* virtualForm() const override;
+    void refFormAssociatedElement() override { ref(); }
+    void derefFormAssociatedElement() override { deref(); }
+    HTMLFormElement* virtualForm() const override;
 
-    virtual FormNamedItem* asFormNamedItem() override { return this; }
-    virtual HTMLObjectElement& asHTMLElement() override { return *this; }
-    virtual const HTMLObjectElement& asHTMLElement() const override { return *this; }
+    FormNamedItem* asFormNamedItem() override { return this; }
+    HTMLObjectElement& asHTMLElement() override { return *this; }
+    const HTMLObjectElement& asHTMLElement() const override { return *this; }
 
-    virtual bool isFormControlElement() const override { return false; }
+    bool isFormControlElement() const override { return false; }
 
-    virtual bool isEnumeratable() const override { return true; }
-    virtual bool appendFormData(FormDataList&, bool) override;
+    bool isEnumeratable() const override { return true; }
+    bool appendFormData(FormDataList&, bool) override;
 
-    virtual bool canContainRangeEndPoint() const override;
+    bool canContainRangeEndPoint() const override;
 
     bool m_docNamedItem : 1;
     bool m_useFallbackContent : 1;
diff --git a/Source/WebCore/html/HTMLOptGroupElement.h b/Source/WebCore/html/HTMLOptGroupElement.h
index ea8ce18..e38d13d 100644
--- a/Source/WebCore/html/HTMLOptGroupElement.h
+++ b/Source/WebCore/html/HTMLOptGroupElement.h
@@ -34,7 +34,7 @@
 public:
     static Ref<HTMLOptGroupElement> create(const QualifiedName&, Document&);
 
-    virtual bool isDisabledFormControl() const override;
+    bool isDisabledFormControl() const override;
     HTMLSelectElement* ownerSelectElement() const;
     
     WEBCORE_EXPORT String groupLabelText() const;
@@ -43,13 +43,13 @@
     HTMLOptGroupElement(const QualifiedName&, Document&);
 
     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; }
+    bool isFocusable() const override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool rendererIsNeeded(const RenderStyle&) override { return false; }
 
-    virtual void childrenChanged(const ChildChange&) override;
+    void childrenChanged(const ChildChange&) override;
 
-    virtual void accessKeyAction(bool sendMouseEvents) override;
+    void accessKeyAction(bool sendMouseEvents) override;
 
     void recalcSelectOptions();
 };
diff --git a/Source/WebCore/html/HTMLOptionElement.h b/Source/WebCore/html/HTMLOptionElement.h
index 1d9601e..aa1bcb5 100644
--- a/Source/WebCore/html/HTMLOptionElement.h
+++ b/Source/WebCore/html/HTMLOptionElement.h
@@ -60,7 +60,7 @@
 
     bool ownElementDisabled() const { return m_disabled; }
 
-    virtual bool isDisabledFormControl() const override;
+    bool isDisabledFormControl() const override;
 
     String textIndentedToRespectGroupLabel() const;
 
@@ -69,17 +69,17 @@
 private:
     HTMLOptionElement(const QualifiedName&, Document&);
 
-    virtual bool isFocusable() const override;
-    virtual bool rendererIsNeeded(const RenderStyle&) override { return false; }
+    bool isFocusable() const override;
+    bool rendererIsNeeded(const RenderStyle&) override { return false; }
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
 
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
-    virtual void accessKeyAction(bool) override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    void accessKeyAction(bool) override;
 
-    virtual void childrenChanged(const ChildChange&) override;
+    void childrenChanged(const ChildChange&) override;
 
-    virtual void willResetComputedStyle() override;
+    void willResetComputedStyle() override;
 
     String collectOptionInnerText() const;
 
diff --git a/Source/WebCore/html/HTMLOptionsCollection.h b/Source/WebCore/html/HTMLOptionsCollection.h
index fc6aa25..48f35ee 100644
--- a/Source/WebCore/html/HTMLOptionsCollection.h
+++ b/Source/WebCore/html/HTMLOptionsCollection.h
@@ -40,8 +40,8 @@
     HTMLSelectElement& selectElement() { return downcast<HTMLSelectElement>(ownerNode()); }
     const HTMLSelectElement& selectElement() const { return downcast<HTMLSelectElement>(ownerNode()); }
 
-    virtual HTMLOptionElement* item(unsigned offset) const override;
-    virtual HTMLOptionElement* namedItem(const AtomicString& name) const override;
+    HTMLOptionElement* item(unsigned offset) const override;
+    HTMLOptionElement* namedItem(const AtomicString& name) const override;
 
     void add(HTMLElement*, HTMLElement* beforeElement, ExceptionCode&);
     void add(HTMLElement*, int beforeIndex, ExceptionCode&);
diff --git a/Source/WebCore/html/HTMLOutputElement.h b/Source/WebCore/html/HTMLOutputElement.h
index b4ed549..2546e15 100644
--- a/Source/WebCore/html/HTMLOutputElement.h
+++ b/Source/WebCore/html/HTMLOutputElement.h
@@ -46,19 +46,19 @@
     void setDefaultValue(const String&);
     DOMTokenList& htmlFor();
     
-    virtual bool canContainRangeEndPoint() const override { return false; }
+    bool canContainRangeEndPoint() const override { return false; }
 
 private:
     HTMLOutputElement(const QualifiedName&, Document&, HTMLFormElement*);
 
-    virtual bool computeWillValidate() const override { return false; }
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual const AtomicString& formControlType() const override;
-    virtual bool isEnumeratable() const override { return true; }
-    virtual bool supportLabels() const override { return true; }
-    virtual bool supportsFocus() const override;
-    virtual void childrenChanged(const ChildChange&) override;
-    virtual void reset() override;
+    bool computeWillValidate() const override { return false; }
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    const AtomicString& formControlType() const override;
+    bool isEnumeratable() const override { return true; }
+    bool supportLabels() const override { return true; }
+    bool supportsFocus() const override;
+    void childrenChanged(const ChildChange&) override;
+    void reset() override;
 
     void setTextContentInternal(const String&);
 
diff --git a/Source/WebCore/html/HTMLParagraphElement.h b/Source/WebCore/html/HTMLParagraphElement.h
index 70154f6..b6a77af 100644
--- a/Source/WebCore/html/HTMLParagraphElement.h
+++ b/Source/WebCore/html/HTMLParagraphElement.h
@@ -35,8 +35,8 @@
 private:
     HTMLParagraphElement(const QualifiedName&, Document&);
 
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/HTMLParamElement.h b/Source/WebCore/html/HTMLParamElement.h
index d381b34..a14717a 100644
--- a/Source/WebCore/html/HTMLParamElement.h
+++ b/Source/WebCore/html/HTMLParamElement.h
@@ -39,8 +39,8 @@
 private:
     HTMLParamElement(const QualifiedName&, Document&);
 
-    virtual bool isURLAttribute(const Attribute&) const override;
-    virtual void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
+    bool isURLAttribute(const Attribute&) const override;
+    void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/HTMLPlugInElement.h b/Source/WebCore/html/HTMLPlugInElement.h
index 4d497e3..9bd6ab9 100644
--- a/Source/WebCore/html/HTMLPlugInElement.h
+++ b/Source/WebCore/html/HTMLPlugInElement.h
@@ -78,14 +78,14 @@
     bool isCapturingMouseEvents() const { return m_isCapturingMouseEvents; }
     void setIsCapturingMouseEvents(bool capturing) { m_isCapturingMouseEvents = capturing; }
 
-    virtual bool canContainRangeEndPoint() const override { return false; }
+    bool canContainRangeEndPoint() const override { return false; }
 
     bool canProcessDrag() const;
 
 #if PLATFORM(IOS)
-    virtual bool willRespondToMouseMoveEvents() override { return false; }
+    bool willRespondToMouseMoveEvents() override { return false; }
 #endif
-    virtual bool willRespondToMouseClickEvents() override;
+    bool willRespondToMouseClickEvents() override;
 
     virtual bool isPlugInImageElement() const { return false; }
 
@@ -94,17 +94,17 @@
 protected:
     HTMLPlugInElement(const QualifiedName& tagName, Document&);
 
-    virtual void willDetachRenderers() override;
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    void willDetachRenderers() override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
 
     virtual bool useFallbackContent() const { return false; }
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 
     virtual bool requestObject(const String& url, const String& mimeType, const Vector<String>& paramNames, const Vector<String>& paramValues);
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
-    virtual void didAddUserAgentShadowRoot(ShadowRoot*) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    void didAddUserAgentShadowRoot(ShadowRoot*) override;
 
     // Subclasses should use guardedDispatchBeforeLoadEvent instead of calling dispatchBeforeLoadEvent directly.
     bool guardedDispatchBeforeLoadEvent(const String& sourceURL);
@@ -118,15 +118,15 @@
     bool dispatchBeforeLoadEvent(const String& sourceURL); // Not implemented, generates a compile error if subclasses call this by mistake.
 
     // FIXME: Shadow DOM spec says we should be able to create shadow root on applet, embed, and object.
-    virtual bool canHaveUserAgentShadowRoot() const override final { return true; }
+    bool canHaveUserAgentShadowRoot() const override final { return true; }
 
     // This will load the plugin if necessary.
     virtual RenderWidget* renderWidgetLoadingPlugin() const = 0;
 
-    virtual bool supportsFocus() const override;
+    bool supportsFocus() const override;
 
-    virtual bool isKeyboardFocusable(KeyboardEvent*) const override;
-    virtual bool isPluginElement() const override final;
+    bool isKeyboardFocusable(KeyboardEvent*) const override;
+    bool isPluginElement() const override final;
 
     RefPtr<JSC::Bindings::Instance> m_instance;
     Timer m_swapRendererTimer;
diff --git a/Source/WebCore/html/HTMLPlugInImageElement.h b/Source/WebCore/html/HTMLPlugInImageElement.h
index 0e74e5d..c68a943 100644
--- a/Source/WebCore/html/HTMLPlugInImageElement.h
+++ b/Source/WebCore/html/HTMLPlugInImageElement.h
@@ -45,7 +45,7 @@
 
     RenderEmbeddedObject* renderEmbeddedObject() const;
 
-    virtual void setDisplayState(DisplayState) override;
+    void setDisplayState(DisplayState) override;
 
     virtual void updateWidget(PluginCreationOption) = 0;
 
@@ -93,8 +93,8 @@
 protected:
     HTMLPlugInImageElement(const QualifiedName& tagName, Document&, bool createdByParser);
 
-    virtual void didMoveToNewDocument(Document* oldDocument) override;
-    virtual bool requestObject(const String& url, const String& mimeType, const Vector<String>& paramNames, const Vector<String>& paramValues) override final;
+    void didMoveToNewDocument(Document* oldDocument) override;
+    bool requestObject(const String& url, const String& mimeType, const Vector<String>& paramNames, const Vector<String>& paramValues) override final;
 
     bool isImageType();
     HTMLImageLoader* imageLoader() { return m_imageLoader.get(); }
@@ -108,25 +108,25 @@
     std::unique_ptr<HTMLImageLoader> m_imageLoader;
 
 private:
-    virtual bool isPlugInImageElement() const override final { return true; }
-    virtual bool isRestartedPlugin() const override final { return m_isRestartedPlugin; }
+    bool isPlugInImageElement() const override final { return true; }
+    bool isRestartedPlugin() const override final { return m_isRestartedPlugin; }
 
-    virtual void finishParsingChildren() override final;
-    virtual void didAddUserAgentShadowRoot(ShadowRoot*) override final;
+    void finishParsingChildren() override final;
+    void didAddUserAgentShadowRoot(ShadowRoot*) override final;
 
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
-    virtual bool childShouldCreateRenderer(const Node&) const override;
-    virtual bool willRecalcStyle(Style::Change) override final;
-    virtual void didAttachRenderers() override final;
-    virtual void willDetachRenderers() override final;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    bool childShouldCreateRenderer(const Node&) const override;
+    bool willRecalcStyle(Style::Change) override final;
+    void didAttachRenderers() override final;
+    void willDetachRenderers() override final;
 
-    virtual void prepareForDocumentSuspension() override final;
-    virtual void resumeFromDocumentSuspension() override final;
+    void prepareForDocumentSuspension() override final;
+    void resumeFromDocumentSuspension() override final;
 
-    virtual void defaultEventHandler(Event*) override final;
-    virtual void dispatchPendingMouseClick() override final;
+    void defaultEventHandler(Event*) override final;
+    void dispatchPendingMouseClick() override final;
 
-    virtual void updateSnapshot(PassRefPtr<Image>) override final;
+    void updateSnapshot(PassRefPtr<Image>) override final;
 
     void startLoadingImage();
     void updateWidgetIfNecessary();
diff --git a/Source/WebCore/html/HTMLPreElement.h b/Source/WebCore/html/HTMLPreElement.h
index 45880f5..9cb2860 100644
--- a/Source/WebCore/html/HTMLPreElement.h
+++ b/Source/WebCore/html/HTMLPreElement.h
@@ -34,8 +34,8 @@
 private:
     HTMLPreElement(const QualifiedName&, Document&);
 
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/HTMLProgressElement.h b/Source/WebCore/html/HTMLProgressElement.h
index f7c64a9..58f1a82 100644
--- a/Source/WebCore/html/HTMLProgressElement.h
+++ b/Source/WebCore/html/HTMLProgressElement.h
@@ -43,26 +43,26 @@
 
     double position() const;
 
-    virtual bool canContainRangeEndPoint() const override { return false; }
+    bool canContainRangeEndPoint() const override { return false; }
 
 private:
     HTMLProgressElement(const QualifiedName&, Document&);
     virtual ~HTMLProgressElement();
 
-    virtual bool shouldAppearIndeterminate() const override;
-    virtual bool supportLabels() const override { return true; }
+    bool shouldAppearIndeterminate() const override;
+    bool supportLabels() const override { return true; }
 
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
-    virtual bool childShouldCreateRenderer(const Node&) const override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    bool childShouldCreateRenderer(const Node&) const override;
     RenderProgress* renderProgress() const;
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
 
-    virtual void didAttachRenderers() override;
+    void didAttachRenderers() override;
 
     void didElementStateChange();
-    virtual void didAddUserAgentShadowRoot(ShadowRoot*) override;
-    virtual bool canHaveUserAgentShadowRoot() const override final { return true; }
+    void didAddUserAgentShadowRoot(ShadowRoot*) override;
+    bool canHaveUserAgentShadowRoot() const override final { return true; }
     bool isDeterminate() const;
 
     ProgressValueElement* m_value;
diff --git a/Source/WebCore/html/HTMLQuoteElement.h b/Source/WebCore/html/HTMLQuoteElement.h
index 67e0295..a3fd44e 100644
--- a/Source/WebCore/html/HTMLQuoteElement.h
+++ b/Source/WebCore/html/HTMLQuoteElement.h
@@ -36,7 +36,7 @@
 private:
     HTMLQuoteElement(const QualifiedName&, Document&);
     
-    virtual bool isURLAttribute(const Attribute&) const override;
+    bool isURLAttribute(const Attribute&) const override;
 };
 
 } //namespace
diff --git a/Source/WebCore/html/HTMLScriptElement.h b/Source/WebCore/html/HTMLScriptElement.h
index acea4d8..aa1b67e 100644
--- a/Source/WebCore/html/HTMLScriptElement.h
+++ b/Source/WebCore/html/HTMLScriptElement.h
@@ -47,28 +47,28 @@
 private:
     HTMLScriptElement(const QualifiedName&, Document&, bool wasInsertedByParser, bool alreadyStarted);
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
-    virtual void finishedInsertingSubtree() override;
-    virtual void childrenChanged(const ChildChange&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    void finishedInsertingSubtree() override;
+    void childrenChanged(const ChildChange&) override;
 
-    virtual bool isURLAttribute(const Attribute&) const override;
+    bool isURLAttribute(const Attribute&) const override;
 
-    virtual void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
+    void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
 
-    virtual String sourceAttributeValue() const override;
-    virtual String charsetAttributeValue() const override;
-    virtual String typeAttributeValue() const override;
-    virtual String languageAttributeValue() const override;
-    virtual String forAttributeValue() const override;
-    virtual String eventAttributeValue() const override;
-    virtual bool asyncAttributeValue() const override;
-    virtual bool deferAttributeValue() const override;
-    virtual bool hasSourceAttribute() const override;
+    String sourceAttributeValue() const override;
+    String charsetAttributeValue() const override;
+    String typeAttributeValue() const override;
+    String languageAttributeValue() const override;
+    String forAttributeValue() const override;
+    String eventAttributeValue() const override;
+    bool asyncAttributeValue() const override;
+    bool deferAttributeValue() const override;
+    bool hasSourceAttribute() const override;
 
-    virtual void dispatchLoadEvent() override;
+    void dispatchLoadEvent() override;
 
-    virtual Ref<Element> cloneElementWithoutAttributesAndChildren(Document&) override;
+    Ref<Element> cloneElementWithoutAttributesAndChildren(Document&) override;
 };
 
 } //namespace
diff --git a/Source/WebCore/html/HTMLSelectElement.h b/Source/WebCore/html/HTMLSelectElement.h
index 10aaf98..eb6d617 100644
--- a/Source/WebCore/html/HTMLSelectElement.h
+++ b/Source/WebCore/html/HTMLSelectElement.h
@@ -46,8 +46,8 @@
     WEBCORE_EXPORT void optionSelectedByUser(int index, bool dispatchChangeEvent, bool allowMultipleSelection = false);
 
     // For ValidityState
-    virtual String validationMessage() const override;
-    virtual bool valueMissing() const override;
+    String validationMessage() const override;
+    bool valueMissing() const override;
 
     unsigned length() const;
 
@@ -78,7 +78,7 @@
 
     WEBCORE_EXPORT const Vector<HTMLElement*>& listItems() const;
 
-    virtual void accessKeyAction(bool sendMouseEvents) override;
+    void accessKeyAction(bool sendMouseEvents) override;
     void accessKeySetSelectedIndex(int);
 
     void setMultiple(bool);
@@ -96,7 +96,7 @@
     void listBoxSelectItem(int listIndex, bool allowMultiplySelections, bool shift, bool fireOnChangeNow = true);
 
 #if PLATFORM(IOS)
-    virtual bool willRespondToMouseClickEvents() override;
+    bool willRespondToMouseClickEvents() override;
 #endif
 
     bool canSelectAll() const;
@@ -118,38 +118,38 @@
     HTMLSelectElement(const QualifiedName&, Document&, HTMLFormElement*);
 
 private:
-    virtual const AtomicString& formControlType() const override;
+    const AtomicString& formControlType() const override;
     
-    virtual bool isKeyboardFocusable(KeyboardEvent*) const override;
-    virtual bool isMouseFocusable() const override;
+    bool isKeyboardFocusable(KeyboardEvent*) const override;
+    bool isMouseFocusable() const override;
 
-    virtual void dispatchFocusEvent(RefPtr<Element>&& oldFocusedElement, FocusDirection) override final;
-    virtual void dispatchBlurEvent(RefPtr<Element>&& newFocusedElement) override final;
+    void dispatchFocusEvent(RefPtr<Element>&& oldFocusedElement, FocusDirection) override final;
+    void dispatchBlurEvent(RefPtr<Element>&& newFocusedElement) override final;
     
-    virtual bool canStartSelection() const override { return false; }
+    bool canStartSelection() const override { return false; }
 
-    virtual bool canHaveUserAgentShadowRoot() const override final { return true; }
+    bool canHaveUserAgentShadowRoot() const override final { return true; }
 
-    virtual bool isEnumeratable() const override { return true; }
-    virtual bool supportLabels() const override { return true; }
+    bool isEnumeratable() const override { return true; }
+    bool supportLabels() const override { return true; }
 
-    virtual FormControlState saveFormControlState() const override;
-    virtual void restoreFormControlState(const FormControlState&) override;
+    FormControlState saveFormControlState() const override;
+    void restoreFormControlState(const FormControlState&) override;
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
 
-    virtual bool childShouldCreateRenderer(const Node&) const override;
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
-    virtual bool appendFormData(FormDataList&, bool) override;
+    bool childShouldCreateRenderer(const Node&) const override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    bool appendFormData(FormDataList&, bool) override;
 
-    virtual void reset() override;
+    void reset() override;
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 
     void dispatchChangeEventForMenuList();
 
-    virtual void didRecalcStyle(Style::Change) override final;
+    void didRecalcStyle(Style::Change) override final;
 
     void recalcListItems(bool updateSelectedStates = true) const;
 
@@ -157,10 +157,10 @@
     void typeAheadFind(KeyboardEvent&);
     void saveLastSelection();
 
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
 
-    virtual bool isOptionalFormControl() const override { return !isRequiredFormControl(); }
-    virtual bool isRequiredFormControl() const override;
+    bool isOptionalFormControl() const override { return !isRequiredFormControl(); }
+    bool isRequiredFormControl() const override;
 
     bool hasPlaceholderLabelOption() const;
 
@@ -192,12 +192,12 @@
     int lastSelectableListIndex() const;
     int nextSelectableListIndexPageAway(int startIndex, SkipDirection) const;
 
-    virtual void childrenChanged(const ChildChange&) override;
+    void childrenChanged(const ChildChange&) override;
 
     // TypeAheadDataSource functions.
-    virtual int indexOfSelectedOption() const override;
-    virtual int optionCount() const override;
-    virtual String optionAtIndex(int index) const override;
+    int indexOfSelectedOption() const override;
+    int optionCount() const override;
+    String optionAtIndex(int index) const override;
 
     // m_listItems contains HTMLOptionElement, HTMLOptGroupElement, and HTMLHRElement objects.
     mutable Vector<HTMLElement*> m_listItems;
diff --git a/Source/WebCore/html/HTMLSlotElement.h b/Source/WebCore/html/HTMLSlotElement.h
index 0aca6ec..ab161ff 100644
--- a/Source/WebCore/html/HTMLSlotElement.h
+++ b/Source/WebCore/html/HTMLSlotElement.h
@@ -42,9 +42,9 @@
 private:
     HTMLSlotElement(const QualifiedName&, Document&);
 
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
-    virtual void removedFrom(ContainerNode&) override;
-    virtual void attributeChanged(const QualifiedName&, const AtomicString& oldValue, const AtomicString& newValue, AttributeModificationReason) override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    void removedFrom(ContainerNode&) override;
+    void attributeChanged(const QualifiedName&, const AtomicString& oldValue, const AtomicString& newValue, AttributeModificationReason) override;
 };
 
 }
diff --git a/Source/WebCore/html/HTMLSourceElement.h b/Source/WebCore/html/HTMLSourceElement.h
index b9bc621..54cd776 100644
--- a/Source/WebCore/html/HTMLSourceElement.h
+++ b/Source/WebCore/html/HTMLSourceElement.h
@@ -50,9 +50,9 @@
 private:
     HTMLSourceElement(const QualifiedName&, Document&);
     
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
-    virtual void removedFrom(ContainerNode&) override;
-    virtual bool isURLAttribute(const Attribute&) const override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    void removedFrom(ContainerNode&) override;
+    bool isURLAttribute(const Attribute&) const override;
 
     // ActiveDOMObject.
     const char* activeDOMObjectName() const override;
diff --git a/Source/WebCore/html/HTMLStyleElement.h b/Source/WebCore/html/HTMLStyleElement.h
index 2868dbd..761c8b2 100644
--- a/Source/WebCore/html/HTMLStyleElement.h
+++ b/Source/WebCore/html/HTMLStyleElement.h
@@ -51,19 +51,19 @@
     HTMLStyleElement(const QualifiedName&, Document&, bool createdByParser);
 
     // overload from HTMLElement
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
-    virtual void removedFrom(ContainerNode&) override;
-    virtual void childrenChanged(const ChildChange&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    void removedFrom(ContainerNode&) override;
+    void childrenChanged(const ChildChange&) override;
 
-    virtual void finishParsingChildren() override;
+    void finishParsingChildren() override;
 
     bool isLoading() const { return m_styleSheetOwner.isLoading(); }
-    virtual bool sheetLoaded() override { return m_styleSheetOwner.sheetLoaded(*this); }
-    virtual void notifyLoadedSheetAndAllCriticalSubresources(bool errorOccurred) override;
-    virtual void startLoadingDynamicSheet() override { m_styleSheetOwner.startLoadingDynamicSheet(*this); }
+    bool sheetLoaded() override { return m_styleSheetOwner.sheetLoaded(*this); }
+    void notifyLoadedSheetAndAllCriticalSubresources(bool errorOccurred) override;
+    void startLoadingDynamicSheet() override { m_styleSheetOwner.startLoadingDynamicSheet(*this); }
 
-    virtual void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
+    void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
 
     InlineStyleSheetOwner m_styleSheetOwner;
     bool m_firedLoad;
diff --git a/Source/WebCore/html/HTMLSummaryElement.h b/Source/WebCore/html/HTMLSummaryElement.h
index 011e324..8f5b3a5 100644
--- a/Source/WebCore/html/HTMLSummaryElement.h
+++ b/Source/WebCore/html/HTMLSummaryElement.h
@@ -32,22 +32,22 @@
     static Ref<HTMLSummaryElement> create(const QualifiedName&, Document&);
 
     bool isActiveSummary() const;
-    virtual bool willRespondToMouseClickEvents() override;
+    bool willRespondToMouseClickEvents() override;
 
 private:
     HTMLSummaryElement(const QualifiedName&, Document&);
 
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
-    virtual void defaultEventHandler(Event*) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    void defaultEventHandler(Event*) override;
 
-    virtual void didAddUserAgentShadowRoot(ShadowRoot*) override;
+    void didAddUserAgentShadowRoot(ShadowRoot*) override;
 
     // FIXME: Shadow DOM spec says we should be able to create shadow root on this element
-    virtual bool canHaveUserAgentShadowRoot() const override final { return true; }
+    bool canHaveUserAgentShadowRoot() const override final { return true; }
 
     HTMLDetailsElement* detailsElement() const;
 
-    virtual bool supportsFocus() const override;
+    bool supportsFocus() const override;
 };
 
 }
diff --git a/Source/WebCore/html/HTMLTableCaptionElement.h b/Source/WebCore/html/HTMLTableCaptionElement.h
index 2d18c6c..5a692023 100644
--- a/Source/WebCore/html/HTMLTableCaptionElement.h
+++ b/Source/WebCore/html/HTMLTableCaptionElement.h
@@ -37,8 +37,8 @@
 private:
     HTMLTableCaptionElement(const QualifiedName&, Document&);
 
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
 };
 
 } // namespace
diff --git a/Source/WebCore/html/HTMLTableCellElement.h b/Source/WebCore/html/HTMLTableCellElement.h
index 0c26031..cf0e197 100644
--- a/Source/WebCore/html/HTMLTableCellElement.h
+++ b/Source/WebCore/html/HTMLTableCellElement.h
@@ -52,14 +52,14 @@
 protected:
     HTMLTableCellElement(const QualifiedName&, Document&);
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
-    virtual const StyleProperties* additionalPresentationAttributeStyle() override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    const StyleProperties* additionalPresentationAttributeStyle() override;
 
-    virtual bool isURLAttribute(const Attribute&) const override;
+    bool isURLAttribute(const Attribute&) const override;
 
-    virtual void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
+    void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/HTMLTableColElement.h b/Source/WebCore/html/HTMLTableColElement.h
index 1cf5846..c957d87 100644
--- a/Source/WebCore/html/HTMLTableColElement.h
+++ b/Source/WebCore/html/HTMLTableColElement.h
@@ -42,10 +42,10 @@
 private:
     HTMLTableColElement(const QualifiedName& tagName, Document&);
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
-    virtual const StyleProperties* additionalPresentationAttributeStyle() override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    const StyleProperties* additionalPresentationAttributeStyle() override;
 
     unsigned m_span;
 };
diff --git a/Source/WebCore/html/HTMLTableElement.h b/Source/WebCore/html/HTMLTableElement.h
index 3075835..aeb2ae2 100644
--- a/Source/WebCore/html/HTMLTableElement.h
+++ b/Source/WebCore/html/HTMLTableElement.h
@@ -72,15 +72,15 @@
 private:
     HTMLTableElement(const QualifiedName&, Document&);
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
-    virtual bool isURLAttribute(const Attribute&) const override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    bool isURLAttribute(const Attribute&) const override;
 
     // Used to obtain either a solid or outset border decl and to deal with the frame and rules attributes.
-    virtual const StyleProperties* additionalPresentationAttributeStyle() override;
+    const StyleProperties* additionalPresentationAttributeStyle() override;
 
-    virtual void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
+    void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
 
     enum TableRules { UnsetRules, NoneRules, GroupsRules, RowsRules, ColsRules, AllRules };
     enum CellBorders { NoBorders, SolidBorders, InsetBorders, SolidBordersColsOnly, SolidBordersRowsOnly };
diff --git a/Source/WebCore/html/HTMLTablePartElement.h b/Source/WebCore/html/HTMLTablePartElement.h
index ee36eff..bd3a43b 100644
--- a/Source/WebCore/html/HTMLTablePartElement.h
+++ b/Source/WebCore/html/HTMLTablePartElement.h
@@ -39,8 +39,8 @@
     {
     }
 
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
 
     HTMLTableElement* findParentTable() const;
 };
diff --git a/Source/WebCore/html/HTMLTableSectionElement.h b/Source/WebCore/html/HTMLTableSectionElement.h
index 0c14400..b22ce0b 100644
--- a/Source/WebCore/html/HTMLTableSectionElement.h
+++ b/Source/WebCore/html/HTMLTableSectionElement.h
@@ -58,7 +58,7 @@
 private:
     HTMLTableSectionElement(const QualifiedName& tagName, Document&);
 
-    virtual const StyleProperties* additionalPresentationAttributeStyle() override;
+    const StyleProperties* additionalPresentationAttributeStyle() override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/HTMLTemplateElement.h b/Source/WebCore/html/HTMLTemplateElement.h
index d1fa864..ff9736f 100644
--- a/Source/WebCore/html/HTMLTemplateElement.h
+++ b/Source/WebCore/html/HTMLTemplateElement.h
@@ -50,8 +50,8 @@
 private:
     HTMLTemplateElement(const QualifiedName&, Document&);
 
-    virtual Ref<Node> cloneNodeInternal(Document&, CloningOperation) override;
-    virtual void didMoveToNewDocument(Document* oldDocument) override;
+    Ref<Node> cloneNodeInternal(Document&, CloningOperation) override;
+    void didMoveToNewDocument(Document* oldDocument) override;
 
     mutable RefPtr<TemplateContentDocumentFragment> m_content;
 };
diff --git a/Source/WebCore/html/HTMLTextAreaElement.h b/Source/WebCore/html/HTMLTextAreaElement.h
index b1280b4..bd1e886 100644
--- a/Source/WebCore/html/HTMLTextAreaElement.h
+++ b/Source/WebCore/html/HTMLTextAreaElement.h
@@ -40,7 +40,7 @@
 
     bool shouldWrapText() const { return m_wrap != NoWrap; }
 
-    WEBCORE_EXPORT virtual String value() const override;
+    WEBCORE_EXPORT String value() const override;
     WEBCORE_EXPORT void setValue(const String&);
     String defaultValue() const;
     void setDefaultValue(const String&);
@@ -48,28 +48,28 @@
     int maxLengthForBindings() const { return m_maxLength; }
     int effectiveMaxLength() const { return m_maxLength; }
     // For ValidityState
-    virtual String validationMessage() const override;
-    virtual bool valueMissing() const override;
-    virtual bool tooLong() const override;
+    String validationMessage() const override;
+    bool valueMissing() const override;
+    bool tooLong() const override;
     bool isValidValue(const String&) const;
     
-    virtual TextControlInnerTextElement* innerTextElement() const override;
-    virtual Ref<RenderStyle> createInnerTextStyle(const RenderStyle&) const override;
+    TextControlInnerTextElement* innerTextElement() const override;
+    Ref<RenderStyle> createInnerTextStyle(const RenderStyle&) const override;
 
     void rendererWillBeDestroyed();
 
     void setCols(unsigned);
     void setRows(unsigned);
 
-    virtual bool willRespondToMouseClickEvents() override;
+    bool willRespondToMouseClickEvents() override;
 
 private:
     HTMLTextAreaElement(const QualifiedName&, Document&, HTMLFormElement*);
 
     enum WrapMethod { NoWrap, SoftWrap, HardWrap };
 
-    virtual void didAddUserAgentShadowRoot(ShadowRoot*) override;
-    virtual bool canHaveUserAgentShadowRoot() const override final { return true; }
+    void didAddUserAgentShadowRoot(ShadowRoot*) override;
+    bool canHaveUserAgentShadowRoot() const override final { return true; }
 
     void maxLengthAttributeChanged(const AtomicString& newValue);
 
@@ -79,44 +79,44 @@
     void setNonDirtyValue(const String&);
     void setValueCommon(const String&);
 
-    virtual bool supportsPlaceholder() const override { return true; }
-    virtual HTMLElement* placeholderElement() const override;
-    virtual void updatePlaceholderText() override;
-    virtual bool isEmptyValue() const override { return value().isEmpty(); }
+    bool supportsPlaceholder() const override { return true; }
+    HTMLElement* placeholderElement() const override;
+    void updatePlaceholderText() override;
+    bool isEmptyValue() const override { return value().isEmpty(); }
 
-    virtual bool isOptionalFormControl() const override { return !isRequiredFormControl(); }
-    virtual bool isRequiredFormControl() const override { return isRequired(); }
+    bool isOptionalFormControl() const override { return !isRequiredFormControl(); }
+    bool isRequiredFormControl() const override { return isRequired(); }
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
     
-    virtual void subtreeHasChanged() override;
+    void subtreeHasChanged() override;
 
-    virtual bool isEnumeratable() const override { return true; }
-    virtual bool supportLabels() const override { return true; }
+    bool isEnumeratable() const override { return true; }
+    bool supportLabels() const override { return true; }
 
-    virtual const AtomicString& formControlType() const override;
+    const AtomicString& formControlType() const override;
 
-    virtual FormControlState saveFormControlState() const override;
-    virtual void restoreFormControlState(const FormControlState&) override;
+    FormControlState saveFormControlState() const override;
+    void restoreFormControlState(const FormControlState&) override;
 
-    virtual bool isTextFormControl() const override { return true; }
+    bool isTextFormControl() const override { return true; }
 
-    virtual void childrenChanged(const ChildChange&) override;
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
-    virtual bool appendFormData(FormDataList&, bool) override;
-    virtual void reset() override;
-    virtual bool hasCustomFocusLogic() const override;
-    virtual bool isMouseFocusable() const override;
-    virtual bool isKeyboardFocusable(KeyboardEvent*) const override;
-    virtual void updateFocusAppearance(SelectionRestorationMode, SelectionRevealMode) override;
+    void childrenChanged(const ChildChange&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    bool appendFormData(FormDataList&, bool) override;
+    void reset() override;
+    bool hasCustomFocusLogic() const override;
+    bool isMouseFocusable() const override;
+    bool isKeyboardFocusable(KeyboardEvent*) const override;
+    void updateFocusAppearance(SelectionRestorationMode, SelectionRevealMode) override;
 
-    virtual void accessKeyAction(bool sendMouseEvents) override;
+    void accessKeyAction(bool sendMouseEvents) override;
 
-    virtual bool shouldUseInputMethod() override;
-    virtual bool matchesReadWritePseudoClass() const override;
+    bool shouldUseInputMethod() override;
+    bool matchesReadWritePseudoClass() const override;
 
     bool valueMissing(const String& value) const { return isRequiredFormControl() && !isDisabledOrReadOnly() && value.isEmpty(); }
     bool tooLong(const String&, NeedsToCheckDirtyFlag) const;
diff --git a/Source/WebCore/html/HTMLTextFormControlElement.h b/Source/WebCore/html/HTMLTextFormControlElement.h
index ba87d7e..e7750fb 100644
--- a/Source/WebCore/html/HTMLTextFormControlElement.h
+++ b/Source/WebCore/html/HTMLTextFormControlElement.h
@@ -50,7 +50,7 @@
 
     void setMaxLengthForBindings(int, ExceptionCode&);
 
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
 
     // The derived class should return true if placeholder processing is needed.
     bool isPlaceholderVisible() const { return m_isPlaceholderVisible; }
@@ -75,7 +75,7 @@
     PassRefPtr<Range> selection() const;
     String selectedText() const;
 
-    virtual void dispatchFormControlChangeEvent() override final;
+    void dispatchFormControlChangeEvent() override final;
 
     virtual String value() const = 0;
 
@@ -100,10 +100,10 @@
     bool isPlaceholderEmpty() const;
     virtual void updatePlaceholderText() = 0;
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
 
-    virtual void disabledStateChanged() override;
-    virtual void readOnlyAttributeChanged() override;
+    void disabledStateChanged() override;
+    void readOnlyAttributeChanged() override;
     void updateInnerTextElementEditability();
 
     void cacheSelection(int start, int end, TextFieldSelectionDirection direction)
@@ -131,9 +131,9 @@
     int computeSelectionEnd() const;
     TextFieldSelectionDirection computeSelectionDirection() const;
 
-    virtual void dispatchFocusEvent(RefPtr<Element>&& oldFocusedElement, FocusDirection) override final;
-    virtual void dispatchBlurEvent(RefPtr<Element>&& newFocusedElement) override final;
-    virtual bool childShouldCreateRenderer(const Node&) const override;
+    void dispatchFocusEvent(RefPtr<Element>&& oldFocusedElement, FocusDirection) override final;
+    void dispatchBlurEvent(RefPtr<Element>&& newFocusedElement) override final;
+    bool childShouldCreateRenderer(const Node&) const override;
 
     unsigned indexForPosition(const Position&) const;
 
diff --git a/Source/WebCore/html/HTMLTitleElement.h b/Source/WebCore/html/HTMLTitleElement.h
index 6a9283f..0177a92 100644
--- a/Source/WebCore/html/HTMLTitleElement.h
+++ b/Source/WebCore/html/HTMLTitleElement.h
@@ -39,9 +39,9 @@
 private:
     HTMLTitleElement(const QualifiedName&, Document&);
 
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
-    virtual void removedFrom(ContainerNode&) override;
-    virtual void childrenChanged(const ChildChange&) override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    void removedFrom(ContainerNode&) override;
+    void childrenChanged(const ChildChange&) override;
 
     StringWithDirection computedTextWithDirection();
 
diff --git a/Source/WebCore/html/HTMLTrackElement.h b/Source/WebCore/html/HTMLTrackElement.h
index 0546ade..6d152b4 100644
--- a/Source/WebCore/html/HTMLTrackElement.h
+++ b/Source/WebCore/html/HTMLTrackElement.h
@@ -68,24 +68,24 @@
     HTMLTrackElement(const QualifiedName&, Document&);
     virtual ~HTMLTrackElement();
 
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
 
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
-    virtual void removedFrom(ContainerNode&) override;
+    InsertionNotificationRequest insertedInto(ContainerNode&) override;
+    void removedFrom(ContainerNode&) override;
 
-    virtual bool isURLAttribute(const Attribute&) const override;
+    bool isURLAttribute(const Attribute&) const override;
 
     void loadTimerFired();
 
     HTMLMediaElement* mediaElement() const;
 
     // TextTrackClient
-    virtual void textTrackModeChanged(TextTrack*) override;
-    virtual void textTrackKindChanged(TextTrack*) override;
-    virtual void textTrackAddCues(TextTrack*, const TextTrackCueList*) override;
-    virtual void textTrackRemoveCues(TextTrack*, const TextTrackCueList*) override;
-    virtual void textTrackAddCue(TextTrack*, PassRefPtr<TextTrackCue>) override;
-    virtual void textTrackRemoveCue(TextTrack*, PassRefPtr<TextTrackCue>) override;
+    void textTrackModeChanged(TextTrack*) override;
+    void textTrackKindChanged(TextTrack*) override;
+    void textTrackAddCues(TextTrack*, const TextTrackCueList*) override;
+    void textTrackRemoveCues(TextTrack*, const TextTrackCueList*) override;
+    void textTrackAddCue(TextTrack*, PassRefPtr<TextTrackCue>) override;
+    void textTrackRemoveCue(TextTrack*, PassRefPtr<TextTrackCue>) override;
 
     LoadableTextTrack& ensureTrack();
     bool canLoadURL(const URL&);
diff --git a/Source/WebCore/html/HTMLUListElement.h b/Source/WebCore/html/HTMLUListElement.h
index 558f14b..06995a9 100644
--- a/Source/WebCore/html/HTMLUListElement.h
+++ b/Source/WebCore/html/HTMLUListElement.h
@@ -35,8 +35,8 @@
 private:
     HTMLUListElement(const QualifiedName&, Document&);
 
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
 };
 
 } //namespace
diff --git a/Source/WebCore/html/HTMLUnknownElement.h b/Source/WebCore/html/HTMLUnknownElement.h
index 31e1138..c6db391 100644
--- a/Source/WebCore/html/HTMLUnknownElement.h
+++ b/Source/WebCore/html/HTMLUnknownElement.h
@@ -48,12 +48,12 @@
     }
 
 #if ENABLE(METER_ELEMENT)
-    virtual bool canHaveUserAgentShadowRoot() const override final { return false; }
+    bool canHaveUserAgentShadowRoot() const override final { return false; }
 #else
-    virtual bool canHaveUserAgentShadowRoot() const override final { return localName() == "meter"; }
+    bool canHaveUserAgentShadowRoot() const override final { return localName() == "meter"; }
 #endif
 
-    virtual bool isHTMLUnknownElement() const override { return true; }
+    bool isHTMLUnknownElement() const override { return true; }
 };
 
 } // namespace
diff --git a/Source/WebCore/html/HTMLVideoElement.h b/Source/WebCore/html/HTMLVideoElement.h
index 2960ddd..ad948f9 100644
--- a/Source/WebCore/html/HTMLVideoElement.h
+++ b/Source/WebCore/html/HTMLVideoElement.h
@@ -48,7 +48,7 @@
     bool webkitSupportsFullscreen();
     bool webkitDisplayingFullscreen();
 
-    virtual void ancestorWillEnterFullscreen() override;
+    void ancestorWillEnterFullscreen() override;
     
     // FIXME: Maintain "FullScreen" capitalization scheme for backwards compatibility.
     // https://bugs.webkit.org/show_bug.cgi?id=36081
@@ -78,14 +78,14 @@
     bool shouldDisplayPosterImage() const { return displayMode() == Poster || displayMode() == PosterWaitingForVideo; }
 
     URL posterImageURL() const;
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 
 #if ENABLE(VIDEO_PRESENTATION_MODE)
     bool webkitSupportsPresentationMode(const String&) const;
     void webkitSetPresentationMode(const String&);
     String webkitPresentationMode() const;
     void setFullscreenMode(VideoFullscreenMode);
-    virtual void fullscreenModeChanged(VideoFullscreenMode) override;
+    void fullscreenModeChanged(VideoFullscreenMode) override;
 #endif
 
 #if PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE)
@@ -95,25 +95,25 @@
 private:
     HTMLVideoElement(const QualifiedName&, Document&, bool);
 
-    virtual void scheduleResizeEvent() override;
-    virtual void scheduleResizeEventIfSizeChanged() override;
-    virtual bool rendererIsNeeded(const RenderStyle&) override;
-    virtual void didAttachRenderers() override;
-    virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
-    virtual bool isPresentationAttribute(const QualifiedName&) const override;
-    virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
-    virtual bool isVideo() const override { return true; }
-    virtual bool hasVideo() const override { return player() && player()->hasVideo(); }
-    virtual bool supportsFullscreen(HTMLMediaElementEnums::VideoFullscreenMode) const override;
-    virtual bool isURLAttribute(const Attribute&) const override;
-    virtual const AtomicString& imageSourceURL() const override;
+    void scheduleResizeEvent() override;
+    void scheduleResizeEventIfSizeChanged() override;
+    bool rendererIsNeeded(const RenderStyle&) override;
+    void didAttachRenderers() override;
+    void parseAttribute(const QualifiedName&, const AtomicString&) override;
+    bool isPresentationAttribute(const QualifiedName&) const override;
+    void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
+    bool isVideo() const override { return true; }
+    bool hasVideo() const override { return player() && player()->hasVideo(); }
+    bool supportsFullscreen(HTMLMediaElementEnums::VideoFullscreenMode) const override;
+    bool isURLAttribute(const Attribute&) const override;
+    const AtomicString& imageSourceURL() const override;
 
     bool hasAvailableVideoFrame() const;
-    virtual void updateDisplayState() override;
-    virtual void didMoveToNewDocument(Document* oldDocument) override;
-    virtual void setDisplayMode(DisplayMode) override;
+    void updateDisplayState() override;
+    void didMoveToNewDocument(Document* oldDocument) override;
+    void setDisplayMode(DisplayMode) override;
 
-    virtual PlatformMediaSession::MediaType presentationType() const override { return PlatformMediaSession::Video; }
+    PlatformMediaSession::MediaType presentationType() const override { return PlatformMediaSession::Video; }
 
     std::unique_ptr<HTMLImageLoader> m_imageLoader;
 
diff --git a/Source/WebCore/html/HTMLWBRElement.h b/Source/WebCore/html/HTMLWBRElement.h
index 7047516..6ccf3c8 100644
--- a/Source/WebCore/html/HTMLWBRElement.h
+++ b/Source/WebCore/html/HTMLWBRElement.h
@@ -37,7 +37,7 @@
 private:
     HTMLWBRElement(const QualifiedName&, Document&);
 
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/HiddenInputType.h b/Source/WebCore/html/HiddenInputType.h
index ee6d319..aec07eb 100644
--- a/Source/WebCore/html/HiddenInputType.h
+++ b/Source/WebCore/html/HiddenInputType.h
@@ -40,19 +40,19 @@
     explicit HiddenInputType(HTMLInputElement& element) : InputType(element) { }
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual FormControlState saveFormControlState() const override;
-    virtual void restoreFormControlState(const FormControlState&) override;
-    virtual bool supportsValidation() const override;
-    virtual RenderPtr<RenderElement> createInputRenderer(Ref<RenderStyle>&&) override;
-    virtual void accessKeyAction(bool sendMouseEvents) override;
-    virtual bool rendererIsNeeded() override;
-    virtual bool storesValueSeparateFromAttribute() override;
-    virtual bool isHiddenType() const override;
-    virtual bool supportLabels() const override { return false; }
-    virtual bool shouldRespectHeightAndWidthAttributes() override;
-    virtual void setValue(const String&, bool, TextFieldEventBehavior) override;
-    virtual bool appendFormData(FormDataList&, bool) const override;
+    const AtomicString& formControlType() const override;
+    FormControlState saveFormControlState() const override;
+    void restoreFormControlState(const FormControlState&) override;
+    bool supportsValidation() const override;
+    RenderPtr<RenderElement> createInputRenderer(Ref<RenderStyle>&&) override;
+    void accessKeyAction(bool sendMouseEvents) override;
+    bool rendererIsNeeded() override;
+    bool storesValueSeparateFromAttribute() override;
+    bool isHiddenType() const override;
+    bool supportLabels() const override { return false; }
+    bool shouldRespectHeightAndWidthAttributes() override;
+    void setValue(const String&, bool, TextFieldEventBehavior) override;
+    bool appendFormData(FormDataList&, bool) const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/ImageDocument.cpp b/Source/WebCore/html/ImageDocument.cpp
index f96e4c0..bf3c148 100644
--- a/Source/WebCore/html/ImageDocument.cpp
+++ b/Source/WebCore/html/ImageDocument.cpp
@@ -64,8 +64,8 @@
     {
     }
 
-    virtual bool operator==(const EventListener&) override;
-    virtual void handleEvent(ScriptExecutionContext*, Event*) override;
+    bool operator==(const EventListener&) override;
+    void handleEvent(ScriptExecutionContext*, Event*) override;
 
     ImageDocument& m_document;
 };
@@ -86,8 +86,8 @@
 
     ImageDocument& document() const;
 
-    virtual void appendBytes(DocumentWriter&, const char*, size_t) override;
-    virtual void finish() override;
+    void appendBytes(DocumentWriter&, const char*, size_t) override;
+    void finish() override;
 };
 
 class ImageDocumentElement final : public HTMLImageElement {
@@ -102,7 +102,7 @@
     }
 
     virtual ~ImageDocumentElement();
-    virtual void didMoveToNewDocument(Document* oldDocument) override;
+    void didMoveToNewDocument(Document* oldDocument) override;
 
     ImageDocument* m_imageDocument;
 };
diff --git a/Source/WebCore/html/ImageDocument.h b/Source/WebCore/html/ImageDocument.h
index 5e7e4bd..6ec6834 100644
--- a/Source/WebCore/html/ImageDocument.h
+++ b/Source/WebCore/html/ImageDocument.h
@@ -54,7 +54,7 @@
 private:
     ImageDocument(Frame&, const URL&);
 
-    virtual Ref<DocumentParser> createParser() override;
+    Ref<DocumentParser> createParser() override;
 
     LayoutSize imageSize();
 
diff --git a/Source/WebCore/html/ImageInputType.h b/Source/WebCore/html/ImageInputType.h
index 7236d31..79c63fa 100644
--- a/Source/WebCore/html/ImageInputType.h
+++ b/Source/WebCore/html/ImageInputType.h
@@ -43,22 +43,22 @@
     explicit ImageInputType(HTMLInputElement&);
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual bool isFormDataAppendable() const override;
-    virtual bool appendFormData(FormDataList&, bool) const override;
-    virtual bool supportsValidation() const override;
-    virtual RenderPtr<RenderElement> createInputRenderer(Ref<RenderStyle>&&) override;
-    virtual void handleDOMActivateEvent(Event*) override;
-    virtual void altAttributeChanged() override;
-    virtual void srcAttributeChanged() override;
-    virtual void attach() override;
-    virtual bool shouldRespectAlignAttribute() override;
-    virtual bool canBeSuccessfulSubmitButton() override;
-    virtual bool isImageButton() const override;
-    virtual bool isEnumeratable() override;
-    virtual bool shouldRespectHeightAndWidthAttributes() override;
-    virtual unsigned height() const override;
-    virtual unsigned width() const override;
+    const AtomicString& formControlType() const override;
+    bool isFormDataAppendable() const override;
+    bool appendFormData(FormDataList&, bool) const override;
+    bool supportsValidation() const override;
+    RenderPtr<RenderElement> createInputRenderer(Ref<RenderStyle>&&) override;
+    void handleDOMActivateEvent(Event*) override;
+    void altAttributeChanged() override;
+    void srcAttributeChanged() override;
+    void attach() override;
+    bool shouldRespectAlignAttribute() override;
+    bool canBeSuccessfulSubmitButton() override;
+    bool isImageButton() const override;
+    bool isEnumeratable() override;
+    bool shouldRespectHeightAndWidthAttributes() override;
+    unsigned height() const override;
+    unsigned width() const override;
 
     IntPoint m_clickLocation; // Valid only during HTMLFormElement::prepareForSubmission().
 };
diff --git a/Source/WebCore/html/LabelableElement.h b/Source/WebCore/html/LabelableElement.h
index c2a631a..d6bb969 100644
--- a/Source/WebCore/html/LabelableElement.h
+++ b/Source/WebCore/html/LabelableElement.h
@@ -47,7 +47,7 @@
     LabelableElement(const QualifiedName& tagName, Document&);
 
 private:
-    virtual bool isLabelable() const override final { return true; }
+    bool isLabelable() const override final { return true; }
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/LabelsNodeList.h b/Source/WebCore/html/LabelsNodeList.h
index a119d3b..91b28a1 100644
--- a/Source/WebCore/html/LabelsNodeList.h
+++ b/Source/WebCore/html/LabelsNodeList.h
@@ -38,8 +38,8 @@
     }
     ~LabelsNodeList();
 
-    virtual bool elementMatches(Element&) const override;
-    virtual bool isRootedAtDocument() const override { return true; }
+    bool elementMatches(Element&) const override;
+    bool isRootedAtDocument() const override { return true; }
 
 private:
     explicit LabelsNodeList(LabelableElement& forNode);
diff --git a/Source/WebCore/html/MediaController.h b/Source/WebCore/html/MediaController.h
index 4561fad..5e4aab0 100644
--- a/Source/WebCore/html/MediaController.h
+++ b/Source/WebCore/html/MediaController.h
@@ -54,60 +54,60 @@
 
     const String& mediaGroup() const { return m_mediaGroup; }
     
-    virtual PassRefPtr<TimeRanges> buffered() const override;
-    virtual PassRefPtr<TimeRanges> seekable() const override;
-    virtual PassRefPtr<TimeRanges> played() override;
+    PassRefPtr<TimeRanges> buffered() const override;
+    PassRefPtr<TimeRanges> seekable() const override;
+    PassRefPtr<TimeRanges> played() override;
     
-    virtual double duration() const override;
-    virtual double currentTime() const override;
-    virtual void setCurrentTime(double) override;
+    double duration() const override;
+    double currentTime() const override;
+    void setCurrentTime(double) override;
     
-    virtual bool paused() const override { return m_paused; }
-    virtual void play() override;
-    virtual void pause() override;
+    bool paused() const override { return m_paused; }
+    void play() override;
+    void pause() override;
     void unpause();
     
-    virtual double defaultPlaybackRate() const override { return m_defaultPlaybackRate; }
-    virtual void setDefaultPlaybackRate(double) override;
+    double defaultPlaybackRate() const override { return m_defaultPlaybackRate; }
+    void setDefaultPlaybackRate(double) override;
     
-    virtual double playbackRate() const override;
-    virtual void setPlaybackRate(double) override;
+    double playbackRate() const override;
+    void setPlaybackRate(double) override;
     
-    virtual double volume() const override { return m_volume; }
-    virtual void setVolume(double, ExceptionCode&) override;
+    double volume() const override { return m_volume; }
+    void setVolume(double, ExceptionCode&) override;
     
-    virtual bool muted() const override { return m_muted; }
-    virtual void setMuted(bool) override;
+    bool muted() const override { return m_muted; }
+    void setMuted(bool) override;
     
-    virtual ReadyState readyState() const override { return m_readyState; }
+    ReadyState readyState() const override { return m_readyState; }
 
     enum PlaybackState { WAITING, PLAYING, ENDED };
     const AtomicString& playbackState() const;
 
-    virtual bool supportsFullscreen(HTMLMediaElementEnums::VideoFullscreenMode) const override { return false; }
-    virtual bool isFullscreen() const override { return false; }
-    virtual void enterFullscreen() override { }
+    bool supportsFullscreen(HTMLMediaElementEnums::VideoFullscreenMode) const override { return false; }
+    bool isFullscreen() const override { return false; }
+    void enterFullscreen() override { }
 
-    virtual bool hasAudio() const override;
-    virtual bool hasVideo() const override;
-    virtual bool hasClosedCaptions() const override;
-    virtual void setClosedCaptionsVisible(bool) override;
-    virtual bool closedCaptionsVisible() const override { return m_closedCaptionsVisible; }
+    bool hasAudio() const override;
+    bool hasVideo() const override;
+    bool hasClosedCaptions() const override;
+    void setClosedCaptionsVisible(bool) override;
+    bool closedCaptionsVisible() const override { return m_closedCaptionsVisible; }
     
-    virtual bool supportsScanning() const override;
+    bool supportsScanning() const override;
     
-    virtual void beginScrubbing() override;
-    virtual void endScrubbing() override;
-    virtual void beginScanning(ScanDirection) override;
-    virtual void endScanning() override;
+    void beginScrubbing() override;
+    void endScrubbing() override;
+    void beginScanning(ScanDirection) override;
+    void endScanning() override;
     
-    virtual bool canPlay() const override;
+    bool canPlay() const override;
     
-    virtual bool isLiveStream() const override;
+    bool isLiveStream() const override;
     
-    virtual bool hasCurrentSrc() const override;
+    bool hasCurrentSrc() const override;
     
-    virtual void returnToRealtime() override;
+    void returnToRealtime() override;
 
     bool isBlocked() const;
 
@@ -130,10 +130,10 @@
     void startTimeupdateTimer();
 
     // EventTarget
-    virtual void refEventTarget() override { ref(); }
-    virtual void derefEventTarget() override { deref(); }
-    virtual EventTargetInterface eventTargetInterface() const override { return MediaControllerEventTargetInterfaceType; }
-    virtual ScriptExecutionContext* scriptExecutionContext() const override { return &m_scriptExecutionContext; };
+    void refEventTarget() override { ref(); }
+    void derefEventTarget() override { deref(); }
+    EventTargetInterface eventTargetInterface() const override { return MediaControllerEventTargetInterfaceType; }
+    ScriptExecutionContext* scriptExecutionContext() const override { return &m_scriptExecutionContext; };
 
     friend class HTMLMediaElement;
     friend class MediaControllerEventListener;
diff --git a/Source/WebCore/html/MediaDocument.cpp b/Source/WebCore/html/MediaDocument.cpp
index e69c53e..8bb1628 100644
--- a/Source/WebCore/html/MediaDocument.cpp
+++ b/Source/WebCore/html/MediaDocument.cpp
@@ -68,7 +68,7 @@
         m_outgoingReferrer = document.outgoingReferrer();
     }
 
-    virtual void appendBytes(DocumentWriter&, const char*, size_t) override;
+    void appendBytes(DocumentWriter&, const char*, size_t) override;
 
     void createDocumentStructure();
 
diff --git a/Source/WebCore/html/MediaDocument.h b/Source/WebCore/html/MediaDocument.h
index ba69187..c6d7de1 100644
--- a/Source/WebCore/html/MediaDocument.h
+++ b/Source/WebCore/html/MediaDocument.h
@@ -47,9 +47,9 @@
 private:
     MediaDocument(Frame*, const URL&);
 
-    virtual Ref<DocumentParser> createParser() override;
+    Ref<DocumentParser> createParser() override;
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 
     void replaceMediaElementTimerFired();
 
diff --git a/Source/WebCore/html/MediaElementSession.h b/Source/WebCore/html/MediaElementSession.h
index 56e4f2e..28ce4b4 100644
--- a/Source/WebCore/html/MediaElementSession.h
+++ b/Source/WebCore/html/MediaElementSession.h
@@ -62,8 +62,8 @@
 
     void setHasPlaybackTargetAvailabilityListeners(const HTMLMediaElement&, bool);
 
-    virtual bool canPlayToWirelessPlaybackTarget() const override;
-    virtual bool isPlayingToWirelessPlaybackTarget() const override;
+    bool canPlayToWirelessPlaybackTarget() const override;
+    bool isPlayingToWirelessPlaybackTarget() const override;
 
     void mediaStateDidChange(const HTMLMediaElement&, MediaProducer::MediaStateFlags);
 #endif
@@ -110,10 +110,10 @@
     void targetAvailabilityChangedTimerFired();
 
     // MediaPlaybackTargetClient
-    virtual void setPlaybackTarget(Ref<MediaPlaybackTarget>&&) override;
-    virtual void externalOutputDeviceAvailableDidChange(bool) override;
-    virtual void setShouldPlayToPlaybackTarget(bool) override;
-    virtual void customPlaybackActionSelected() override;
+    void setPlaybackTarget(Ref<MediaPlaybackTarget>&&) override;
+    void externalOutputDeviceAvailableDidChange(bool) override;
+    void setShouldPlayToPlaybackTarget(bool) override;
+    void customPlaybackActionSelected() override;
 #endif
 #if PLATFORM(IOS)
     bool requiresPlaybackTargetRouteMonitoring() const override;
diff --git a/Source/WebCore/html/MediaKeyEvent.h b/Source/WebCore/html/MediaKeyEvent.h
index 37a5672..b16433f 100644
--- a/Source/WebCore/html/MediaKeyEvent.h
+++ b/Source/WebCore/html/MediaKeyEvent.h
@@ -57,7 +57,7 @@
         return adoptRef(*new MediaKeyEvent(type, initializer));
     }
 
-    virtual EventInterface eventInterface() const override;
+    EventInterface eventInterface() const override;
 
     String keySystem() const { return m_keySystem; }
     String sessionId() const { return m_sessionId; }
diff --git a/Source/WebCore/html/MonthInputType.h b/Source/WebCore/html/MonthInputType.h
index a4e25ac..0b81a1b 100644
--- a/Source/WebCore/html/MonthInputType.h
+++ b/Source/WebCore/html/MonthInputType.h
@@ -41,16 +41,16 @@
     explicit MonthInputType(HTMLInputElement& element) : BaseChooserOnlyDateAndTimeInputType(element) { }
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual DateComponents::Type dateType() const override;
-    virtual double valueAsDate() const override;
-    virtual String serializeWithMilliseconds(double) const override;
-    virtual Decimal parseToNumber(const String&, const Decimal&) const override;
-    virtual Decimal defaultValueForStepUp() const override;
-    virtual StepRange createStepRange(AnyStepHandling) const override;
-    virtual bool parseToDateComponentsInternal(const UChar*, unsigned length, DateComponents*) const override;
-    virtual bool setMillisecondToDateComponents(double, DateComponents*) const override;
-    virtual bool isMonthField() const override;
+    const AtomicString& formControlType() const override;
+    DateComponents::Type dateType() const override;
+    double valueAsDate() const override;
+    String serializeWithMilliseconds(double) const override;
+    Decimal parseToNumber(const String&, const Decimal&) const override;
+    Decimal defaultValueForStepUp() const override;
+    StepRange createStepRange(AnyStepHandling) const override;
+    bool parseToDateComponentsInternal(const UChar*, unsigned length, DateComponents*) const override;
+    bool setMillisecondToDateComponents(double, DateComponents*) const override;
+    bool isMonthField() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/NumberInputType.h b/Source/WebCore/html/NumberInputType.h
index 9de9fb5..d9c4950 100644
--- a/Source/WebCore/html/NumberInputType.h
+++ b/Source/WebCore/html/NumberInputType.h
@@ -40,30 +40,30 @@
     explicit NumberInputType(HTMLInputElement& element) : TextFieldInputType(element) { }
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual void setValue(const String&, bool valueChanged, TextFieldEventBehavior) override;
-    virtual double valueAsDouble() const override;
-    virtual void setValueAsDouble(double, TextFieldEventBehavior, ExceptionCode&) const override;
-    virtual void setValueAsDecimal(const Decimal&, TextFieldEventBehavior, ExceptionCode&) const override;
-    virtual bool typeMismatchFor(const String&) const override;
-    virtual bool typeMismatch() const override;
-    virtual bool sizeShouldIncludeDecoration(int defaultSize, int& preferredSize) const override;
-    virtual float decorationWidth() const override;
-    virtual bool isSteppable() const override;
-    virtual StepRange createStepRange(AnyStepHandling) const override;
-    virtual void handleKeydownEvent(KeyboardEvent*) override;
-    virtual Decimal parseToNumber(const String&, const Decimal&) const override;
-    virtual String serialize(const Decimal&) const override;
-    virtual String localizeValue(const String&) const override;
-    virtual String visibleValue() const override;
-    virtual String convertFromVisibleValue(const String&) const override;
-    virtual String sanitizeValue(const String&) const override;
-    virtual bool hasBadInput() const override;
-    virtual String badInputText() const override;
-    virtual bool supportsPlaceholder() const override;
-    virtual bool isNumberField() const override;
-    virtual void minOrMaxAttributeChanged() override;
-    virtual void stepAttributeChanged() override;
+    const AtomicString& formControlType() const override;
+    void setValue(const String&, bool valueChanged, TextFieldEventBehavior) override;
+    double valueAsDouble() const override;
+    void setValueAsDouble(double, TextFieldEventBehavior, ExceptionCode&) const override;
+    void setValueAsDecimal(const Decimal&, TextFieldEventBehavior, ExceptionCode&) const override;
+    bool typeMismatchFor(const String&) const override;
+    bool typeMismatch() const override;
+    bool sizeShouldIncludeDecoration(int defaultSize, int& preferredSize) const override;
+    float decorationWidth() const override;
+    bool isSteppable() const override;
+    StepRange createStepRange(AnyStepHandling) const override;
+    void handleKeydownEvent(KeyboardEvent*) override;
+    Decimal parseToNumber(const String&, const Decimal&) const override;
+    String serialize(const Decimal&) const override;
+    String localizeValue(const String&) const override;
+    String visibleValue() const override;
+    String convertFromVisibleValue(const String&) const override;
+    String sanitizeValue(const String&) const override;
+    bool hasBadInput() const override;
+    String badInputText() const override;
+    bool supportsPlaceholder() const override;
+    bool isNumberField() const override;
+    void minOrMaxAttributeChanged() override;
+    void stepAttributeChanged() override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/PasswordInputType.h b/Source/WebCore/html/PasswordInputType.h
index f8046db..48f6736 100644
--- a/Source/WebCore/html/PasswordInputType.h
+++ b/Source/WebCore/html/PasswordInputType.h
@@ -40,14 +40,14 @@
     explicit PasswordInputType(HTMLInputElement& element) : BaseTextInputType(element) { }
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual bool shouldSaveAndRestoreFormControlState() const override;
-    virtual FormControlState saveFormControlState() const override;
-    virtual void restoreFormControlState(const FormControlState&) override;
-    virtual bool shouldUseInputMethod() const override;
-    virtual bool shouldResetOnDocumentActivation() override;
-    virtual bool shouldRespectListAttribute() override;
-    virtual bool isPasswordField() const override;
+    const AtomicString& formControlType() const override;
+    bool shouldSaveAndRestoreFormControlState() const override;
+    FormControlState saveFormControlState() const override;
+    void restoreFormControlState(const FormControlState&) override;
+    bool shouldUseInputMethod() const override;
+    bool shouldResetOnDocumentActivation() override;
+    bool shouldRespectListAttribute() override;
+    bool isPasswordField() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/PluginDocument.cpp b/Source/WebCore/html/PluginDocument.cpp
index e783a9d..1807d9e 100644
--- a/Source/WebCore/html/PluginDocument.cpp
+++ b/Source/WebCore/html/PluginDocument.cpp
@@ -58,7 +58,7 @@
     {
     }
 
-    virtual void appendBytes(DocumentWriter&, const char*, size_t) override;
+    void appendBytes(DocumentWriter&, const char*, size_t) override;
 
     void createDocumentStructure();
 
diff --git a/Source/WebCore/html/PluginDocument.h b/Source/WebCore/html/PluginDocument.h
index ae2379d..bef6f97 100644
--- a/Source/WebCore/html/PluginDocument.h
+++ b/Source/WebCore/html/PluginDocument.h
@@ -53,7 +53,7 @@
 private:
     PluginDocument(Frame*, const URL&);
 
-    virtual Ref<DocumentParser> createParser() override;
+    Ref<DocumentParser> createParser() override;
 
     void setShouldLoadPluginManually(bool loadManually) { m_shouldLoadPluginManually = loadManually; }
 
diff --git a/Source/WebCore/html/RadioInputType.h b/Source/WebCore/html/RadioInputType.h
index 796a2f0..be3f7c1 100644
--- a/Source/WebCore/html/RadioInputType.h
+++ b/Source/WebCore/html/RadioInputType.h
@@ -40,18 +40,18 @@
     explicit RadioInputType(HTMLInputElement& element) : BaseCheckableInputType(element) { }
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual bool valueMissing(const String&) const override;
-    virtual String valueMissingText() const override;
-    virtual void handleClickEvent(MouseEvent*) override;
-    virtual void handleKeydownEvent(KeyboardEvent*) override;
-    virtual void handleKeyupEvent(KeyboardEvent*) override;
-    virtual bool isKeyboardFocusable(KeyboardEvent*) const override;
-    virtual bool shouldSendChangeEventAfterCheckedChanged() override;
-    virtual void willDispatchClick(InputElementClickState&) override;
-    virtual void didDispatchClick(Event*, const InputElementClickState&) override;
-    virtual bool isRadioButton() const override;
-    virtual bool supportsIndeterminateAppearance() const override;
+    const AtomicString& formControlType() const override;
+    bool valueMissing(const String&) const override;
+    String valueMissingText() const override;
+    void handleClickEvent(MouseEvent*) override;
+    void handleKeydownEvent(KeyboardEvent*) override;
+    void handleKeyupEvent(KeyboardEvent*) override;
+    bool isKeyboardFocusable(KeyboardEvent*) const override;
+    bool shouldSendChangeEventAfterCheckedChanged() override;
+    void willDispatchClick(InputElementClickState&) override;
+    void didDispatchClick(Event*, const InputElementClickState&) override;
+    bool isRadioButton() const override;
+    bool supportsIndeterminateAppearance() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/RadioNodeList.h b/Source/WebCore/html/RadioNodeList.h
index e9070f0..47a507a 100644
--- a/Source/WebCore/html/RadioNodeList.h
+++ b/Source/WebCore/html/RadioNodeList.h
@@ -48,8 +48,8 @@
     String value() const;
     void setValue(const String&);
 
-    virtual bool elementMatches(Element&) const override;
-    virtual bool isRootedAtDocument() const override { return m_isRootedAtDocument; }
+    bool elementMatches(Element&) const override;
+    bool isRootedAtDocument() const override { return m_isRootedAtDocument; }
 
 private:
     RadioNodeList(ContainerNode&, const AtomicString& name);
diff --git a/Source/WebCore/html/RangeInputType.h b/Source/WebCore/html/RangeInputType.h
index d03c719..da18d1f 100644
--- a/Source/WebCore/html/RangeInputType.h
+++ b/Source/WebCore/html/RangeInputType.h
@@ -42,50 +42,50 @@
     explicit RangeInputType(HTMLInputElement&);
 
 private:
-    virtual bool isRangeControl() const override;
-    virtual const AtomicString& formControlType() const override;
-    virtual double valueAsDouble() const override;
-    virtual void setValueAsDecimal(const Decimal&, TextFieldEventBehavior, ExceptionCode&) const override;
-    virtual bool typeMismatchFor(const String&) const override;
-    virtual bool supportsRequired() const override;
-    virtual StepRange createStepRange(AnyStepHandling) const override;
-    virtual bool isSteppable() const override;
+    bool isRangeControl() const override;
+    const AtomicString& formControlType() const override;
+    double valueAsDouble() const override;
+    void setValueAsDecimal(const Decimal&, TextFieldEventBehavior, ExceptionCode&) const override;
+    bool typeMismatchFor(const String&) const override;
+    bool supportsRequired() const override;
+    StepRange createStepRange(AnyStepHandling) const override;
+    bool isSteppable() const override;
 #if !PLATFORM(IOS)
-    virtual void handleMouseDownEvent(MouseEvent*) override;
+    void handleMouseDownEvent(MouseEvent*) override;
 #endif
-    virtual void handleKeydownEvent(KeyboardEvent*) override;
-    virtual RenderPtr<RenderElement> createInputRenderer(Ref<RenderStyle>&&) override;
-    virtual void createShadowSubtree() override;
-    virtual Decimal parseToNumber(const String&, const Decimal&) const override;
-    virtual String serialize(const Decimal&) const override;
-    virtual void accessKeyAction(bool sendMouseEvents) override;
-    virtual void minOrMaxAttributeChanged() override;
-    virtual void setValue(const String&, bool valueChanged, TextFieldEventBehavior) override;
-    virtual String fallbackValue() const override;
-    virtual String sanitizeValue(const String& proposedValue) const override;
-    virtual bool shouldRespectListAttribute() override;
-    virtual HTMLElement* sliderThumbElement() const override;
-    virtual HTMLElement* sliderTrackElement() const override;
+    void handleKeydownEvent(KeyboardEvent*) override;
+    RenderPtr<RenderElement> createInputRenderer(Ref<RenderStyle>&&) override;
+    void createShadowSubtree() override;
+    Decimal parseToNumber(const String&, const Decimal&) const override;
+    String serialize(const Decimal&) const override;
+    void accessKeyAction(bool sendMouseEvents) override;
+    void minOrMaxAttributeChanged() override;
+    void setValue(const String&, bool valueChanged, TextFieldEventBehavior) override;
+    String fallbackValue() const override;
+    String sanitizeValue(const String& proposedValue) const override;
+    bool shouldRespectListAttribute() override;
+    HTMLElement* sliderThumbElement() const override;
+    HTMLElement* sliderTrackElement() const override;
 
     SliderThumbElement& typedSliderThumbElement() const;
 
 #if ENABLE(DATALIST_ELEMENT)
-    virtual void listAttributeTargetChanged() override;
+    void listAttributeTargetChanged() override;
     void updateTickMarkValues();
-    virtual Optional<Decimal> findClosestTickMarkValue(const Decimal&) override;
+    Optional<Decimal> findClosestTickMarkValue(const Decimal&) override;
 
     bool m_tickMarkValuesDirty;
     Vector<Decimal> m_tickMarkValues;
 #endif
 
 #if ENABLE(TOUCH_EVENTS)
-    virtual void handleTouchEvent(TouchEvent*) override;
+    void handleTouchEvent(TouchEvent*) override;
 
 #if PLATFORM(IOS)
-    virtual void disabledAttributeChanged() override;
+    void disabledAttributeChanged() override;
 #else
 #if ENABLE(TOUCH_SLIDER)
-    virtual bool hasTouchEventHandler() const override;
+    bool hasTouchEventHandler() const override;
 #endif
 #endif // PLATFORM(IOS)
 #endif // ENABLE(TOUCH_EVENTS)
diff --git a/Source/WebCore/html/ResetInputType.h b/Source/WebCore/html/ResetInputType.h
index 05e3539..eb01f5b 100644
--- a/Source/WebCore/html/ResetInputType.h
+++ b/Source/WebCore/html/ResetInputType.h
@@ -40,11 +40,11 @@
     explicit ResetInputType(HTMLInputElement& element) : BaseButtonInputType(element) { }
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual bool supportsValidation() const override;
-    virtual void handleDOMActivateEvent(Event*) override;
-    virtual String defaultValue() const override;
-    virtual bool isTextButton() const override;
+    const AtomicString& formControlType() const override;
+    bool supportsValidation() const override;
+    void handleDOMActivateEvent(Event*) override;
+    String defaultValue() const override;
+    bool isTextButton() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/RubyElement.h b/Source/WebCore/html/RubyElement.h
index d5b02ed..3714f4c 100644
--- a/Source/WebCore/html/RubyElement.h
+++ b/Source/WebCore/html/RubyElement.h
@@ -36,7 +36,7 @@
 
 private:
     RubyElement(const QualifiedName&, Document&);
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 };
 
 }
diff --git a/Source/WebCore/html/RubyTextElement.h b/Source/WebCore/html/RubyTextElement.h
index bfb6bc5..120a40b 100644
--- a/Source/WebCore/html/RubyTextElement.h
+++ b/Source/WebCore/html/RubyTextElement.h
@@ -36,7 +36,7 @@
 
 private:
     RubyTextElement(const QualifiedName&, Document&);
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 };
 
 }
diff --git a/Source/WebCore/html/SearchInputType.h b/Source/WebCore/html/SearchInputType.h
index 9da079d..6ff8c9e 100644
--- a/Source/WebCore/html/SearchInputType.h
+++ b/Source/WebCore/html/SearchInputType.h
@@ -46,20 +46,20 @@
     void stopSearchEventTimer();
 
 private:
-    virtual void addSearchResult() override;
-    virtual void maxResultsAttributeChanged() override;
-    virtual RenderPtr<RenderElement> createInputRenderer(Ref<RenderStyle>&&) override;
-    virtual const AtomicString& formControlType() const override;
-    virtual bool isSearchField() const override;
-    virtual bool needsContainer() const override;
-    virtual void createShadowSubtree() override;
-    virtual void destroyShadowSubtree() override;
-    virtual HTMLElement* resultsButtonElement() const override;
-    virtual HTMLElement* cancelButtonElement() const override;
-    virtual void handleKeydownEvent(KeyboardEvent*) override;
-    virtual void didSetValueByUserEdit() override;
-    virtual bool sizeShouldIncludeDecoration(int defaultSize, int& preferredSize) const override;
-    virtual float decorationWidth() const override;
+    void addSearchResult() override;
+    void maxResultsAttributeChanged() override;
+    RenderPtr<RenderElement> createInputRenderer(Ref<RenderStyle>&&) override;
+    const AtomicString& formControlType() const override;
+    bool isSearchField() const override;
+    bool needsContainer() const override;
+    void createShadowSubtree() override;
+    void destroyShadowSubtree() override;
+    HTMLElement* resultsButtonElement() const override;
+    HTMLElement* cancelButtonElement() const override;
+    void handleKeydownEvent(KeyboardEvent*) override;
+    void didSetValueByUserEdit() override;
+    bool sizeShouldIncludeDecoration(int defaultSize, int& preferredSize) const override;
+    float decorationWidth() const override;
 
     void searchEventTimerFired();
     bool searchEventsShouldBeDispatched() const;
diff --git a/Source/WebCore/html/SubmitInputType.h b/Source/WebCore/html/SubmitInputType.h
index 68f78b6..fa5f949 100644
--- a/Source/WebCore/html/SubmitInputType.h
+++ b/Source/WebCore/html/SubmitInputType.h
@@ -40,14 +40,14 @@
     explicit SubmitInputType(HTMLInputElement& element) : BaseButtonInputType(element) { }
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual bool appendFormData(FormDataList&, bool) const override;
-    virtual bool supportsRequired() const override;
-    virtual void handleDOMActivateEvent(Event*) override;
-    virtual bool canBeSuccessfulSubmitButton() override;
-    virtual String defaultValue() const override;
-    virtual bool isSubmitButton() const override;
-    virtual bool isTextButton() const override;
+    const AtomicString& formControlType() const override;
+    bool appendFormData(FormDataList&, bool) const override;
+    bool supportsRequired() const override;
+    void handleDOMActivateEvent(Event*) override;
+    bool canBeSuccessfulSubmitButton() override;
+    String defaultValue() const override;
+    bool isSubmitButton() const override;
+    bool isTextButton() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/TelephoneInputType.h b/Source/WebCore/html/TelephoneInputType.h
index c564671..d7b2478 100644
--- a/Source/WebCore/html/TelephoneInputType.h
+++ b/Source/WebCore/html/TelephoneInputType.h
@@ -40,8 +40,8 @@
     explicit TelephoneInputType(HTMLInputElement& element) : BaseTextInputType(element) { }
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual bool isTelephoneField() const override;
+    const AtomicString& formControlType() const override;
+    bool isTelephoneField() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/TextDocument.h b/Source/WebCore/html/TextDocument.h
index d947d75..cd1ccb3 100644
--- a/Source/WebCore/html/TextDocument.h
+++ b/Source/WebCore/html/TextDocument.h
@@ -39,7 +39,7 @@
 private:
     TextDocument(Frame*, const URL&);
     
-    virtual Ref<DocumentParser> createParser() override;
+    Ref<DocumentParser> createParser() override;
 };
 
 }
diff --git a/Source/WebCore/html/TextFieldInputType.h b/Source/WebCore/html/TextFieldInputType.h
index 6873783..2d8267f 100644
--- a/Source/WebCore/html/TextFieldInputType.h
+++ b/Source/WebCore/html/TextFieldInputType.h
@@ -46,61 +46,61 @@
 protected:
     explicit TextFieldInputType(HTMLInputElement&);
     virtual ~TextFieldInputType();
-    virtual void handleKeydownEvent(KeyboardEvent*) override;
+    void handleKeydownEvent(KeyboardEvent*) override;
     void handleKeydownEventForSpinButton(KeyboardEvent*);
 
-    virtual HTMLElement* containerElement() const override final;
-    virtual HTMLElement* innerBlockElement() const override final;
-    virtual TextControlInnerTextElement* innerTextElement() const override final;
-    virtual HTMLElement* innerSpinButtonElement() const override final;
-    virtual HTMLElement* capsLockIndicatorElement() const override final;
-    virtual HTMLElement* autoFillButtonElement() const override final;
+    HTMLElement* containerElement() const override final;
+    HTMLElement* innerBlockElement() const override final;
+    TextControlInnerTextElement* innerTextElement() const override final;
+    HTMLElement* innerSpinButtonElement() const override final;
+    HTMLElement* capsLockIndicatorElement() const override final;
+    HTMLElement* autoFillButtonElement() const override final;
 
 protected:
     virtual bool needsContainer() const;
-    virtual void createShadowSubtree() override;
-    virtual void destroyShadowSubtree() override;
-    virtual void attributeChanged() override final;
-    virtual void disabledAttributeChanged() override final;
-    virtual void readonlyAttributeChanged() override final;
-    virtual bool supportsReadOnly() const override final;
+    void createShadowSubtree() override;
+    void destroyShadowSubtree() override;
+    void attributeChanged() override final;
+    void disabledAttributeChanged() override final;
+    void readonlyAttributeChanged() override final;
+    bool supportsReadOnly() const override final;
     void handleFocusEvent(Node* oldFocusedNode, FocusDirection) override final;
-    virtual void handleBlurEvent() override final;
-    virtual void setValue(const String&, bool valueChanged, TextFieldEventBehavior) override;
-    virtual void updateInnerTextValue() override final;
-    virtual String sanitizeValue(const String&) const override;
+    void handleBlurEvent() override final;
+    void setValue(const String&, bool valueChanged, TextFieldEventBehavior) override;
+    void updateInnerTextValue() override final;
+    String sanitizeValue(const String&) const override;
 
     virtual String convertFromVisibleValue(const String&) const;
     virtual void didSetValueByUserEdit();
 
 private:
-    virtual bool isKeyboardFocusable(KeyboardEvent*) const override final;
-    virtual bool isMouseFocusable() const override final;
-    virtual bool isTextField() const override final;
-    virtual bool isEmptyValue() const override final;
-    virtual bool valueMissing(const String&) const override final;
-    virtual void handleBeforeTextInsertedEvent(BeforeTextInsertedEvent*) override final;
-    virtual void forwardEvent(Event*) override final;
-    virtual bool shouldSubmitImplicitly(Event*) override final;
-    virtual RenderPtr<RenderElement> createInputRenderer(Ref<RenderStyle>&&) override;
-    virtual bool shouldUseInputMethod() const override;
-    virtual bool shouldRespectListAttribute() override;
-    virtual HTMLElement* placeholderElement() const override final;
-    virtual void updatePlaceholderText() override final;
-    virtual bool appendFormData(FormDataList&, bool multipart) const override final;
-    virtual void subtreeHasChanged() override final;
-    virtual void capsLockStateMayHaveChanged() override final;
-    virtual void updateAutoFillButton() override final;
+    bool isKeyboardFocusable(KeyboardEvent*) const override final;
+    bool isMouseFocusable() const override final;
+    bool isTextField() const override final;
+    bool isEmptyValue() const override final;
+    bool valueMissing(const String&) const override final;
+    void handleBeforeTextInsertedEvent(BeforeTextInsertedEvent*) override final;
+    void forwardEvent(Event*) override final;
+    bool shouldSubmitImplicitly(Event*) override final;
+    RenderPtr<RenderElement> createInputRenderer(Ref<RenderStyle>&&) override;
+    bool shouldUseInputMethod() const override;
+    bool shouldRespectListAttribute() override;
+    HTMLElement* placeholderElement() const override final;
+    void updatePlaceholderText() override final;
+    bool appendFormData(FormDataList&, bool multipart) const override final;
+    void subtreeHasChanged() override final;
+    void capsLockStateMayHaveChanged() override final;
+    void updateAutoFillButton() override final;
 
     // SpinButtonElement::SpinButtonOwner functions.
-    virtual void focusAndSelectSpinButtonOwner() override final;
-    virtual bool shouldSpinButtonRespondToMouseEvents() override final;
-    virtual bool shouldSpinButtonRespondToWheelEvents() override final;
-    virtual void spinButtonStepDown() override final;
-    virtual void spinButtonStepUp() override final;
+    void focusAndSelectSpinButtonOwner() override final;
+    bool shouldSpinButtonRespondToMouseEvents() override final;
+    bool shouldSpinButtonRespondToWheelEvents() override final;
+    void spinButtonStepDown() override final;
+    void spinButtonStepUp() override final;
 
     // AutoFillButtonElement::AutoFillButtonOwner
-    virtual void autoFillButtonElementWasClicked() override final;
+    void autoFillButtonElementWasClicked() override final;
 
     bool shouldHaveSpinButton() const;
     bool shouldHaveCapsLockIndicator() const;
diff --git a/Source/WebCore/html/TextInputType.h b/Source/WebCore/html/TextInputType.h
index abc5f48..e6919b1 100644
--- a/Source/WebCore/html/TextInputType.h
+++ b/Source/WebCore/html/TextInputType.h
@@ -40,7 +40,7 @@
     explicit TextInputType(HTMLInputElement& element) : BaseTextInputType(element) { }
 
 private:
-    virtual const AtomicString& formControlType() const override;
+    const AtomicString& formControlType() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/TimeInputType.h b/Source/WebCore/html/TimeInputType.h
index 1f1462a..1a3726c 100644
--- a/Source/WebCore/html/TimeInputType.h
+++ b/Source/WebCore/html/TimeInputType.h
@@ -41,13 +41,13 @@
     explicit TimeInputType(HTMLInputElement&);
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual DateComponents::Type dateType() const override;
-    virtual Decimal defaultValueForStepUp() const override;
-    virtual StepRange createStepRange(AnyStepHandling) const override;
-    virtual bool parseToDateComponentsInternal(const UChar*, unsigned length, DateComponents*) const override;
-    virtual bool setMillisecondToDateComponents(double, DateComponents*) const override;
-    virtual bool isTimeField() const override;
+    const AtomicString& formControlType() const override;
+    DateComponents::Type dateType() const override;
+    Decimal defaultValueForStepUp() const override;
+    StepRange createStepRange(AnyStepHandling) const override;
+    bool parseToDateComponentsInternal(const UChar*, unsigned length, DateComponents*) const override;
+    bool setMillisecondToDateComponents(double, DateComponents*) const override;
+    bool isTimeField() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/URLInputType.h b/Source/WebCore/html/URLInputType.h
index bdc96a2..8ca71f6 100644
--- a/Source/WebCore/html/URLInputType.h
+++ b/Source/WebCore/html/URLInputType.h
@@ -40,12 +40,12 @@
     explicit URLInputType(HTMLInputElement& element) : BaseTextInputType(element) { }
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual bool typeMismatchFor(const String&) const override;
-    virtual bool typeMismatch() const override;
-    virtual String typeMismatchText() const override;
-    virtual bool isURLField() const override;
-    virtual String sanitizeValue(const String&) const override;
+    const AtomicString& formControlType() const override;
+    bool typeMismatchFor(const String&) const override;
+    bool typeMismatch() const override;
+    String typeMismatchText() const override;
+    bool isURLField() const override;
+    String sanitizeValue(const String&) const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/WeekInputType.h b/Source/WebCore/html/WeekInputType.h
index 4ea6c56..70eb490 100644
--- a/Source/WebCore/html/WeekInputType.h
+++ b/Source/WebCore/html/WeekInputType.h
@@ -41,12 +41,12 @@
     explicit WeekInputType(HTMLInputElement& element) : BaseChooserOnlyDateAndTimeInputType(element) { }
 
 private:
-    virtual const AtomicString& formControlType() const override;
-    virtual DateComponents::Type dateType() const override;
-    virtual StepRange createStepRange(AnyStepHandling) const override;
-    virtual bool parseToDateComponentsInternal(const UChar*, unsigned length, DateComponents*) const override;
-    virtual bool setMillisecondToDateComponents(double, DateComponents*) const override;
-    virtual bool isWeekField() const override;
+    const AtomicString& formControlType() const override;
+    DateComponents::Type dateType() const override;
+    StepRange createStepRange(AnyStepHandling) const override;
+    bool parseToDateComponentsInternal(const UChar*, unsigned length, DateComponents*) const override;
+    bool setMillisecondToDateComponents(double, DateComponents*) const override;
+    bool isWeekField() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp b/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
index 8b76ddf..efdac06 100644
--- a/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
+++ b/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
@@ -114,7 +114,7 @@
     {
     }
 
-    virtual void strokeStyle(GraphicsContext* c) override
+    void strokeStyle(GraphicsContext* c) override
     {
         c->setStrokeThickness(m_canvasContext->lineWidth());
         c->setLineCap(m_canvasContext->getLineCap());
diff --git a/Source/WebCore/html/canvas/CanvasRenderingContext2D.h b/Source/WebCore/html/canvas/CanvasRenderingContext2D.h
index a334873..34f6223 100644
--- a/Source/WebCore/html/canvas/CanvasRenderingContext2D.h
+++ b/Source/WebCore/html/canvas/CanvasRenderingContext2D.h
@@ -269,7 +269,7 @@
 
     private:
         void update(FontSelector&);
-        virtual void fontsNeedUpdate(FontSelector&) override;
+        void fontsNeedUpdate(FontSelector&) override;
 
         FontCascade m_font;
     };
@@ -384,14 +384,14 @@
     RefPtr<ImageData> getImageData(ImageBuffer::CoordinateSystem, float sx, float sy, float sw, float sh, ExceptionCode&) const;
     void putImageData(ImageData*, ImageBuffer::CoordinateSystem, float dx, float dy, float dirtyX, float dirtyY, float dirtyWidth, float dirtyHeight, ExceptionCode&);
 
-    virtual bool is2d() const override { return true; }
-    virtual bool isAccelerated() const override;
+    bool is2d() const override { return true; }
+    bool isAccelerated() const override;
 
-    virtual bool hasInvertibleTransform() const override { return state().hasInvertibleTransform; }
+    bool hasInvertibleTransform() const override { return state().hasInvertibleTransform; }
     TextDirection toTextDirection(Direction, RenderStyle** computedStyle = nullptr) const;
 
 #if ENABLE(ACCELERATED_2D_CANVAS)
-    virtual PlatformLayer* platformLayer() const override;
+    PlatformLayer* platformLayer() const override;
 #endif
 
     Vector<State, 1> m_stateStack;
diff --git a/Source/WebCore/html/canvas/EXTBlendMinMax.h b/Source/WebCore/html/canvas/EXTBlendMinMax.h
index 8bd8c93..846cb47 100644
--- a/Source/WebCore/html/canvas/EXTBlendMinMax.h
+++ b/Source/WebCore/html/canvas/EXTBlendMinMax.h
@@ -35,7 +35,7 @@
     explicit EXTBlendMinMax(WebGLRenderingContextBase*);
     virtual ~EXTBlendMinMax();
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/EXTFragDepth.h b/Source/WebCore/html/canvas/EXTFragDepth.h
index 0a37355..e7ad6098 100644
--- a/Source/WebCore/html/canvas/EXTFragDepth.h
+++ b/Source/WebCore/html/canvas/EXTFragDepth.h
@@ -35,7 +35,7 @@
     explicit EXTFragDepth(WebGLRenderingContextBase*);
     virtual ~EXTFragDepth();
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/EXTShaderTextureLOD.h b/Source/WebCore/html/canvas/EXTShaderTextureLOD.h
index 30bb238..2cd554b 100644
--- a/Source/WebCore/html/canvas/EXTShaderTextureLOD.h
+++ b/Source/WebCore/html/canvas/EXTShaderTextureLOD.h
@@ -35,7 +35,7 @@
     explicit EXTShaderTextureLOD(WebGLRenderingContextBase*);
     virtual ~EXTShaderTextureLOD();
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.h b/Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.h
index ce615f9..011159e 100644
--- a/Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.h
+++ b/Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.h
@@ -35,7 +35,7 @@
     explicit EXTTextureFilterAnisotropic(WebGLRenderingContextBase*);
     virtual ~EXTTextureFilterAnisotropic();
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/EXTsRGB.h b/Source/WebCore/html/canvas/EXTsRGB.h
index 07014b3..847f9e1 100644
--- a/Source/WebCore/html/canvas/EXTsRGB.h
+++ b/Source/WebCore/html/canvas/EXTsRGB.h
@@ -35,7 +35,7 @@
     explicit EXTsRGB(WebGLRenderingContextBase*);
     virtual ~EXTsRGB();
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/OESElementIndexUint.h b/Source/WebCore/html/canvas/OESElementIndexUint.h
index b4cf8a4..43dcf28 100644
--- a/Source/WebCore/html/canvas/OESElementIndexUint.h
+++ b/Source/WebCore/html/canvas/OESElementIndexUint.h
@@ -35,7 +35,7 @@
     explicit OESElementIndexUint(WebGLRenderingContextBase*);
     virtual ~OESElementIndexUint();
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/OESStandardDerivatives.h b/Source/WebCore/html/canvas/OESStandardDerivatives.h
index ff1d4ab..c158427 100644
--- a/Source/WebCore/html/canvas/OESStandardDerivatives.h
+++ b/Source/WebCore/html/canvas/OESStandardDerivatives.h
@@ -35,7 +35,7 @@
     explicit OESStandardDerivatives(WebGLRenderingContextBase*);
     virtual ~OESStandardDerivatives();
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/OESTextureFloat.h b/Source/WebCore/html/canvas/OESTextureFloat.h
index 24a0819..f78f740 100644
--- a/Source/WebCore/html/canvas/OESTextureFloat.h
+++ b/Source/WebCore/html/canvas/OESTextureFloat.h
@@ -35,7 +35,7 @@
     OESTextureFloat(WebGLRenderingContextBase*);
     virtual ~OESTextureFloat();
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/OESTextureFloatLinear.h b/Source/WebCore/html/canvas/OESTextureFloatLinear.h
index 088afc8..5ab37e7 100644
--- a/Source/WebCore/html/canvas/OESTextureFloatLinear.h
+++ b/Source/WebCore/html/canvas/OESTextureFloatLinear.h
@@ -35,7 +35,7 @@
     explicit OESTextureFloatLinear(WebGLRenderingContextBase*);
     virtual ~OESTextureFloatLinear();
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/OESTextureHalfFloat.h b/Source/WebCore/html/canvas/OESTextureHalfFloat.h
index ce7ee52..47198fa 100644
--- a/Source/WebCore/html/canvas/OESTextureHalfFloat.h
+++ b/Source/WebCore/html/canvas/OESTextureHalfFloat.h
@@ -35,7 +35,7 @@
     OESTextureHalfFloat(WebGLRenderingContextBase*);
     virtual ~OESTextureHalfFloat();
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/OESTextureHalfFloatLinear.h b/Source/WebCore/html/canvas/OESTextureHalfFloatLinear.h
index e469448..313ed0d 100644
--- a/Source/WebCore/html/canvas/OESTextureHalfFloatLinear.h
+++ b/Source/WebCore/html/canvas/OESTextureHalfFloatLinear.h
@@ -35,7 +35,7 @@
     OESTextureHalfFloatLinear(WebGLRenderingContextBase*);
     virtual ~OESTextureHalfFloatLinear();
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/OESVertexArrayObject.h b/Source/WebCore/html/canvas/OESVertexArrayObject.h
index 51e8a06a..74ea7f3 100644
--- a/Source/WebCore/html/canvas/OESVertexArrayObject.h
+++ b/Source/WebCore/html/canvas/OESVertexArrayObject.h
@@ -41,7 +41,7 @@
     OESVertexArrayObject(WebGLRenderingContextBase*);
     virtual ~OESVertexArrayObject();
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
     
     PassRefPtr<WebGLVertexArrayObjectOES> createVertexArrayOES();
     void deleteVertexArrayOES(WebGLVertexArrayObjectOES*);
diff --git a/Source/WebCore/html/canvas/WebGL2RenderingContext.h b/Source/WebCore/html/canvas/WebGL2RenderingContext.h
index 9d90e95..cef7474 100644
--- a/Source/WebCore/html/canvas/WebGL2RenderingContext.h
+++ b/Source/WebCore/html/canvas/WebGL2RenderingContext.h
@@ -42,7 +42,7 @@
 public:
     WebGL2RenderingContext(HTMLCanvasElement*, GraphicsContext3D::Attributes);
     WebGL2RenderingContext(HTMLCanvasElement*, PassRefPtr<GraphicsContext3D>, GraphicsContext3D::Attributes);
-    virtual bool isWebGL2() const override { return true; }
+    bool isWebGL2() const override { return true; }
 
     /* Buffer objects */
     void copyBufferSubData(GC3Denum readTarget, GC3Denum writeTarget, GC3Dint64 readOffset, GC3Dint64 writeOffset, GC3Dint64 size);
@@ -50,7 +50,7 @@
     void getBufferSubData(GC3Denum target, GC3Dint64 offset, ArrayBuffer* returnedData);
     
     /* Framebuffer objects */
-    virtual WebGLGetInfo getFramebufferAttachmentParameter(GC3Denum target, GC3Denum attachment, GC3Denum pname, ExceptionCode&) override;
+    WebGLGetInfo getFramebufferAttachmentParameter(GC3Denum target, GC3Denum attachment, GC3Denum pname, ExceptionCode&) override;
     void blitFramebuffer(GC3Dint srcX0, GC3Dint srcY0, GC3Dint srcX1, GC3Dint srcY1, GC3Dint dstX0, GC3Dint dstY0, GC3Dint dstX1, GC3Dint dstY1, GC3Dbitfield mask, GC3Denum filter);
     void framebufferTextureLayer(GC3Denum target, GC3Denum attachment, GC3Duint texture, GC3Dint level, GC3Dint layer);
     WebGLGetInfo getInternalformatParameter(GC3Denum target, GC3Denum internalformat, GC3Denum pname);
@@ -99,7 +99,7 @@
     void vertexAttribIPointer(GC3Duint index, GC3Dint size, GC3Denum type, GC3Dsizei stride, GC3Dint64 offset);
     
     /* Writing to the drawing buffer */
-    virtual void clear(GC3Dbitfield mask) override;
+    void clear(GC3Dbitfield mask) override;
     void vertexAttribDivisor(GC3Duint index, GC3Duint divisor);
     void drawArraysInstanced(GC3Denum mode, GC3Dint first, GC3Dsizei count, GC3Dsizei instanceCount);
     void drawElementsInstanced(GC3Denum mode, GC3Dsizei count, GC3Denum type, GC3Dint64 offset, GC3Dsizei instanceCount);
@@ -168,49 +168,49 @@
     void bindVertexArray(WebGLVertexArrayObject* vertexArray);
     
     /* Extensions */
-    virtual WebGLExtension* getExtension(const String&) override;
-    virtual Vector<String> getSupportedExtensions() override;
-    virtual WebGLGetInfo getParameter(GC3Denum pname, ExceptionCode&) override;
+    WebGLExtension* getExtension(const String&) override;
+    Vector<String> getSupportedExtensions() override;
+    WebGLGetInfo getParameter(GC3Denum pname, ExceptionCode&) override;
 
-    virtual void renderbufferStorage(GC3Denum target, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height) override;
-    virtual void hint(GC3Denum target, GC3Denum mode) override;
-    virtual void copyTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height, GC3Dint border) override;
-    virtual void texSubImage2DBase(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum internalformat, GC3Denum format, GC3Denum type, const void* pixels, ExceptionCode&) override;
-    virtual void texSubImage2DImpl(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Denum format, GC3Denum type, Image*, GraphicsContext3D::ImageHtmlDomSource, bool flipY, bool premultiplyAlpha, ExceptionCode&) override;
-    virtual void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+    void renderbufferStorage(GC3Denum target, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height) override;
+    void hint(GC3Denum target, GC3Denum mode) override;
+    void copyTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height, GC3Dint border) override;
+    void texSubImage2DBase(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum internalformat, GC3Denum format, GC3Denum type, const void* pixels, ExceptionCode&) override;
+    void texSubImage2DImpl(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Denum format, GC3Denum type, Image*, GraphicsContext3D::ImageHtmlDomSource, bool flipY, bool premultiplyAlpha, ExceptionCode&) override;
+    void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Dsizei width, GC3Dsizei height,
         GC3Denum format, GC3Denum type, ArrayBufferView*, ExceptionCode&) override;
-    virtual void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+    void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Denum format, GC3Denum type, ImageData*, ExceptionCode&) override;
-    virtual void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+    void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Denum format, GC3Denum type, HTMLImageElement*, ExceptionCode&) override;
-    virtual void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+    void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Denum format, GC3Denum type, HTMLCanvasElement*, ExceptionCode&) override;
 #if ENABLE(VIDEO)
-    virtual void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+    void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Denum format, GC3Denum type, HTMLVideoElement*, ExceptionCode&) override;
 #endif
 
 protected:
-    virtual void initializeVertexArrayObjects() override;
-    virtual GC3Dint getMaxDrawBuffers() override;
-    virtual GC3Dint getMaxColorAttachments() override;
-    virtual bool validateIndexArrayConservative(GC3Denum type, unsigned& numElementsRequired) override;
-    virtual bool validateBlendEquation(const char* functionName, GC3Denum mode) override;
-    virtual bool validateTexFuncFormatAndType(const char* functionName, GC3Denum internalformat, GC3Denum format, GC3Denum type, GC3Dint level) override;
-    virtual bool validateTexFuncParameters(const char* functionName,
+    void initializeVertexArrayObjects() override;
+    GC3Dint getMaxDrawBuffers() override;
+    GC3Dint getMaxColorAttachments() override;
+    bool validateIndexArrayConservative(GC3Denum type, unsigned& numElementsRequired) override;
+    bool validateBlendEquation(const char* functionName, GC3Denum mode) override;
+    bool validateTexFuncFormatAndType(const char* functionName, GC3Denum internalformat, GC3Denum format, GC3Denum type, GC3Dint level) override;
+    bool validateTexFuncParameters(const char* functionName,
         TexFuncValidationFunctionType,
         GC3Denum target, GC3Dint level,
         GC3Denum internalformat,
         GC3Dsizei width, GC3Dsizei height, GC3Dint border,
         GC3Denum format, GC3Denum type) override;
-    virtual bool validateTexFuncData(const char* functionName, GC3Dint level,
+    bool validateTexFuncData(const char* functionName, GC3Dint level,
         GC3Dsizei width, GC3Dsizei height,
         GC3Denum internalformat, GC3Denum format, GC3Denum type,
         ArrayBufferView* pixels,
         NullDisposition) override;
-    virtual bool validateCapability(const char* functionName, GC3Denum cap) override;
-    virtual bool validateFramebufferFuncParameters(const char* functionName, GC3Denum target, GC3Denum attachment) override;
+    bool validateCapability(const char* functionName, GC3Denum cap) override;
+    bool validateFramebufferFuncParameters(const char* functionName, GC3Denum target, GC3Denum attachment) override;
     
 private:
     GC3Denum baseInternalFormatFromInternalFormat(GC3Denum internalformat);
diff --git a/Source/WebCore/html/canvas/WebGLBuffer.h b/Source/WebCore/html/canvas/WebGLBuffer.h
index 8075b4a..a15fb45 100644
--- a/Source/WebCore/html/canvas/WebGLBuffer.h
+++ b/Source/WebCore/html/canvas/WebGLBuffer.h
@@ -68,10 +68,10 @@
 protected:
     WebGLBuffer(WebGLRenderingContextBase*);
 
-    virtual void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
+    void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
 
 private:
-    virtual bool isBuffer() const override { return true; }
+    bool isBuffer() const override { return true; }
 
     GC3Denum m_target;
 
diff --git a/Source/WebCore/html/canvas/WebGLCompressedTextureATC.h b/Source/WebCore/html/canvas/WebGLCompressedTextureATC.h
index 0d9818c..ad0b754 100644
--- a/Source/WebCore/html/canvas/WebGLCompressedTextureATC.h
+++ b/Source/WebCore/html/canvas/WebGLCompressedTextureATC.h
@@ -39,7 +39,7 @@
 
     static bool supported(WebGLRenderingContextBase*);
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.h b/Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.h
index 361f09e..e7f806c 100644
--- a/Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.h
+++ b/Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.h
@@ -36,7 +36,7 @@
     virtual ~WebGLCompressedTexturePVRTC();
 
     static bool supported(WebGLRenderingContextBase*);
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.h b/Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.h
index 5590ef6..30e2d68 100644
--- a/Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.h
+++ b/Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.h
@@ -39,7 +39,7 @@
 
     static bool supported(WebGLRenderingContextBase*);
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/WebGLContextEvent.h b/Source/WebCore/html/canvas/WebGLContextEvent.h
index 2bb5433..1f61863 100644
--- a/Source/WebCore/html/canvas/WebGLContextEvent.h
+++ b/Source/WebCore/html/canvas/WebGLContextEvent.h
@@ -48,7 +48,7 @@
 
     const String& statusMessage() const { return m_statusMessage; }
 
-    virtual EventInterface eventInterface() const override;
+    EventInterface eventInterface() const override;
 
 private:
     WebGLContextEvent(const AtomicString& type, bool canBubble, bool cancelable, const String& statusMessage);
diff --git a/Source/WebCore/html/canvas/WebGLContextObject.h b/Source/WebCore/html/canvas/WebGLContextObject.h
index 43f02ed..b2b09109 100644
--- a/Source/WebCore/html/canvas/WebGLContextObject.h
+++ b/Source/WebCore/html/canvas/WebGLContextObject.h
@@ -41,7 +41,7 @@
 
     WebGLRenderingContextBase* context() const { return m_context; }
 
-    virtual bool validate(const WebGLContextGroup*, const WebGLRenderingContextBase* context) const override
+    bool validate(const WebGLContextGroup*, const WebGLRenderingContextBase* context) const override
     {
         return context == m_context;
     }
@@ -51,12 +51,12 @@
 protected:
     WebGLContextObject(WebGLRenderingContextBase*);
 
-    virtual bool hasGroupOrContext() const override
+    bool hasGroupOrContext() const override
     {
         return m_context;
     }
 
-    virtual GraphicsContext3D* getAGraphicsContext3D() const override;
+    GraphicsContext3D* getAGraphicsContext3D() const override;
 
 private:
     WebGLRenderingContextBase* m_context;
diff --git a/Source/WebCore/html/canvas/WebGLDebugRendererInfo.h b/Source/WebCore/html/canvas/WebGLDebugRendererInfo.h
index 07b8f72..ead623a 100644
--- a/Source/WebCore/html/canvas/WebGLDebugRendererInfo.h
+++ b/Source/WebCore/html/canvas/WebGLDebugRendererInfo.h
@@ -40,7 +40,7 @@
     explicit WebGLDebugRendererInfo(WebGLRenderingContextBase*);
     virtual ~WebGLDebugRendererInfo();
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/WebGLDebugShaders.h b/Source/WebCore/html/canvas/WebGLDebugShaders.h
index 5a9e38b..efcdb21 100644
--- a/Source/WebCore/html/canvas/WebGLDebugShaders.h
+++ b/Source/WebCore/html/canvas/WebGLDebugShaders.h
@@ -39,7 +39,7 @@
     explicit WebGLDebugShaders(WebGLRenderingContextBase*);
     virtual ~WebGLDebugShaders();
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 
     String getTranslatedShaderSource(WebGLShader*, ExceptionCode&);
 };
diff --git a/Source/WebCore/html/canvas/WebGLDepthTexture.h b/Source/WebCore/html/canvas/WebGLDepthTexture.h
index 130d0c9..1d3e9256 100644
--- a/Source/WebCore/html/canvas/WebGLDepthTexture.h
+++ b/Source/WebCore/html/canvas/WebGLDepthTexture.h
@@ -37,7 +37,7 @@
 
     static bool supported(GraphicsContext3D*);
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/WebGLDrawBuffers.h b/Source/WebCore/html/canvas/WebGLDrawBuffers.h
index a36f293..fde0f15 100644
--- a/Source/WebCore/html/canvas/WebGLDrawBuffers.h
+++ b/Source/WebCore/html/canvas/WebGLDrawBuffers.h
@@ -37,7 +37,7 @@
 
     static bool supported(WebGLRenderingContextBase*);
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 
     void drawBuffersWEBGL(const Vector<GC3Denum>& buffers);
 
diff --git a/Source/WebCore/html/canvas/WebGLFramebuffer.cpp b/Source/WebCore/html/canvas/WebGLFramebuffer.cpp
index 7317ed2..961fbae 100644
--- a/Source/WebCore/html/canvas/WebGLFramebuffer.cpp
+++ b/Source/WebCore/html/canvas/WebGLFramebuffer.cpp
@@ -49,17 +49,17 @@
 
     private:
         WebGLRenderbufferAttachment(WebGLRenderbuffer*);
-        virtual GC3Dsizei getWidth() const override;
-        virtual GC3Dsizei getHeight() const override;
-        virtual GC3Denum getFormat() const override;
-        virtual WebGLSharedObject* getObject() const override;
-        virtual bool isSharedObject(WebGLSharedObject*) const override;
-        virtual bool isValid() const override;
-        virtual bool isInitialized() const override;
-        virtual void setInitialized() override;
-        virtual void onDetached(GraphicsContext3D*) override;
-        virtual void attach(GraphicsContext3D*, GC3Denum attachment) override;
-        virtual void unattach(GraphicsContext3D*, GC3Denum attachment) override;
+        GC3Dsizei getWidth() const override;
+        GC3Dsizei getHeight() const override;
+        GC3Denum getFormat() const override;
+        WebGLSharedObject* getObject() const override;
+        bool isSharedObject(WebGLSharedObject*) const override;
+        bool isValid() const override;
+        bool isInitialized() const override;
+        void setInitialized() override;
+        void onDetached(GraphicsContext3D*) override;
+        void attach(GraphicsContext3D*, GC3Denum attachment) override;
+        void unattach(GraphicsContext3D*, GC3Denum attachment) override;
 
         WebGLRenderbufferAttachment() { };
 
@@ -143,17 +143,17 @@
 
     private:
         WebGLTextureAttachment(WebGLTexture*, GC3Denum target, GC3Dint level);
-        virtual GC3Dsizei getWidth() const override;
-        virtual GC3Dsizei getHeight() const override;
-        virtual GC3Denum getFormat() const override;
-        virtual WebGLSharedObject* getObject() const override;
-        virtual bool isSharedObject(WebGLSharedObject*) const override;
-        virtual bool isValid() const override;
-        virtual bool isInitialized() const override;
-        virtual void setInitialized() override;
-        virtual void onDetached(GraphicsContext3D*) override;
-        virtual void attach(GraphicsContext3D*, GC3Denum attachment) override;
-        virtual void unattach(GraphicsContext3D*, GC3Denum attachment) override;
+        GC3Dsizei getWidth() const override;
+        GC3Dsizei getHeight() const override;
+        GC3Denum getFormat() const override;
+        WebGLSharedObject* getObject() const override;
+        bool isSharedObject(WebGLSharedObject*) const override;
+        bool isValid() const override;
+        bool isInitialized() const override;
+        void setInitialized() override;
+        void onDetached(GraphicsContext3D*) override;
+        void attach(GraphicsContext3D*, GC3Denum attachment) override;
+        void unattach(GraphicsContext3D*, GC3Denum attachment) override;
 
         WebGLTextureAttachment() { };
 
diff --git a/Source/WebCore/html/canvas/WebGLFramebuffer.h b/Source/WebCore/html/canvas/WebGLFramebuffer.h
index e0920d7..935a58d 100644
--- a/Source/WebCore/html/canvas/WebGLFramebuffer.h
+++ b/Source/WebCore/html/canvas/WebGLFramebuffer.h
@@ -103,7 +103,7 @@
 protected:
     WebGLFramebuffer(WebGLRenderingContextBase*);
 
-    virtual void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
+    void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
 
 private:
     WebGLAttachment* getAttachment(GC3Denum) const;
diff --git a/Source/WebCore/html/canvas/WebGLLoseContext.h b/Source/WebCore/html/canvas/WebGLLoseContext.h
index e6ce157..175b9f3 100644
--- a/Source/WebCore/html/canvas/WebGLLoseContext.h
+++ b/Source/WebCore/html/canvas/WebGLLoseContext.h
@@ -37,7 +37,7 @@
     explicit WebGLLoseContext(WebGLRenderingContextBase*);
     virtual ~WebGLLoseContext();
 
-    virtual ExtensionName getName() const override;
+    ExtensionName getName() const override;
 
     void loseContext();
     void restoreContext();
diff --git a/Source/WebCore/html/canvas/WebGLProgram.h b/Source/WebCore/html/canvas/WebGLProgram.h
index 1d8bba1..e85dd44 100644
--- a/Source/WebCore/html/canvas/WebGLProgram.h
+++ b/Source/WebCore/html/canvas/WebGLProgram.h
@@ -63,10 +63,10 @@
 protected:
     WebGLProgram(WebGLRenderingContextBase*);
 
-    virtual void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
+    void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
 
 private:
-    virtual bool isProgram() const override { return true; }
+    bool isProgram() const override { return true; }
 
     void cacheActiveAttribLocations(GraphicsContext3D*);
     void cacheInfoIfNeeded();
diff --git a/Source/WebCore/html/canvas/WebGLQuery.h b/Source/WebCore/html/canvas/WebGLQuery.h
index 107ace9..7c5feb6 100644
--- a/Source/WebCore/html/canvas/WebGLQuery.h
+++ b/Source/WebCore/html/canvas/WebGLQuery.h
@@ -41,10 +41,10 @@
 protected:
     WebGLQuery(WebGLRenderingContextBase*);
 
-    virtual void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
+    void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
 
 private:
-    virtual bool isQuery() const override { return true; }
+    bool isQuery() const override { return true; }
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/WebGLRenderbuffer.h b/Source/WebCore/html/canvas/WebGLRenderbuffer.h
index 8b67791..c1fc5fc 100644
--- a/Source/WebCore/html/canvas/WebGLRenderbuffer.h
+++ b/Source/WebCore/html/canvas/WebGLRenderbuffer.h
@@ -66,10 +66,10 @@
 protected:
     WebGLRenderbuffer(WebGLRenderingContextBase*);
 
-    virtual void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
+    void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
 
 private:
-    virtual bool isRenderbuffer() const override { return true; }
+    bool isRenderbuffer() const override { return true; }
 
     GC3Denum m_internalFormat;
     bool m_initialized;
diff --git a/Source/WebCore/html/canvas/WebGLRenderingContext.h b/Source/WebCore/html/canvas/WebGLRenderingContext.h
index 204788d..a27c603 100644
--- a/Source/WebCore/html/canvas/WebGLRenderingContext.h
+++ b/Source/WebCore/html/canvas/WebGLRenderingContext.h
@@ -34,53 +34,53 @@
 public:
     WebGLRenderingContext(HTMLCanvasElement*, GraphicsContext3D::Attributes);
     WebGLRenderingContext(HTMLCanvasElement*, PassRefPtr<GraphicsContext3D>, GraphicsContext3D::Attributes);
-    virtual bool isWebGL1() const override { return true; }
+    bool isWebGL1() const override { return true; }
     
-    virtual WebGLExtension* getExtension(const String&) override;
-    virtual WebGLGetInfo getParameter(GC3Denum pname, ExceptionCode&) override;
-    virtual Vector<String> getSupportedExtensions() override;
+    WebGLExtension* getExtension(const String&) override;
+    WebGLGetInfo getParameter(GC3Denum pname, ExceptionCode&) override;
+    Vector<String> getSupportedExtensions() override;
 
-    virtual WebGLGetInfo getFramebufferAttachmentParameter(GC3Denum target, GC3Denum attachment, GC3Denum pname, ExceptionCode&) override;
-    virtual void renderbufferStorage(GC3Denum target, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height) override;
-    virtual bool validateFramebufferFuncParameters(const char* functionName, GC3Denum target, GC3Denum attachment) override;
-    virtual void hint(GC3Denum target, GC3Denum mode) override;
-    virtual void clear(GC3Dbitfield mask) override;
-    virtual void copyTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height, GC3Dint border) override;
-    virtual void texSubImage2DBase(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum internalformat, GC3Denum format, GC3Denum type, const void* pixels, ExceptionCode&) override;
-    virtual void texSubImage2DImpl(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Denum format, GC3Denum type, Image*, GraphicsContext3D::ImageHtmlDomSource, bool flipY, bool premultiplyAlpha, ExceptionCode&) override;
-    virtual void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+    WebGLGetInfo getFramebufferAttachmentParameter(GC3Denum target, GC3Denum attachment, GC3Denum pname, ExceptionCode&) override;
+    void renderbufferStorage(GC3Denum target, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height) override;
+    bool validateFramebufferFuncParameters(const char* functionName, GC3Denum target, GC3Denum attachment) override;
+    void hint(GC3Denum target, GC3Denum mode) override;
+    void clear(GC3Dbitfield mask) override;
+    void copyTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height, GC3Dint border) override;
+    void texSubImage2DBase(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum internalformat, GC3Denum format, GC3Denum type, const void* pixels, ExceptionCode&) override;
+    void texSubImage2DImpl(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Denum format, GC3Denum type, Image*, GraphicsContext3D::ImageHtmlDomSource, bool flipY, bool premultiplyAlpha, ExceptionCode&) override;
+    void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Dsizei width, GC3Dsizei height,
         GC3Denum format, GC3Denum type, ArrayBufferView*, ExceptionCode&) override;
-    virtual void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+    void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Denum format, GC3Denum type, ImageData*, ExceptionCode&) override;
-    virtual void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+    void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Denum format, GC3Denum type, HTMLImageElement*, ExceptionCode&) override;
-    virtual void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+    void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Denum format, GC3Denum type, HTMLCanvasElement*, ExceptionCode&) override;
 #if ENABLE(VIDEO)
-    virtual void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+    void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Denum format, GC3Denum type, HTMLVideoElement*, ExceptionCode&) override;
 #endif
 
 protected:
-    virtual GC3Dint getMaxDrawBuffers() override;
-    virtual GC3Dint getMaxColorAttachments() override;
-    virtual void initializeVertexArrayObjects() override;
-    virtual bool validateIndexArrayConservative(GC3Denum type, unsigned& numElementsRequired) override;
-    virtual bool validateBlendEquation(const char* functionName, GC3Denum mode) override;
-    virtual bool validateTexFuncParameters(const char* functionName,
+    GC3Dint getMaxDrawBuffers() override;
+    GC3Dint getMaxColorAttachments() override;
+    void initializeVertexArrayObjects() override;
+    bool validateIndexArrayConservative(GC3Denum type, unsigned& numElementsRequired) override;
+    bool validateBlendEquation(const char* functionName, GC3Denum mode) override;
+    bool validateTexFuncParameters(const char* functionName,
         TexFuncValidationFunctionType,
         GC3Denum target, GC3Dint level,
         GC3Denum internalformat,
         GC3Dsizei width, GC3Dsizei height, GC3Dint border,
         GC3Denum format, GC3Denum type) override;
-    virtual bool validateTexFuncFormatAndType(const char* functionName, GC3Denum internalformat, GC3Denum format, GC3Denum type, GC3Dint level) override;
-    virtual bool validateTexFuncData(const char* functionName, GC3Dint level,
+    bool validateTexFuncFormatAndType(const char* functionName, GC3Denum internalformat, GC3Denum format, GC3Denum type, GC3Dint level) override;
+    bool validateTexFuncData(const char* functionName, GC3Dint level,
         GC3Dsizei width, GC3Dsizei height,
         GC3Denum internalformat, GC3Denum format, GC3Denum type,
         ArrayBufferView* pixels,
         NullDisposition) override;
-    virtual bool validateCapability(const char* functionName, GC3Denum cap) override;
+    bool validateCapability(const char* functionName, GC3Denum cap) override;
 };
     
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp b/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
index 37ca754..89c99a9 100644
--- a/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
+++ b/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
@@ -326,7 +326,7 @@
     WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit WebGLRenderingContextLostCallback(WebGLRenderingContextBase* cb) : m_context(cb) { }
-    virtual void onContextLost() override { m_context->forceLostContext(WebGLRenderingContext::RealLostContext); }
+    void onContextLost() override { m_context->forceLostContext(WebGLRenderingContext::RealLostContext); }
     virtual ~WebGLRenderingContextLostCallback() {}
 private:
     WebGLRenderingContextBase* m_context;
@@ -336,7 +336,7 @@
     WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit WebGLRenderingContextErrorMessageCallback(WebGLRenderingContextBase* cb) : m_context(cb) { }
-    virtual void onErrorMessage(const String& message, GC3Dint) override
+    void onErrorMessage(const String& message, GC3Dint) override
     {
         if (m_context->m_synthesizedErrorsToConsole)
             m_context->printGLErrorToConsole(message);
diff --git a/Source/WebCore/html/canvas/WebGLRenderingContextBase.h b/Source/WebCore/html/canvas/WebGLRenderingContextBase.h
index ef8d795..43ab84c 100644
--- a/Source/WebCore/html/canvas/WebGLRenderingContextBase.h
+++ b/Source/WebCore/html/canvas/WebGLRenderingContextBase.h
@@ -117,9 +117,9 @@
 
 #if PLATFORM(WIN)
     // FIXME: Implement accelerated 3d canvas on Windows.
-    virtual bool isAccelerated() const override { return false; }
+    bool isAccelerated() const override { return false; }
 #else
-    virtual bool isAccelerated() const override { return true; }
+    bool isAccelerated() const override { return true; }
 #endif
 
     int drawingBufferWidth() const;
@@ -341,12 +341,12 @@
 
     GraphicsContext3D* graphicsContext3D() const { return m_context.get(); }
     WebGLContextGroup* contextGroup() const { return m_contextGroup.get(); }
-    virtual PlatformLayer* platformLayer() const override;
+    PlatformLayer* platformLayer() const override;
 
     void reshape(int width, int height);
 
     void markLayerComposited();
-    virtual void paintRenderingResultsToCanvas() override;
+    void paintRenderingResultsToCanvas() override;
     PassRefPtr<ImageData> paintRenderingResultsToImageData();
 
     void removeSharedObject(WebGLSharedObject*);
@@ -381,9 +381,9 @@
     void setupFlags();
 
     // ActiveDOMObject
-    virtual bool hasPendingActivity() const override;
-    virtual void stop() override;
-    virtual const char* activeDOMObjectName() const override;
+    bool hasPendingActivity() const override;
+    void stop() override;
+    const char* activeDOMObjectName() const override;
     bool canSuspendForDocumentSuspension() const override;
 
     void addSharedObject(WebGLSharedObject*);
diff --git a/Source/WebCore/html/canvas/WebGLSampler.h b/Source/WebCore/html/canvas/WebGLSampler.h
index c2719b2..27c2df2 100644
--- a/Source/WebCore/html/canvas/WebGLSampler.h
+++ b/Source/WebCore/html/canvas/WebGLSampler.h
@@ -41,10 +41,10 @@
 protected:
     WebGLSampler(WebGLRenderingContextBase*);
 
-    virtual void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
+    void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
 
 private:
-    virtual bool isSampler() const override { return true; }
+    bool isSampler() const override { return true; }
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/WebGLShader.h b/Source/WebCore/html/canvas/WebGLShader.h
index 4931226..cc4381b 100644
--- a/Source/WebCore/html/canvas/WebGLShader.h
+++ b/Source/WebCore/html/canvas/WebGLShader.h
@@ -47,9 +47,9 @@
 private:
     WebGLShader(WebGLRenderingContextBase*, GC3Denum);
 
-    virtual void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
+    void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
 
-    virtual bool isShader() const override { return true; }
+    bool isShader() const override { return true; }
 
     GC3Denum m_type;
     String m_source;
diff --git a/Source/WebCore/html/canvas/WebGLSharedObject.h b/Source/WebCore/html/canvas/WebGLSharedObject.h
index 80e5628..105642d 100644
--- a/Source/WebCore/html/canvas/WebGLSharedObject.h
+++ b/Source/WebCore/html/canvas/WebGLSharedObject.h
@@ -53,7 +53,7 @@
     virtual bool isTransformFeedback() const { return false; }
     virtual bool isVertexArrayObject() const { return false; }
 
-    virtual bool validate(const WebGLContextGroup* contextGroup, const WebGLRenderingContextBase*) const override
+    bool validate(const WebGLContextGroup* contextGroup, const WebGLRenderingContextBase*) const override
     {
         return contextGroup == m_contextGroup;
     }
@@ -63,12 +63,12 @@
 protected:
     WebGLSharedObject(WebGLRenderingContextBase*);
 
-    virtual bool hasGroupOrContext() const override
+    bool hasGroupOrContext() const override
     {
         return m_contextGroup;
     }
 
-    virtual GraphicsContext3D* getAGraphicsContext3D() const override;
+    GraphicsContext3D* getAGraphicsContext3D() const override;
 
 private:
     WebGLContextGroup* m_contextGroup;
diff --git a/Source/WebCore/html/canvas/WebGLSync.h b/Source/WebCore/html/canvas/WebGLSync.h
index 9d8419c..3bb64ac 100644
--- a/Source/WebCore/html/canvas/WebGLSync.h
+++ b/Source/WebCore/html/canvas/WebGLSync.h
@@ -41,10 +41,10 @@
 protected:
     WebGLSync(WebGLRenderingContextBase*);
 
-    virtual void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
+    void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
 
 private:
-    virtual bool isSync() const override { return true; }
+    bool isSync() const override { return true; }
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/WebGLTexture.h b/Source/WebCore/html/canvas/WebGLTexture.h
index 133622d..5f4aeaf 100644
--- a/Source/WebCore/html/canvas/WebGLTexture.h
+++ b/Source/WebCore/html/canvas/WebGLTexture.h
@@ -83,7 +83,7 @@
 private:
     WebGLTexture(WebGLRenderingContextBase*);
 
-    virtual void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
+    void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
 
     class LevelInfo {
     public:
@@ -112,7 +112,7 @@
         GC3Denum type;
     };
 
-    virtual bool isTexture() const override { return true; }
+    bool isTexture() const override { return true; }
 
     void update();
 
diff --git a/Source/WebCore/html/canvas/WebGLTransformFeedback.h b/Source/WebCore/html/canvas/WebGLTransformFeedback.h
index d29bb36..9705bb7 100644
--- a/Source/WebCore/html/canvas/WebGLTransformFeedback.h
+++ b/Source/WebCore/html/canvas/WebGLTransformFeedback.h
@@ -41,10 +41,10 @@
 protected:
     WebGLTransformFeedback(WebGLRenderingContextBase*);
 
-    virtual void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
+    void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
 
 private:
-    virtual bool isTransformFeedback() const override { return true; }
+    bool isTransformFeedback() const override { return true; }
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/WebGLVertexArrayObject.h b/Source/WebCore/html/canvas/WebGLVertexArrayObject.h
index 45803da..9660607 100644
--- a/Source/WebCore/html/canvas/WebGLVertexArrayObject.h
+++ b/Source/WebCore/html/canvas/WebGLVertexArrayObject.h
@@ -46,7 +46,7 @@
 private:
     WebGLVertexArrayObject(WebGLRenderingContextBase*, VAOType);
     bool isTransformFeedback() const { return true; }
-    virtual void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
+    void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.h b/Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.h
index 3a4ef28..765c416 100644
--- a/Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.h
+++ b/Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.h
@@ -38,7 +38,7 @@
     virtual ~WebGLVertexArrayObjectOES();
 private:
     WebGLVertexArrayObjectOES(WebGLRenderingContextBase*, VAOType);
-    virtual void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
+    void deleteObjectImpl(GraphicsContext3D*, Platform3DObject) override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/parser/HTMLDocumentParser.h b/Source/WebCore/html/parser/HTMLDocumentParser.h
index ad8c078b..cfa549b 100644
--- a/Source/WebCore/html/parser/HTMLDocumentParser.h
+++ b/Source/WebCore/html/parser/HTMLDocumentParser.h
@@ -60,14 +60,14 @@
 
     // For HTMLTreeBuilder.
     HTMLTokenizer& tokenizer();
-    virtual TextPosition textPosition() const override final;
+    TextPosition textPosition() const override final;
 
 protected:
     explicit HTMLDocumentParser(HTMLDocument&);
 
-    virtual void insert(const SegmentedString&) override final;
-    virtual void append(RefPtr<StringImpl>&&) override;
-    virtual void finish() override;
+    void insert(const SegmentedString&) override final;
+    void append(RefPtr<StringImpl>&&) override;
+    void finish() override;
 
     HTMLTreeBuilder& treeBuilder();
 
@@ -76,28 +76,28 @@
     static Ref<HTMLDocumentParser> create(DocumentFragment&, Element& contextElement, ParserContentPolicy);
 
     // DocumentParser
-    virtual void detach() override final;
-    virtual bool hasInsertionPoint() override final;
-    virtual bool processingData() const override final;
-    virtual void prepareToStopParsing() override final;
-    virtual void stopParsing() override final;
-    virtual bool isWaitingForScripts() const override;
-    virtual bool isExecutingScript() const override final;
-    virtual void executeScriptsWaitingForStylesheets() override final;
-    virtual void suspendScheduledTasks() override final;
-    virtual void resumeScheduledTasks() override final;
+    void detach() override final;
+    bool hasInsertionPoint() override final;
+    bool processingData() const override final;
+    void prepareToStopParsing() override final;
+    void stopParsing() override final;
+    bool isWaitingForScripts() const override;
+    bool isExecutingScript() const override final;
+    void executeScriptsWaitingForStylesheets() override final;
+    void suspendScheduledTasks() override final;
+    void resumeScheduledTasks() override final;
 
-    virtual bool shouldAssociateConsoleMessagesWithTextPosition() const override final;
+    bool shouldAssociateConsoleMessagesWithTextPosition() const override final;
 
     // HTMLScriptRunnerHost
-    virtual void watchForLoad(CachedResource*) override final;
-    virtual void stopWatchingForLoad(CachedResource*) override final;
-    virtual HTMLInputStream& inputStream() override final;
-    virtual bool hasPreloadScanner() const override final;
-    virtual void appendCurrentInputStreamToPreloadScannerAndScan() override final;
+    void watchForLoad(CachedResource*) override final;
+    void stopWatchingForLoad(CachedResource*) override final;
+    HTMLInputStream& inputStream() override final;
+    bool hasPreloadScanner() const override final;
+    void appendCurrentInputStreamToPreloadScannerAndScan() override final;
 
     // CachedResourceClient
-    virtual void notifyFinished(CachedResource*) override final;
+    void notifyFinished(CachedResource*) override final;
 
     Document* contextForParsingSession();
 
diff --git a/Source/WebCore/html/parser/TextDocumentParser.h b/Source/WebCore/html/parser/TextDocumentParser.h
index d3dec3f..74a1d21 100644
--- a/Source/WebCore/html/parser/TextDocumentParser.h
+++ b/Source/WebCore/html/parser/TextDocumentParser.h
@@ -39,7 +39,7 @@
 private:
     explicit TextDocumentParser(HTMLDocument&);
 
-    virtual void append(RefPtr<StringImpl>&&) override;
+    void append(RefPtr<StringImpl>&&) override;
 
     void insertFakePreElement();
 
diff --git a/Source/WebCore/html/shadow/AutoFillButtonElement.h b/Source/WebCore/html/shadow/AutoFillButtonElement.h
index f416853..fc473dc 100644
--- a/Source/WebCore/html/shadow/AutoFillButtonElement.h
+++ b/Source/WebCore/html/shadow/AutoFillButtonElement.h
@@ -45,7 +45,7 @@
 private:
     explicit AutoFillButtonElement(Document&, AutoFillButtonOwner&);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 
     AutoFillButtonOwner& m_owner;
 };
diff --git a/Source/WebCore/html/shadow/DetailsMarkerControl.h b/Source/WebCore/html/shadow/DetailsMarkerControl.h
index 39717ab..301530d7 100644
--- a/Source/WebCore/html/shadow/DetailsMarkerControl.h
+++ b/Source/WebCore/html/shadow/DetailsMarkerControl.h
@@ -43,8 +43,8 @@
 private:
     DetailsMarkerControl(Document&);
 
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
-    virtual bool rendererIsNeeded(const RenderStyle&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    bool rendererIsNeeded(const RenderStyle&) override;
 };
 
 }
diff --git a/Source/WebCore/html/shadow/ImageControlsRootElement.h b/Source/WebCore/html/shadow/ImageControlsRootElement.h
index 14c1157..8ca2961 100644
--- a/Source/WebCore/html/shadow/ImageControlsRootElement.h
+++ b/Source/WebCore/html/shadow/ImageControlsRootElement.h
@@ -44,7 +44,7 @@
     explicit ImageControlsRootElement(Document&);
 
 private:
-    virtual bool isImageControlsRootElement() const override final { return true; }
+    bool isImageControlsRootElement() const override final { return true; }
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/shadow/MediaControlElementTypes.h b/Source/WebCore/html/shadow/MediaControlElementTypes.h
index 00f04a37..76ea49d 100644
--- a/Source/WebCore/html/shadow/MediaControlElementTypes.h
+++ b/Source/WebCore/html/shadow/MediaControlElementTypes.h
@@ -112,7 +112,7 @@
     explicit MediaControlDivElement(Document&, MediaControlElementType);
 
 private:
-    virtual bool isMediaControlElement() const override final { return MediaControlElement::isMediaControlElement(); }
+    bool isMediaControlElement() const override final { return MediaControlElement::isMediaControlElement(); }
 };
 
 // ----------------------------
@@ -122,7 +122,7 @@
     explicit MediaControlInputElement(Document&, MediaControlElementType);
 
 private:
-    virtual bool isMediaControlElement() const override final { return MediaControlElement::isMediaControlElement(); }
+    bool isMediaControlElement() const override final { return MediaControlElement::isMediaControlElement(); }
     virtual void updateDisplayType() { }
 };
 
@@ -146,46 +146,46 @@
 public:
     void changedMute();
 
-    virtual bool willRespondToMouseClickEvents() override { return true; }
+    bool willRespondToMouseClickEvents() override { return true; }
 
 protected:
     explicit MediaControlMuteButtonElement(Document&, MediaControlElementType);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 
 private:
-    virtual void updateDisplayType() override;
+    void updateDisplayType() override;
 };
 
 // ----------------------------
 
 class MediaControlSeekButtonElement : public MediaControlInputElement {
 public:
-    virtual bool willRespondToMouseClickEvents() override { return true; }
+    bool willRespondToMouseClickEvents() override { return true; }
 
 protected:
     explicit MediaControlSeekButtonElement(Document&, MediaControlElementType);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
     virtual bool isForwardButton() const = 0;
 
 private:
-    virtual void setActive(bool /*flag*/ = true, bool /*pause*/ = false) override final;
+    void setActive(bool /*flag*/ = true, bool /*pause*/ = false) override final;
 };
 
 // ----------------------------
 
 class MediaControlVolumeSliderElement : public MediaControlInputElement {
 public:
-    virtual bool willRespondToMouseMoveEvents() override;
-    virtual bool willRespondToMouseClickEvents() override;
+    bool willRespondToMouseMoveEvents() override;
+    bool willRespondToMouseClickEvents() override;
     void setVolume(double);
     void setClearMutedOnUserInteraction(bool);
 
 protected:
     explicit MediaControlVolumeSliderElement(Document&);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 
 private:
     bool m_clearMutedOnUserInteraction;
diff --git a/Source/WebCore/html/shadow/MediaControlElements.h b/Source/WebCore/html/shadow/MediaControlElements.h
index 86d9702..502a988 100644
--- a/Source/WebCore/html/shadow/MediaControlElements.h
+++ b/Source/WebCore/html/shadow/MediaControlElements.h
@@ -50,14 +50,14 @@
     void makeTransparent();
 
 #if !PLATFORM(IOS)
-    virtual bool willRespondToMouseMoveEvents() override { return true; }
-    virtual bool willRespondToMouseClickEvents() override { return true; }
+    bool willRespondToMouseMoveEvents() override { return true; }
+    bool willRespondToMouseClickEvents() override { return true; }
 #endif
 
 private:
     explicit MediaControlPanelElement(Document&);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 
     void startDrag(const LayoutPoint& eventLocation);
     void continueDrag(const LayoutPoint& eventLocation);
@@ -110,7 +110,7 @@
 private:
     explicit MediaControlTimelineContainerElement(Document&);
 
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 };
 
 // ----------------------------
@@ -120,15 +120,15 @@
     static Ref<MediaControlVolumeSliderContainerElement> create(Document&);
 
 #if !PLATFORM(IOS)
-    virtual bool willRespondToMouseMoveEvents() override { return true; }
+    bool willRespondToMouseMoveEvents() override { return true; }
 #endif
 
 private:
     explicit MediaControlVolumeSliderContainerElement(Document&);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 };
 
 // ----------------------------
@@ -153,13 +153,13 @@
     static Ref<MediaControlPanelMuteButtonElement> create(Document&, MediaControls*);
 
 #if !PLATFORM(IOS)
-    virtual bool willRespondToMouseMoveEvents() override { return true; }
+    bool willRespondToMouseMoveEvents() override { return true; }
 #endif
 
 private:
     explicit MediaControlPanelMuteButtonElement(Document&, MediaControls*);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 
     MediaControls* m_controls;
 };
@@ -182,15 +182,15 @@
     static Ref<MediaControlPlayButtonElement> create(Document&);
 
 #if !PLATFORM(IOS)
-    virtual bool willRespondToMouseClickEvents() override { return true; }
+    bool willRespondToMouseClickEvents() override { return true; }
 #endif
 
-    virtual void updateDisplayType() override;
+    void updateDisplayType() override;
 
 private:
     explicit MediaControlPlayButtonElement(Document&);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 };
 
 // ----------------------------
@@ -199,12 +199,12 @@
 public:
     static Ref<MediaControlOverlayPlayButtonElement> create(Document&);
 
-    virtual void updateDisplayType() override;
+    void updateDisplayType() override;
 
 private:
     explicit MediaControlOverlayPlayButtonElement(Document&);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 };
 
 // ----------------------------
@@ -216,7 +216,7 @@
 private:
     explicit MediaControlSeekForwardButtonElement(Document&);
 
-    virtual bool isForwardButton() const override { return true; }
+    bool isForwardButton() const override { return true; }
 };
 
 // ----------------------------
@@ -228,7 +228,7 @@
 private:
     explicit MediaControlSeekBackButtonElement(Document&);
 
-    virtual bool isForwardButton() const override { return false; }
+    bool isForwardButton() const override { return false; }
 };
 
 // ----------------------------
@@ -238,13 +238,13 @@
     static Ref<MediaControlRewindButtonElement> create(Document&);
 
 #if !PLATFORM(IOS)
-    virtual bool willRespondToMouseClickEvents() override { return true; }
+    bool willRespondToMouseClickEvents() override { return true; }
 #endif
 
 private:
     explicit MediaControlRewindButtonElement(Document&);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 };
 
 // ----------------------------
@@ -254,13 +254,13 @@
     static Ref<MediaControlReturnToRealtimeButtonElement> create(Document&);
 
 #if !PLATFORM(IOS)
-    virtual bool willRespondToMouseClickEvents() override { return true; }
+    bool willRespondToMouseClickEvents() override { return true; }
 #endif
 
 private:
     explicit MediaControlReturnToRealtimeButtonElement(Document&);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 };
 
 // ----------------------------
@@ -270,15 +270,15 @@
     static Ref<MediaControlToggleClosedCaptionsButtonElement> create(Document&, MediaControls*);
 
 #if !PLATFORM(IOS)
-    virtual bool willRespondToMouseClickEvents() override { return true; }
+    bool willRespondToMouseClickEvents() override { return true; }
 #endif
 
-    virtual void updateDisplayType() override;
+    void updateDisplayType() override;
 
 private:
     explicit MediaControlToggleClosedCaptionsButtonElement(Document&, MediaControls*);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 
 #if PLATFORM(COCOA) || PLATFORM(WIN) || PLATFORM(GTK)
     MediaControls* m_controls;
@@ -292,7 +292,7 @@
     static Ref<MediaControlClosedCaptionsContainerElement> create(Document&);
 
 #if !PLATFORM(IOS)
-    virtual bool willRespondToMouseClickEvents() override { return true; }
+    bool willRespondToMouseClickEvents() override { return true; }
 #endif
 
 private:
@@ -306,7 +306,7 @@
     static Ref<MediaControlClosedCaptionsTrackListElement> create(Document&, MediaControls*);
 
 #if !PLATFORM(IOS)
-    virtual bool willRespondToMouseClickEvents() override { return true; }
+    bool willRespondToMouseClickEvents() override { return true; }
 #endif
 
     void updateDisplay();
@@ -316,7 +316,7 @@
 
     void rebuildTrackListMenu();
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 
     typedef Vector<RefPtr<Element>> TrackMenuItems;
     TrackMenuItems m_menuItems;
@@ -334,7 +334,7 @@
     static Ref<MediaControlTimelineElement> create(Document&, MediaControls*);
 
 #if !PLATFORM(IOS)
-    virtual bool willRespondToMouseClickEvents() override;
+    bool willRespondToMouseClickEvents() override;
 #endif
 
     void setPosition(double);
@@ -343,7 +343,7 @@
 private:
     explicit MediaControlTimelineElement(Document&, MediaControls*);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 
     MediaControls* m_controls;
 };
@@ -355,7 +355,7 @@
     static Ref<MediaControlFullscreenButtonElement> create(Document&);
 
 #if !PLATFORM(IOS)
-    virtual bool willRespondToMouseClickEvents() override { return true; }
+    bool willRespondToMouseClickEvents() override { return true; }
 #endif
 
     void setIsFullscreen(bool);
@@ -363,7 +363,7 @@
 private:
     explicit MediaControlFullscreenButtonElement(Document&);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 };
 
 // ----------------------------
@@ -392,12 +392,12 @@
     static Ref<MediaControlFullscreenVolumeMinButtonElement> create(Document&);
 
 #if !PLATFORM(IOS)
-    virtual bool willRespondToMouseClickEvents() override { return true; }
+    bool willRespondToMouseClickEvents() override { return true; }
 #endif
 
 private:
     explicit MediaControlFullscreenVolumeMinButtonElement(Document&);
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 };
 
 // ----------------------------
@@ -407,13 +407,13 @@
     static Ref<MediaControlFullscreenVolumeMaxButtonElement> create(Document&);
 
 #if !PLATFORM(IOS)
-    virtual bool willRespondToMouseClickEvents() override { return true; }
+    bool willRespondToMouseClickEvents() override { return true; }
 #endif
 
 private:
     explicit MediaControlFullscreenVolumeMaxButtonElement(Document&);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 };
 
 
@@ -456,10 +456,10 @@
 
     explicit MediaControlTextTrackContainerElement(Document&);
 
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 
-    virtual RefPtr<Image> createTextTrackRepresentationImage() override;
-    virtual void textTrackRepresentationBoundsChanged(const IntRect&) override;
+    RefPtr<Image> createTextTrackRepresentationImage() override;
+    void textTrackRepresentationBoundsChanged(const IntRect&) override;
     void updateTextTrackRepresentation();
     void clearTextTrackRepresentation();
     void updateStyleForTextTrackRepresentation();
diff --git a/Source/WebCore/html/shadow/MediaControls.h b/Source/WebCore/html/shadow/MediaControls.h
index 41aee53..2ef37a9 100644
--- a/Source/WebCore/html/shadow/MediaControls.h
+++ b/Source/WebCore/html/shadow/MediaControls.h
@@ -94,7 +94,7 @@
     virtual void exitedFullscreen();
 
 #if !PLATFORM(IOS)
-    virtual bool willRespondToMouseMoveEvents() override { return true; }
+    bool willRespondToMouseMoveEvents() override { return true; }
 #endif
 
     virtual void hideFullscreenControlsTimerFired();
@@ -112,7 +112,7 @@
 protected:
     explicit MediaControls(Document&);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 
     virtual bool containsRelatedTarget(Event*);
 
@@ -142,7 +142,7 @@
     bool m_isMouseOverControls;
 
 private:
-    virtual bool isMediaControls() const override final { return true; }
+    bool isMediaControls() const override final { return true; }
 };
 
 inline MediaControls* toMediaControls(Node* node)
diff --git a/Source/WebCore/html/shadow/MediaControlsApple.h b/Source/WebCore/html/shadow/MediaControlsApple.h
index 2f84759..1ffcff0 100644
--- a/Source/WebCore/html/shadow/MediaControlsApple.h
+++ b/Source/WebCore/html/shadow/MediaControlsApple.h
@@ -45,7 +45,7 @@
             : 0;
     }
 
-    virtual bool operator==(const EventListener& other) override;
+    bool operator==(const EventListener& other) override;
 
 private:
     MediaControlsAppleEventListener(MediaControlsApple* mediaControls)
@@ -54,7 +54,7 @@
     {
     }
 
-    virtual void handleEvent(ScriptExecutionContext*, Event*) override;
+    void handleEvent(ScriptExecutionContext*, Event*) override;
 
     MediaControlsApple* m_mediaControls;
 };
@@ -64,29 +64,29 @@
     static PassRefPtr<MediaControlsApple> createControls(Document&);
 
     // MediaControls implementation.
-    virtual void setMediaController(MediaControllerInterface*) override;
+    void setMediaController(MediaControllerInterface*) override;
 
-    virtual void hide() override;
-    virtual void makeTransparent() override;
+    void hide() override;
+    void makeTransparent() override;
 
-    virtual void reset() override;
+    void reset() override;
 
-    virtual void changedMute() override;
-    virtual void changedVolume() override;
+    void changedMute() override;
+    void changedVolume() override;
 
-    virtual void enteredFullscreen() override;
-    virtual void exitedFullscreen() override;
+    void enteredFullscreen() override;
+    void exitedFullscreen() override;
 
-    virtual void reportedError() override;
-    virtual void loadedMetadata() override;
+    void reportedError() override;
+    void loadedMetadata() override;
 
-    virtual void showVolumeSlider() override;
-    virtual void updateCurrentTimeDisplay() override;
-    virtual void updateStatusDisplay() override;
+    void showVolumeSlider() override;
+    void updateCurrentTimeDisplay() override;
+    void updateStatusDisplay() override;
 
-    virtual void changedClosedCaptionsVisibility() override;
-    virtual void toggleClosedCaptionTrackList() override;
-    virtual void closedCaptionTracksChanged() override;
+    void changedClosedCaptionsVisibility() override;
+    void toggleClosedCaptionTrackList() override;
+    void closedCaptionTracksChanged() override;
 
     bool shouldClosedCaptionsContainerPreventPageScrolling(int wheelDeltaY);
     void handleClickEvent(Event*);
@@ -94,7 +94,7 @@
 private:
     MediaControlsApple(Document&);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
     PassRefPtr<MediaControlsAppleEventListener> eventListener();
 
     void showClosedCaptionTrackList();
diff --git a/Source/WebCore/html/shadow/MeterShadowElement.h b/Source/WebCore/html/shadow/MeterShadowElement.h
index 7706b1d..86ddb93 100644
--- a/Source/WebCore/html/shadow/MeterShadowElement.h
+++ b/Source/WebCore/html/shadow/MeterShadowElement.h
@@ -49,7 +49,7 @@
     MeterShadowElement(Document&);
 
 private:
-    virtual bool rendererIsNeeded(const RenderStyle&) override;
+    bool rendererIsNeeded(const RenderStyle&) override;
 };
 
 class MeterInnerElement final : public MeterShadowElement {
@@ -59,8 +59,8 @@
 private:
     MeterInnerElement(Document&);
 
-    virtual bool rendererIsNeeded(const RenderStyle&) override;
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    bool rendererIsNeeded(const RenderStyle&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 };
 
 inline Ref<MeterInnerElement> MeterInnerElement::create(Document& document)
diff --git a/Source/WebCore/html/shadow/ProgressShadowElement.h b/Source/WebCore/html/shadow/ProgressShadowElement.h
index 97f824f..f3f879d 100644
--- a/Source/WebCore/html/shadow/ProgressShadowElement.h
+++ b/Source/WebCore/html/shadow/ProgressShadowElement.h
@@ -47,7 +47,7 @@
     ProgressShadowElement(Document&);
 
 private:
-    virtual bool rendererIsNeeded(const RenderStyle&) override;
+    bool rendererIsNeeded(const RenderStyle&) override;
 };
 
 class ProgressInnerElement final : public ProgressShadowElement {
@@ -57,8 +57,8 @@
 private:
     ProgressInnerElement(Document&);
 
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
-    virtual bool rendererIsNeeded(const RenderStyle&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    bool rendererIsNeeded(const RenderStyle&) override;
 };
 
 inline Ref<ProgressInnerElement> ProgressInnerElement::create(Document& document)
diff --git a/Source/WebCore/html/shadow/SliderThumbElement.cpp b/Source/WebCore/html/shadow/SliderThumbElement.cpp
index 0418fdf..c734d1d 100644
--- a/Source/WebCore/html/shadow/SliderThumbElement.cpp
+++ b/Source/WebCore/html/shadow/SliderThumbElement.cpp
@@ -117,10 +117,10 @@
     }
 
 public:
-    virtual void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop, LogicalExtentComputedValues&) const override;
+    void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop, LogicalExtentComputedValues&) const override;
 
 private:
-    virtual void layout() override;
+    void layout() override;
     bool isFlexibleBoxImpl() const override { return true; }
 };
 
diff --git a/Source/WebCore/html/shadow/SliderThumbElement.h b/Source/WebCore/html/shadow/SliderThumbElement.h
index 1ec92f0..5ce80c3 100644
--- a/Source/WebCore/html/shadow/SliderThumbElement.h
+++ b/Source/WebCore/html/shadow/SliderThumbElement.h
@@ -61,25 +61,25 @@
 private:
     SliderThumbElement(Document&);
 
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 
-    virtual Ref<Element> cloneElementWithoutAttributesAndChildren(Document&) override;
-    virtual bool isDisabledFormControl() const override;
-    virtual bool matchesReadWritePseudoClass() const override;
-    virtual Element* focusDelegate() override;
+    Ref<Element> cloneElementWithoutAttributesAndChildren(Document&) override;
+    bool isDisabledFormControl() const override;
+    bool matchesReadWritePseudoClass() const override;
+    Element* focusDelegate() override;
 #if !PLATFORM(IOS)
-    virtual void defaultEventHandler(Event*) override;
-    virtual bool willRespondToMouseMoveEvents() override;
-    virtual bool willRespondToMouseClickEvents() override;
+    void defaultEventHandler(Event*) override;
+    bool willRespondToMouseMoveEvents() override;
+    bool willRespondToMouseClickEvents() override;
 #endif
 
 #if ENABLE(IOS_TOUCH_EVENTS)
-    virtual void didAttachRenderers() override;
+    void didAttachRenderers() override;
 #endif
-    virtual void willDetachRenderers() override;
+    void willDetachRenderers() override;
 
-    virtual RefPtr<RenderStyle> customStyleForRenderer(RenderStyle&, RenderStyle*) override;
-    virtual const AtomicString& shadowPseudoId() const override;
+    RefPtr<RenderStyle> customStyleForRenderer(RenderStyle&, RenderStyle*) override;
+    const AtomicString& shadowPseudoId() const override;
 
     void startDragging();
     void stopDragging();
@@ -123,7 +123,7 @@
     void updateAppearance(RenderStyle* parentStyle);
 
 private:
-    virtual bool isSliderThumb() const override;
+    bool isSliderThumb() const override;
 };
 
 // --------------------------------
@@ -134,9 +134,9 @@
 
 private:
     SliderContainerElement(Document&);
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
-    virtual RefPtr<RenderStyle> customStyleForRenderer(RenderStyle&, RenderStyle*) override;
-    virtual const AtomicString& shadowPseudoId() const override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    RefPtr<RenderStyle> customStyleForRenderer(RenderStyle&, RenderStyle*) override;
+    const AtomicString& shadowPseudoId() const override;
 
     AtomicString m_shadowPseudoId;
 };
diff --git a/Source/WebCore/html/shadow/SpinButtonElement.h b/Source/WebCore/html/shadow/SpinButtonElement.h
index 72995f6..36d4f6a 100644
--- a/Source/WebCore/html/shadow/SpinButtonElement.h
+++ b/Source/WebCore/html/shadow/SpinButtonElement.h
@@ -61,27 +61,27 @@
 
     void step(int amount);
     
-    virtual bool willRespondToMouseMoveEvents() override;
-    virtual bool willRespondToMouseClickEvents() override;
+    bool willRespondToMouseMoveEvents() override;
+    bool willRespondToMouseClickEvents() override;
 
     void forwardEvent(Event*);
 
 private:
     SpinButtonElement(Document&, SpinButtonOwner&);
 
-    virtual void willDetachRenderers() override;
-    virtual bool isSpinButtonElement() const override { return true; }
-    virtual bool isDisabledFormControl() const override { return shadowHost() && shadowHost()->isDisabledFormControl(); }
-    virtual bool matchesReadWritePseudoClass() const override;
-    virtual void defaultEventHandler(Event*) override;
-    virtual void willOpenPopup() override;
+    void willDetachRenderers() override;
+    bool isSpinButtonElement() const override { return true; }
+    bool isDisabledFormControl() const override { return shadowHost() && shadowHost()->isDisabledFormControl(); }
+    bool matchesReadWritePseudoClass() const override;
+    void defaultEventHandler(Event*) override;
+    void willOpenPopup() override;
     void doStepAction(int);
     void startRepeatingTimer();
     void stopRepeatingTimer();
     void repeatingTimerFired();
-    virtual void setHovered(bool = true) override;
+    void setHovered(bool = true) override;
     bool shouldRespondToMouseEvents();
-    virtual bool isMouseFocusable() const override { return false; }
+    bool isMouseFocusable() const override { return false; }
 
     SpinButtonOwner* m_spinButtonOwner;
     bool m_capturing;
diff --git a/Source/WebCore/html/shadow/TextControlInnerElements.h b/Source/WebCore/html/shadow/TextControlInnerElements.h
index e5c809e..33d120c 100644
--- a/Source/WebCore/html/shadow/TextControlInnerElements.h
+++ b/Source/WebCore/html/shadow/TextControlInnerElements.h
@@ -39,7 +39,7 @@
     static Ref<TextControlInnerContainer> create(Document&);
 protected:
     TextControlInnerContainer(Document&);
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 };
 
 class TextControlInnerElement final : public HTMLDivElement {
@@ -48,54 +48,54 @@
 
 protected:
     TextControlInnerElement(Document&);
-    virtual RefPtr<RenderStyle> customStyleForRenderer(RenderStyle& parentStyle, RenderStyle* shadowHostStyle) override;
+    RefPtr<RenderStyle> customStyleForRenderer(RenderStyle& parentStyle, RenderStyle* shadowHostStyle) override;
 
 private:
-    virtual bool isMouseFocusable() const override { return false; }
+    bool isMouseFocusable() const override { return false; }
 };
 
 class TextControlInnerTextElement final : public HTMLDivElement {
 public:
     static Ref<TextControlInnerTextElement> create(Document&);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 
     RenderTextControlInnerBlock* renderer() const;
 
 private:
     TextControlInnerTextElement(Document&);
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
-    virtual RefPtr<RenderStyle> customStyleForRenderer(RenderStyle& parentStyle, RenderStyle* shadowHostStyle) override;
-    virtual bool isMouseFocusable() const override { return false; }
-    virtual bool isTextControlInnerTextElement() const override { return true; }
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    RefPtr<RenderStyle> customStyleForRenderer(RenderStyle& parentStyle, RenderStyle* shadowHostStyle) override;
+    bool isMouseFocusable() const override { return false; }
+    bool isTextControlInnerTextElement() const override { return true; }
 };
 
 class SearchFieldResultsButtonElement final : public HTMLDivElement {
 public:
     static Ref<SearchFieldResultsButtonElement> create(Document&);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 #if !PLATFORM(IOS)
-    virtual bool willRespondToMouseClickEvents() override;
+    bool willRespondToMouseClickEvents() override;
 #endif
 
 private:
     SearchFieldResultsButtonElement(Document&);
-    virtual bool isMouseFocusable() const override { return false; }
+    bool isMouseFocusable() const override { return false; }
 };
 
 class SearchFieldCancelButtonElement final : public HTMLDivElement {
 public:
     static Ref<SearchFieldCancelButtonElement> create(Document&);
 
-    virtual void defaultEventHandler(Event*) override;
+    void defaultEventHandler(Event*) override;
 #if !PLATFORM(IOS)
-    virtual bool willRespondToMouseClickEvents() override;
+    bool willRespondToMouseClickEvents() override;
 #endif
 
 private:
     SearchFieldCancelButtonElement(Document&);
-    virtual bool isMouseFocusable() const override { return false; }
+    bool isMouseFocusable() const override { return false; }
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.cpp b/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.cpp
index 3cd1ff5..2c06467 100644
--- a/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.cpp
+++ b/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.cpp
@@ -48,11 +48,11 @@
     virtual ~RenderImageControlsButton();
 
 private:
-    virtual void updateLogicalWidth() override;
-    virtual void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop, LogicalExtentComputedValues&) const override;
+    void updateLogicalWidth() override;
+    void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop, LogicalExtentComputedValues&) const override;
 
-    virtual const char* renderName() const override { return "RenderImageControlsButton"; }
-    virtual bool requiresForcedStyleRecalcPropagation() const override { return true; }
+    const char* renderName() const override { return "RenderImageControlsButton"; }
+    bool requiresForcedStyleRecalcPropagation() const override { return true; }
 };
 
 RenderImageControlsButton::RenderImageControlsButton(HTMLElement& element, Ref<RenderStyle>&& style)
diff --git a/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.h b/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.h
index 134fc20..7475ef6 100644
--- a/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.h
+++ b/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.h
@@ -41,10 +41,10 @@
 private:
     ImageControlsButtonElementMac(Document&);
 
-    virtual void defaultEventHandler(Event*) override;
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    void defaultEventHandler(Event*) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 
-    virtual bool isImageControlsButtonElement() const override { return true; }
+    bool isImageControlsButtonElement() const override { return true; }
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp b/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp
index 06bfc5d..1c20412 100644
--- a/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp
+++ b/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp
@@ -42,11 +42,11 @@
     virtual ~RenderImageControls();
 
 private:
-    virtual void updateLogicalWidth() override;
-    virtual void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop, LogicalExtentComputedValues&) const override;
+    void updateLogicalWidth() override;
+    void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop, LogicalExtentComputedValues&) const override;
 
-    virtual const char* renderName() const override { return "RenderImageControls"; }
-    virtual bool requiresForcedStyleRecalcPropagation() const override { return true; }
+    const char* renderName() const override { return "RenderImageControls"; }
+    bool requiresForcedStyleRecalcPropagation() const override { return true; }
 };
 
 RenderImageControls::RenderImageControls(HTMLElement& element, Ref<RenderStyle>&& style)
diff --git a/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.h b/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.h
index e23f4e1..793fa76 100644
--- a/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.h
+++ b/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.h
@@ -40,7 +40,7 @@
 private:
     ImageControlsRootElementMac(Document&);
 
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/track/AudioTrack.h b/Source/WebCore/html/track/AudioTrack.h
index bff6071..08eaebf 100644
--- a/Source/WebCore/html/track/AudioTrack.h
+++ b/Source/WebCore/html/track/AudioTrack.h
@@ -61,12 +61,12 @@
     static const AtomicString& mainDescKeyword();
     static const AtomicString& translationKeyword();
     static const AtomicString& commentaryKeyword();
-    virtual const AtomicString& defaultKindKeyword() const override { return emptyAtom; }
+    const AtomicString& defaultKindKeyword() const override { return emptyAtom; }
 
-    virtual bool enabled() const override { return m_enabled; }
+    bool enabled() const override { return m_enabled; }
     void setEnabled(const bool);
 
-    virtual void clearClient() override { m_client = nullptr; }
+    void clearClient() override { m_client = nullptr; }
     AudioTrackClient* client() const { return m_client; }
 
     size_t inbandTrackIndex();
@@ -77,7 +77,7 @@
     AudioTrack(AudioTrackClient*, PassRefPtr<AudioTrackPrivate>);
 
 private:
-    virtual bool isValidKind(const AtomicString&) const override;
+    bool isValidKind(const AtomicString&) const override;
 
     // AudioTrackPrivateClient
     void enabledChanged(AudioTrackPrivate*, bool) override;
diff --git a/Source/WebCore/html/track/AudioTrackList.h b/Source/WebCore/html/track/AudioTrackList.h
index 73fc04a..583bff7 100644
--- a/Source/WebCore/html/track/AudioTrackList.h
+++ b/Source/WebCore/html/track/AudioTrackList.h
@@ -49,7 +49,7 @@
     void append(PassRefPtr<AudioTrack>);
 
     // EventTarget
-    virtual EventTargetInterface eventTargetInterface() const override;
+    EventTargetInterface eventTargetInterface() const override;
 
 private:
     AudioTrackList(HTMLMediaElement*, ScriptExecutionContext*);
diff --git a/Source/WebCore/html/track/DataCue.h b/Source/WebCore/html/track/DataCue.h
index ef52e73..200794d 100644
--- a/Source/WebCore/html/track/DataCue.h
+++ b/Source/WebCore/html/track/DataCue.h
@@ -73,7 +73,7 @@
 #endif
 
     virtual ~DataCue();
-    virtual CueType cueType() const override { return Data; }
+    CueType cueType() const override { return Data; }
 
     PassRefPtr<ArrayBuffer> data() const;
     void setData(ArrayBuffer*, ExceptionCode&);
@@ -88,9 +88,9 @@
     void setType(const String& type) { m_type = type; }
 #endif
 
-    virtual bool isEqual(const TextTrackCue&, CueMatchRules) const override;
-    virtual bool cueContentsMatch(const TextTrackCue&) const override;
-    virtual bool doesExtendCue(const TextTrackCue&) const override;
+    bool isEqual(const TextTrackCue&, CueMatchRules) const override;
+    bool cueContentsMatch(const TextTrackCue&) const override;
+    bool doesExtendCue(const TextTrackCue&) const override;
 
 protected:
     DataCue(ScriptExecutionContext&, const MediaTime& start, const MediaTime& end, ArrayBuffer*, const String&, ExceptionCode&);
diff --git a/Source/WebCore/html/track/InbandDataTextTrack.h b/Source/WebCore/html/track/InbandDataTextTrack.h
index e95e76c..8be10ea30 100644
--- a/Source/WebCore/html/track/InbandDataTextTrack.h
+++ b/Source/WebCore/html/track/InbandDataTextTrack.h
@@ -50,13 +50,13 @@
 private:
     InbandDataTextTrack(ScriptExecutionContext*, TextTrackClient*, PassRefPtr<InbandTextTrackPrivate>);
 
-    virtual void addDataCue(InbandTextTrackPrivate*, const MediaTime& start, const MediaTime& end, const void*, unsigned) override;
+    void addDataCue(InbandTextTrackPrivate*, const MediaTime& start, const MediaTime& end, const void*, unsigned) override;
 
 #if ENABLE(DATACUE_VALUE)
-    virtual void addDataCue(InbandTextTrackPrivate*, const MediaTime& start, const MediaTime& end, PassRefPtr<SerializedPlatformRepresentation>, const String&) override;
-    virtual void updateDataCue(InbandTextTrackPrivate*, const MediaTime& start, const MediaTime& end, PassRefPtr<SerializedPlatformRepresentation>) override;
-    virtual void removeDataCue(InbandTextTrackPrivate*, const MediaTime& start, const MediaTime& end, PassRefPtr<SerializedPlatformRepresentation>) override;
-    virtual void removeCue(TextTrackCue*, ExceptionCode&) override;
+    void addDataCue(InbandTextTrackPrivate*, const MediaTime& start, const MediaTime& end, PassRefPtr<SerializedPlatformRepresentation>, const String&) override;
+    void updateDataCue(InbandTextTrackPrivate*, const MediaTime& start, const MediaTime& end, PassRefPtr<SerializedPlatformRepresentation>) override;
+    void removeDataCue(InbandTextTrackPrivate*, const MediaTime& start, const MediaTime& end, PassRefPtr<SerializedPlatformRepresentation>) override;
+    void removeCue(TextTrackCue*, ExceptionCode&) override;
 
     HashMap<RefPtr<SerializedPlatformRepresentation>, RefPtr<DataCue>> m_incompleteCueMap;
 #endif
diff --git a/Source/WebCore/html/track/InbandGenericTextTrack.h b/Source/WebCore/html/track/InbandGenericTextTrack.h
index 90a0de8..72b05fd 100644
--- a/Source/WebCore/html/track/InbandGenericTextTrack.h
+++ b/Source/WebCore/html/track/InbandGenericTextTrack.h
@@ -68,21 +68,21 @@
 private:
     InbandGenericTextTrack(ScriptExecutionContext*, TextTrackClient*, PassRefPtr<InbandTextTrackPrivate>);
 
-    virtual void addGenericCue(InbandTextTrackPrivate*, PassRefPtr<GenericCueData>) override;
-    virtual void updateGenericCue(InbandTextTrackPrivate*, GenericCueData*) override;
-    virtual void removeGenericCue(InbandTextTrackPrivate*, GenericCueData*) override;
-    virtual void removeCue(TextTrackCue*, ExceptionCode&) override;
+    void addGenericCue(InbandTextTrackPrivate*, PassRefPtr<GenericCueData>) override;
+    void updateGenericCue(InbandTextTrackPrivate*, GenericCueData*) override;
+    void removeGenericCue(InbandTextTrackPrivate*, GenericCueData*) override;
+    void removeCue(TextTrackCue*, ExceptionCode&) override;
 
     PassRefPtr<TextTrackCueGeneric> createCue(PassRefPtr<GenericCueData>);
     void updateCueFromCueData(TextTrackCueGeneric*, GenericCueData*);
 
     WebVTTParser& parser();
-    virtual void parseWebVTTCueData(InbandTextTrackPrivate*, const ISOWebVTTCue&) override;
-    virtual void parseWebVTTFileHeader(InbandTextTrackPrivate*, String) override;
+    void parseWebVTTCueData(InbandTextTrackPrivate*, const ISOWebVTTCue&) override;
+    void parseWebVTTFileHeader(InbandTextTrackPrivate*, String) override;
 
-    virtual void newCuesParsed() override;
-    virtual void newRegionsParsed() override;
-    virtual void fileFailedToParse() override;
+    void newCuesParsed() override;
+    void newRegionsParsed() override;
+    void fileFailedToParse() override;
 
     GenericTextTrackCueMap m_cueMap;
     std::unique_ptr<WebVTTParser> m_webVTTParser;
diff --git a/Source/WebCore/html/track/InbandTextTrack.h b/Source/WebCore/html/track/InbandTextTrack.h
index fd1a9e3..9fbcd45 100644
--- a/Source/WebCore/html/track/InbandTextTrack.h
+++ b/Source/WebCore/html/track/InbandTextTrack.h
@@ -41,15 +41,15 @@
     static PassRefPtr<InbandTextTrack> create(ScriptExecutionContext*, TextTrackClient*, PassRefPtr<InbandTextTrackPrivate>);
     virtual ~InbandTextTrack();
 
-    virtual bool isClosedCaptions() const override;
-    virtual bool isSDH() const override;
-    virtual bool containsOnlyForcedSubtitles() const override;
-    virtual bool isMainProgramContent() const override;
-    virtual bool isEasyToRead() const override;
-    virtual void setMode(const AtomicString&) override;
+    bool isClosedCaptions() const override;
+    bool isSDH() const override;
+    bool containsOnlyForcedSubtitles() const override;
+    bool isMainProgramContent() const override;
+    bool isEasyToRead() const override;
+    void setMode(const AtomicString&) override;
     size_t inbandTrackIndex();
 
-    virtual AtomicString inBandMetadataTrackDispatchType() const override;
+    AtomicString inBandMetadataTrackDispatchType() const override;
 
     void setPrivate(PassRefPtr<InbandTextTrackPrivate>);
 
@@ -62,29 +62,29 @@
     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;
-    virtual void willRemove(TrackPrivateBase*) override;
+    bool isInband() const override final { return true; }
+    void idChanged(TrackPrivateBase*, const AtomicString&) override;
+    void labelChanged(TrackPrivateBase*, const AtomicString&) override;
+    void languageChanged(TrackPrivateBase*, const AtomicString&) override;
+    void willRemove(TrackPrivateBase*) override;
 
-    virtual void addDataCue(InbandTextTrackPrivate*, const MediaTime&, const MediaTime&, const void*, unsigned) override { ASSERT_NOT_REACHED(); }
+    void addDataCue(InbandTextTrackPrivate*, const MediaTime&, const MediaTime&, const void*, unsigned) override { ASSERT_NOT_REACHED(); }
 
 #if ENABLE(DATACUE_VALUE)
-    virtual void addDataCue(InbandTextTrackPrivate*, const MediaTime&, const MediaTime&, PassRefPtr<SerializedPlatformRepresentation>, const String&) override { ASSERT_NOT_REACHED(); }
-    virtual void updateDataCue(InbandTextTrackPrivate*, const MediaTime&, const MediaTime&, PassRefPtr<SerializedPlatformRepresentation>) override  { ASSERT_NOT_REACHED(); }
-    virtual void removeDataCue(InbandTextTrackPrivate*, const MediaTime&, const MediaTime&, PassRefPtr<SerializedPlatformRepresentation>) override  { ASSERT_NOT_REACHED(); }
+    void addDataCue(InbandTextTrackPrivate*, const MediaTime&, const MediaTime&, PassRefPtr<SerializedPlatformRepresentation>, const String&) override { ASSERT_NOT_REACHED(); }
+    void updateDataCue(InbandTextTrackPrivate*, const MediaTime&, const MediaTime&, PassRefPtr<SerializedPlatformRepresentation>) override  { ASSERT_NOT_REACHED(); }
+    void removeDataCue(InbandTextTrackPrivate*, const MediaTime&, const MediaTime&, PassRefPtr<SerializedPlatformRepresentation>) override  { ASSERT_NOT_REACHED(); }
 #endif
 
-    virtual void addGenericCue(InbandTextTrackPrivate*, PassRefPtr<GenericCueData>) override { ASSERT_NOT_REACHED(); }
-    virtual void updateGenericCue(InbandTextTrackPrivate*, GenericCueData*) override { ASSERT_NOT_REACHED(); }
-    virtual void removeGenericCue(InbandTextTrackPrivate*, GenericCueData*) override { ASSERT_NOT_REACHED(); }
+    void addGenericCue(InbandTextTrackPrivate*, PassRefPtr<GenericCueData>) override { ASSERT_NOT_REACHED(); }
+    void updateGenericCue(InbandTextTrackPrivate*, GenericCueData*) override { ASSERT_NOT_REACHED(); }
+    void removeGenericCue(InbandTextTrackPrivate*, GenericCueData*) override { ASSERT_NOT_REACHED(); }
 
-    virtual void parseWebVTTFileHeader(InbandTextTrackPrivate*, String) override { ASSERT_NOT_REACHED(); }
-    virtual void parseWebVTTCueData(InbandTextTrackPrivate*, const char*, unsigned) override { ASSERT_NOT_REACHED(); }
-    virtual void parseWebVTTCueData(InbandTextTrackPrivate*, const ISOWebVTTCue&) override { ASSERT_NOT_REACHED(); }
+    void parseWebVTTFileHeader(InbandTextTrackPrivate*, String) override { ASSERT_NOT_REACHED(); }
+    void parseWebVTTCueData(InbandTextTrackPrivate*, const char*, unsigned) override { ASSERT_NOT_REACHED(); }
+    void parseWebVTTCueData(InbandTextTrackPrivate*, const ISOWebVTTCue&) override { ASSERT_NOT_REACHED(); }
 
-    virtual MediaTime startTimeVariance() const override;
+    MediaTime startTimeVariance() const override;
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/html/track/InbandWebVTTTextTrack.h b/Source/WebCore/html/track/InbandWebVTTTextTrack.h
index 9e5442c..d83b613 100644
--- a/Source/WebCore/html/track/InbandWebVTTTextTrack.h
+++ b/Source/WebCore/html/track/InbandWebVTTTextTrack.h
@@ -44,12 +44,12 @@
     InbandWebVTTTextTrack(ScriptExecutionContext*, TextTrackClient*, PassRefPtr<InbandTextTrackPrivate>);
 
     WebVTTParser& parser();
-    virtual void parseWebVTTCueData(InbandTextTrackPrivate*, const char* data, unsigned length) override;
-    virtual void parseWebVTTCueData(InbandTextTrackPrivate*, const ISOWebVTTCue&) override;
+    void parseWebVTTCueData(InbandTextTrackPrivate*, const char* data, unsigned length) override;
+    void parseWebVTTCueData(InbandTextTrackPrivate*, const ISOWebVTTCue&) override;
 
-    virtual void newCuesParsed() override;
-    virtual void newRegionsParsed() override;
-    virtual void fileFailedToParse() override;
+    void newCuesParsed() override;
+    void newRegionsParsed() override;
+    void fileFailedToParse() override;
 
     std::unique_ptr<WebVTTParser> m_webVTTParser;
 };
diff --git a/Source/WebCore/html/track/LoadableTextTrack.h b/Source/WebCore/html/track/LoadableTextTrack.h
index 9c74ce6..d3b7e8c 100644
--- a/Source/WebCore/html/track/LoadableTextTrack.h
+++ b/Source/WebCore/html/track/LoadableTextTrack.h
@@ -48,23 +48,23 @@
 
     void scheduleLoad(const URL&);
 
-    virtual void clearClient() override;
+    void clearClient() override;
 
-    virtual AtomicString id() const override;
+    AtomicString id() const override;
 
     size_t trackElementIndex();
     HTMLTrackElement* trackElement() { return m_trackElement; }
     void setTrackElement(HTMLTrackElement*);
-    virtual Element* element() override;
+    Element* element() override;
 
-    virtual bool isDefault() const override { return m_isDefault; }
-    virtual void setIsDefault(bool isDefault) override  { m_isDefault = isDefault; }
+    bool isDefault() const override { return m_isDefault; }
+    void setIsDefault(bool isDefault) override  { m_isDefault = isDefault; }
 
 private:
     // TextTrackLoaderClient
-    virtual void newCuesAvailable(TextTrackLoader*) override;
-    virtual void cueLoadingCompleted(TextTrackLoader*, bool loadingFailed) override;
-    virtual void newRegionsAvailable(TextTrackLoader*) override;
+    void newCuesAvailable(TextTrackLoader*) override;
+    void cueLoadingCompleted(TextTrackLoader*, bool loadingFailed) override;
+    void newRegionsAvailable(TextTrackLoader*) override;
 
     LoadableTextTrack(HTMLTrackElement*, const String& kind, const String& label, const String& language);
 
diff --git a/Source/WebCore/html/track/TextTrack.h b/Source/WebCore/html/track/TextTrack.h
index 6a8cda1..c7b4a90 100644
--- a/Source/WebCore/html/track/TextTrack.h
+++ b/Source/WebCore/html/track/TextTrack.h
@@ -63,8 +63,8 @@
     }
     virtual ~TextTrack();
 
-    virtual EventTargetInterface eventTargetInterface() const override final { return TextTrackEventTargetInterfaceType; }
-    virtual ScriptExecutionContext* scriptExecutionContext() const override final { return m_scriptExecutionContext; }
+    EventTargetInterface eventTargetInterface() const override final { return TextTrackEventTargetInterfaceType; }
+    ScriptExecutionContext* scriptExecutionContext() const override final { return m_scriptExecutionContext; }
 
     static TextTrack* captionMenuOffItem();
     static TextTrack* captionMenuAutomaticItem();
@@ -75,14 +75,14 @@
     static const AtomicString& chaptersKeyword();
     static const AtomicString& metadataKeyword();
     static const AtomicString& forcedKeyword();
-    virtual const AtomicString& defaultKindKeyword() const override { return subtitlesKeyword(); }
+    const AtomicString& defaultKindKeyword() const override { return subtitlesKeyword(); }
     static bool isValidKindKeyword(const AtomicString&);
 
     static const AtomicString& disabledKeyword();
     static const AtomicString& hiddenKeyword();
     static const AtomicString& showingKeyword();
 
-    virtual void setKind(const AtomicString&) override;
+    void setKind(const AtomicString&) override;
 
     virtual AtomicString inBandMetadataTrackDispatchType() const { return emptyString(); }
 
@@ -96,7 +96,7 @@
     TextTrackCueList* cues();
     TextTrackCueList* activeCues() const;
 
-    virtual void clearClient() override { m_client = 0; }
+    void clearClient() override { m_client = 0; }
     TextTrackClient* client() { return m_client; }
 
     void addCue(PassRefPtr<TextTrackCue>, ExceptionCode&);
@@ -135,7 +135,7 @@
     void removeAllCues();
 
 #if ENABLE(MEDIA_SOURCE)
-    virtual void setLanguage(const AtomicString&) override;
+    void setLanguage(const AtomicString&) override;
 #endif
 
     virtual bool isInband() const { return false; }
@@ -151,12 +151,12 @@
     RefPtr<TextTrackCueList> m_cues;
 
 private:
-    virtual bool isValidKind(const AtomicString&) const override;
+    bool isValidKind(const AtomicString&) const override;
 
-    virtual bool enabled() const override;
+    bool enabled() const override;
 
-    virtual void refEventTarget() override final { ref(); }
-    virtual void derefEventTarget() override final { deref(); }
+    void refEventTarget() override final { ref(); }
+    void derefEventTarget() override final { deref(); }
 
     VTTRegionList* ensureVTTRegionList();
     RefPtr<VTTRegionList> m_regions;
diff --git a/Source/WebCore/html/track/TextTrackCue.h b/Source/WebCore/html/track/TextTrackCue.h
index 7e5923c..520a9cc 100644
--- a/Source/WebCore/html/track/TextTrackCue.h
+++ b/Source/WebCore/html/track/TextTrackCue.h
@@ -80,13 +80,13 @@
     void invalidateCueIndex();
 
     using EventTarget::dispatchEvent;
-    virtual bool dispatchEvent(Event&) override;
+    bool dispatchEvent(Event&) override;
 
     bool isActive();
     virtual void setIsActive(bool);
 
-    virtual EventTargetInterface eventTargetInterface() const override final { return TextTrackCueEventTargetInterfaceType; }
-    virtual ScriptExecutionContext* scriptExecutionContext() const override final { return &m_scriptExecutionContext; }
+    EventTargetInterface eventTargetInterface() const override final { return TextTrackCueEventTargetInterfaceType; }
+    ScriptExecutionContext* scriptExecutionContext() const override final { return &m_scriptExecutionContext; }
 
     virtual bool isOrderedBefore(const TextTrackCue*) const;
     virtual bool isPositionedAbove(const TextTrackCue* cue) const { return isOrderedBefore(cue); }
@@ -122,8 +122,8 @@
 
 private:
 
-    virtual void refEventTarget() override final { ref(); }
-    virtual void derefEventTarget() override final { deref(); }
+    void refEventTarget() override final { ref(); }
+    void derefEventTarget() override final { deref(); }
 
     String m_id;
     MediaTime m_startTime;
diff --git a/Source/WebCore/html/track/TextTrackCueGeneric.cpp b/Source/WebCore/html/track/TextTrackCueGeneric.cpp
index 1c2d766..f66ec74 100644
--- a/Source/WebCore/html/track/TextTrackCueGeneric.cpp
+++ b/Source/WebCore/html/track/TextTrackCueGeneric.cpp
@@ -54,7 +54,7 @@
         return adoptRef(*new TextTrackCueGenericBoxElement(document, cue));
     }
     
-    virtual void applyCSSProperties(const IntSize&) override;
+    void applyCSSProperties(const IntSize&) override;
     
 private:
     TextTrackCueGenericBoxElement(Document&, VTTCue&);
diff --git a/Source/WebCore/html/track/TextTrackCueGeneric.h b/Source/WebCore/html/track/TextTrackCueGeneric.h
index 334c47e..3f35672 100644
--- a/Source/WebCore/html/track/TextTrackCueGeneric.h
+++ b/Source/WebCore/html/track/TextTrackCueGeneric.h
@@ -45,10 +45,10 @@
     
     virtual ~TextTrackCueGeneric() { }
 
-    virtual PassRefPtr<VTTCueBox> createDisplayTree() override;
+    PassRefPtr<VTTCueBox> createDisplayTree() override;
 
-    virtual void setLine(double, ExceptionCode&) override;
-    virtual void setPosition(double, ExceptionCode&) override;
+    void setLine(double, ExceptionCode&) override;
+    void setPosition(double, ExceptionCode&) override;
 
     bool useDefaultPosition() const { return m_defaultPosition; }
     
@@ -70,17 +70,17 @@
     Color highlightColor() const { return m_highlightColor; }
     void setHighlightColor(RGBA32 color) { m_highlightColor.setRGB(color); }
     
-    virtual void setFontSize(int, const IntSize&, bool important) override;
+    void setFontSize(int, const IntSize&, bool important) override;
 
-    virtual bool isEqual(const TextTrackCue&, CueMatchRules) const override;
-    virtual bool cueContentsMatch(const TextTrackCue&) const override;
-    virtual bool doesExtendCue(const TextTrackCue&) const override;
+    bool isEqual(const TextTrackCue&, CueMatchRules) const override;
+    bool cueContentsMatch(const TextTrackCue&) const override;
+    bool doesExtendCue(const TextTrackCue&) const override;
 
-    virtual TextTrackCue::CueType cueType() const override { return TextTrackCue::Generic; }
+    TextTrackCue::CueType cueType() const override { return TextTrackCue::Generic; }
 
 private:
-    virtual bool isOrderedBefore(const TextTrackCue*) const override;
-    virtual bool isPositionedAbove(const TextTrackCue*) const override;
+    bool isOrderedBefore(const TextTrackCue*) const override;
+    bool isPositionedAbove(const TextTrackCue*) const override;
 
     TextTrackCueGeneric(ScriptExecutionContext&, const MediaTime& start, const MediaTime& end, const String&);
     
diff --git a/Source/WebCore/html/track/TextTrackList.h b/Source/WebCore/html/track/TextTrackList.h
index 6aa00e0..041e218 100644
--- a/Source/WebCore/html/track/TextTrackList.h
+++ b/Source/WebCore/html/track/TextTrackList.h
@@ -42,20 +42,20 @@
     }
     virtual ~TextTrackList();
 
-    virtual unsigned length() const override;
+    unsigned length() const override;
     int getTrackIndex(TextTrack*);
     int getTrackIndexRelativeToRenderedTracks(TextTrack*);
-    virtual bool contains(TrackBase*) const override;
+    bool contains(TrackBase*) const override;
 
     TextTrack* item(unsigned index) const;
     TextTrack* getTrackById(const AtomicString&);
     TextTrack* lastItem() const { return item(length() - 1); }
 
     void append(PassRefPtr<TextTrack>);
-    virtual void remove(TrackBase*, bool scheduleEvent = true) override;
+    void remove(TrackBase*, bool scheduleEvent = true) override;
 
     // EventTarget
-    virtual EventTargetInterface eventTargetInterface() const override;
+    EventTargetInterface eventTargetInterface() const override;
 
 private:
     TextTrackList(HTMLMediaElement*, ScriptExecutionContext*);
diff --git a/Source/WebCore/html/track/TrackEvent.h b/Source/WebCore/html/track/TrackEvent.h
index ed1b9e5..466d9f8 100644
--- a/Source/WebCore/html/track/TrackEvent.h
+++ b/Source/WebCore/html/track/TrackEvent.h
@@ -51,7 +51,7 @@
         return adoptRef(*new TrackEvent(type, initializer));
     }
 
-    virtual EventInterface eventInterface() const override;
+    EventInterface eventInterface() const override;
 
     TrackBase* track() const { return m_track.get(); }
 
diff --git a/Source/WebCore/html/track/TrackListBase.h b/Source/WebCore/html/track/TrackListBase.h
index 84a5cbc..b4f006d 100644
--- a/Source/WebCore/html/track/TrackListBase.h
+++ b/Source/WebCore/html/track/TrackListBase.h
@@ -51,10 +51,10 @@
     virtual void remove(TrackBase*, bool scheduleEvent = true);
 
     // EventTarget
-    virtual EventTargetInterface eventTargetInterface() const override = 0;
+    EventTargetInterface eventTargetInterface() const override = 0;
     using RefCounted<TrackListBase>::ref;
     using RefCounted<TrackListBase>::deref;
-    virtual ScriptExecutionContext* scriptExecutionContext() const override final { return m_context; }
+    ScriptExecutionContext* scriptExecutionContext() const override final { return m_context; }
 
     void clearElement() { m_element = 0; }
     Element* element() const;
@@ -77,8 +77,8 @@
     void scheduleTrackEvent(const AtomicString& eventName, PassRefPtr<TrackBase>);
 
     // EventTarget
-    virtual void refEventTarget() override final { ref(); }
-    virtual void derefEventTarget() override final { deref(); }
+    void refEventTarget() override final { ref(); }
+    void derefEventTarget() override final { deref(); }
 
     ScriptExecutionContext* m_context;
     HTMLMediaElement* m_element;
diff --git a/Source/WebCore/html/track/VTTCue.h b/Source/WebCore/html/track/VTTCue.h
index d494f61..7386e65 100644
--- a/Source/WebCore/html/track/VTTCue.h
+++ b/Source/WebCore/html/track/VTTCue.h
@@ -64,7 +64,7 @@
 protected:
     VTTCueBox(Document&, VTTCue&);
 
-    virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override final;
+    RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&, const RenderTreePosition&) override final;
 
     VTTCue& m_cue;
     int m_fontSizeFromCaptionUserPrefs;
@@ -121,7 +121,7 @@
     void setRegionId(const String&);
     void notifyRegionWhenRemovingDisplayTree(bool);
 
-    virtual void setIsActive(bool) override;
+    void setIsActive(bool) override;
 
     bool hasDisplayTree() const { return m_displayTree; }
     VTTCueBox* getDisplayTree(const IntSize& videoSize, int fontSize);
@@ -161,14 +161,14 @@
 
     virtual void setFontSize(int, const IntSize&, bool important);
 
-    virtual bool isEqual(const TextTrackCue&, CueMatchRules) const override;
-    virtual bool cueContentsMatch(const TextTrackCue&) const override;
-    virtual bool doesExtendCue(const TextTrackCue&) const override;
+    bool isEqual(const TextTrackCue&, CueMatchRules) const override;
+    bool cueContentsMatch(const TextTrackCue&) const override;
+    bool doesExtendCue(const TextTrackCue&) const override;
 
-    virtual CueType cueType() const override { return WebVTT; }
-    virtual bool isRenderable() const override final { return true; }
+    CueType cueType() const override { return WebVTT; }
+    bool isRenderable() const override final { return true; }
 
-    virtual void didChange() override;
+    void didChange() override;
 
 protected:
     VTTCue(ScriptExecutionContext&, const MediaTime& start, const MediaTime& end, const String& content);
diff --git a/Source/WebCore/html/track/VideoTrack.h b/Source/WebCore/html/track/VideoTrack.h
index c9934a5..2743465 100644
--- a/Source/WebCore/html/track/VideoTrack.h
+++ b/Source/WebCore/html/track/VideoTrack.h
@@ -60,19 +60,19 @@
     static const AtomicString& signKeyword();
     static const AtomicString& subtitlesKeyword();
     static const AtomicString& commentaryKeyword();
-    virtual const AtomicString& defaultKindKeyword() const override { return emptyAtom; }
+    const AtomicString& defaultKindKeyword() const override { return emptyAtom; }
 
     bool selected() const { return m_selected; }
     virtual void setSelected(const bool);
 
-    virtual void clearClient() override { m_client = 0; }
+    void clearClient() override { m_client = 0; }
     VideoTrackClient* client() const { return m_client; }
 
     size_t inbandTrackIndex();
 
 #if ENABLE(MEDIA_SOURCE)
-    virtual void setKind(const AtomicString&) override;
-    virtual void setLanguage(const AtomicString&) override;
+    void setKind(const AtomicString&) override;
+    void setLanguage(const AtomicString&) override;
 #endif
 
     const MediaDescription& description() const;
@@ -83,7 +83,7 @@
     VideoTrack(VideoTrackClient*, PassRefPtr<VideoTrackPrivate> privateTrack);
 
 private:
-    virtual bool isValidKind(const AtomicString&) const override;
+    bool isValidKind(const AtomicString&) const override;
 
     // VideoTrackPrivateClient
     void selectedChanged(VideoTrackPrivate*, bool) override;
@@ -94,7 +94,7 @@
     void languageChanged(TrackPrivateBase*, const AtomicString&) override;
     void willRemove(TrackPrivateBase*) override;
 
-    virtual bool enabled() const override { return selected(); }
+    bool enabled() const override { return selected(); }
 
     void updateKindFromPrivate();
 
diff --git a/Source/WebCore/html/track/VideoTrackList.h b/Source/WebCore/html/track/VideoTrackList.h
index 4d1d67e..f6d9d45 100644
--- a/Source/WebCore/html/track/VideoTrackList.h
+++ b/Source/WebCore/html/track/VideoTrackList.h
@@ -50,7 +50,7 @@
     void append(PassRefPtr<VideoTrack>);
 
     // EventTarget
-    virtual EventTargetInterface eventTargetInterface() const override;
+    EventTargetInterface eventTargetInterface() const override;
 
 private:
     VideoTrackList(HTMLMediaElement*, ScriptExecutionContext*);
diff --git a/Source/WebCore/html/track/WebVTTElement.h b/Source/WebCore/html/track/WebVTTElement.h
index 5efdc15..44707ca 100644
--- a/Source/WebCore/html/track/WebVTTElement.h
+++ b/Source/WebCore/html/track/WebVTTElement.h
@@ -50,7 +50,7 @@
     static Ref<WebVTTElement> create(const WebVTTNodeType, Document&);
     PassRefPtr<HTMLElement> createEquivalentHTMLElement(Document&);
 
-    virtual Ref<Element> cloneElementWithoutAttributesAndChildren(Document&) override;
+    Ref<Element> cloneElementWithoutAttributesAndChildren(Document&) override;
 
     void setWebVTTNodeType(WebVTTNodeType type) { m_webVTTNodeType = static_cast<unsigned>(type); }
     WebVTTNodeType webVTTNodeType() const { return static_cast<WebVTTNodeType>(m_webVTTNodeType); }
@@ -76,7 +76,7 @@
 private:
     WebVTTElement(WebVTTNodeType, Document&);
 
-    virtual bool isWebVTTElement() const override { return true; }
+    bool isWebVTTElement() const override { return true; }
 
     unsigned m_isPastNode : 1;
     unsigned m_webVTTNodeType : 4;