[Win][Clang][WebKitLegacy] WebFrame.cpp: warning: delete called on non-final 'WebFram...
authorHironori.Fujii@sony.com <Hironori.Fujii@sony.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 13 Dec 2018 06:44:39 +0000 (06:44 +0000)
committerHironori.Fujii@sony.com <Hironori.Fujii@sony.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 13 Dec 2018 06:44:39 +0000 (06:44 +0000)
https://bugs.webkit.org/show_bug.cgi?id=192618

Reviewed by Alex Christensen.

Source/WebCore:

No new tests, no behavior changes.

* platform/win/PopupMenuWin.h:
* platform/win/WCDataObject.cpp:
* platform/win/WCDataObject.h:

Source/WebKitLegacy/win:

Classes which implement COM interface usually doesn't need the
virtual destructor because it has Release() virtual method to
destruct itself.

Marked 'final' such classes to suppress clang-cl's compilation
warnings.

* COMEnumVariant.h:
* COMPropertyBag.h:
* DefaultDownloadDelegate.h:
* DefaultPolicyDelegate.h:
* MemoryStream.h:
* WebActionPropertyBag.h:
* WebApplicationCache.h:
* WebArchive.h:
* WebBackForwardList.h:
* WebCache.h:
* WebCoreStatistics.h:
* WebCoreSupport/WebEditorClient.cpp:
* WebCoreSupport/WebInspectorDelegate.h:
* WebDataSource.h:
* WebDatabaseManager.cpp:
* WebDatabaseManager.h:
* WebDownload.h:
* WebDropSource.h:
* WebElementPropertyBag.h:
* WebError.h:
* WebFrame.cpp:
* WebFrame.h:
* WebFramePolicyListener.h:
* WebGeolocationPolicyListener.h:
* WebGeolocationPosition.h:
* WebHTMLRepresentation.h:
* WebHistory.h:
* WebHistoryItem.h:
* WebInspector.h:
* WebJavaScriptCollector.h:
* WebKitClassFactory.h:
* WebKitMessageLoop.h:
* WebKitStatistics.h:
* WebMutableURLRequest.h:
* WebNavigationData.h:
* WebNotification.h:
* WebNotificationCenter.h:
* WebPreferences.h:
* WebResource.h:
* WebScriptWorld.h:
* WebSecurityOrigin.h:
* WebSerializedJSValue.h:
* WebTextRenderer.h:
* WebURLAuthenticationChallenge.h:
* WebURLAuthenticationChallengeSender.h:
* WebURLCredential.h:
* WebURLProtectionSpace.h:
* WebURLResponse.h:
* WebUserContentURLPattern.h:
* WebView.cpp:
* WebView.h:
* WebWorkersPrivate.h:

Tools:

* DumpRenderTree/win/DRTDataObject.cpp:
* DumpRenderTree/win/DRTDataObject.h:
* DumpRenderTree/win/DRTDesktopNotificationPresenter.h:
* DumpRenderTree/win/DRTDropSource.h:
* DumpRenderTree/win/EditingDelegate.h:
* DumpRenderTree/win/PolicyDelegate.h:
* DumpRenderTree/win/UIDelegate.h:

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

65 files changed:
Source/WebCore/ChangeLog
Source/WebCore/platform/win/PopupMenuWin.h
Source/WebCore/platform/win/WCDataObject.cpp
Source/WebCore/platform/win/WCDataObject.h
Source/WebKitLegacy/win/COMEnumVariant.h
Source/WebKitLegacy/win/COMPropertyBag.h
Source/WebKitLegacy/win/ChangeLog
Source/WebKitLegacy/win/DefaultDownloadDelegate.h
Source/WebKitLegacy/win/DefaultPolicyDelegate.h
Source/WebKitLegacy/win/MemoryStream.h
Source/WebKitLegacy/win/WebActionPropertyBag.h
Source/WebKitLegacy/win/WebApplicationCache.h
Source/WebKitLegacy/win/WebArchive.h
Source/WebKitLegacy/win/WebBackForwardList.h
Source/WebKitLegacy/win/WebCache.h
Source/WebKitLegacy/win/WebCoreStatistics.h
Source/WebKitLegacy/win/WebCoreSupport/WebEditorClient.cpp
Source/WebKitLegacy/win/WebCoreSupport/WebInspectorDelegate.h
Source/WebKitLegacy/win/WebDataSource.h
Source/WebKitLegacy/win/WebDatabaseManager.cpp
Source/WebKitLegacy/win/WebDatabaseManager.h
Source/WebKitLegacy/win/WebDownload.h
Source/WebKitLegacy/win/WebDropSource.h
Source/WebKitLegacy/win/WebElementPropertyBag.h
Source/WebKitLegacy/win/WebError.h
Source/WebKitLegacy/win/WebFrame.cpp
Source/WebKitLegacy/win/WebFrame.h
Source/WebKitLegacy/win/WebFramePolicyListener.h
Source/WebKitLegacy/win/WebGeolocationPolicyListener.h
Source/WebKitLegacy/win/WebGeolocationPosition.h
Source/WebKitLegacy/win/WebHTMLRepresentation.h
Source/WebKitLegacy/win/WebHistory.h
Source/WebKitLegacy/win/WebHistoryItem.h
Source/WebKitLegacy/win/WebInspector.h
Source/WebKitLegacy/win/WebJavaScriptCollector.h
Source/WebKitLegacy/win/WebKitClassFactory.h
Source/WebKitLegacy/win/WebKitMessageLoop.h
Source/WebKitLegacy/win/WebKitStatistics.h
Source/WebKitLegacy/win/WebMutableURLRequest.h
Source/WebKitLegacy/win/WebNavigationData.h
Source/WebKitLegacy/win/WebNotification.h
Source/WebKitLegacy/win/WebNotificationCenter.h
Source/WebKitLegacy/win/WebPreferences.h
Source/WebKitLegacy/win/WebResource.h
Source/WebKitLegacy/win/WebScriptWorld.h
Source/WebKitLegacy/win/WebSecurityOrigin.h
Source/WebKitLegacy/win/WebSerializedJSValue.h
Source/WebKitLegacy/win/WebTextRenderer.h
Source/WebKitLegacy/win/WebURLAuthenticationChallenge.h
Source/WebKitLegacy/win/WebURLAuthenticationChallengeSender.h
Source/WebKitLegacy/win/WebURLCredential.h
Source/WebKitLegacy/win/WebURLProtectionSpace.h
Source/WebKitLegacy/win/WebURLResponse.h
Source/WebKitLegacy/win/WebUserContentURLPattern.h
Source/WebKitLegacy/win/WebView.cpp
Source/WebKitLegacy/win/WebView.h
Source/WebKitLegacy/win/WebWorkersPrivate.h
Tools/ChangeLog
Tools/DumpRenderTree/win/DRTDataObject.cpp
Tools/DumpRenderTree/win/DRTDataObject.h
Tools/DumpRenderTree/win/DRTDesktopNotificationPresenter.h
Tools/DumpRenderTree/win/DRTDropSource.h
Tools/DumpRenderTree/win/EditingDelegate.h
Tools/DumpRenderTree/win/PolicyDelegate.h
Tools/DumpRenderTree/win/UIDelegate.h

index fb4e46e..b3d566f 100644 (file)
@@ -1,3 +1,16 @@
+2018-12-12  Fujii Hironori  <Hironori.Fujii@sony.com>
+
+        [Win][Clang][WebKitLegacy] WebFrame.cpp: warning: delete called on non-final 'WebFrame' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
+        https://bugs.webkit.org/show_bug.cgi?id=192618
+
+        Reviewed by Alex Christensen.
+
+        No new tests, no behavior changes.
+
+        * platform/win/PopupMenuWin.h:
+        * platform/win/WCDataObject.cpp:
+        * platform/win/WCDataObject.h:
+
 2018-12-12  Simon Fraser  <simon.fraser@apple.com>
 
         REGRESSION (r238090): CAPCHA UI jumps to the wrong location
index a08176e..efd8ff8 100644 (file)
@@ -140,7 +140,7 @@ private:
     friend class AccessiblePopupMenu;
 };
 
-class AccessiblePopupMenu : public IAccessible {
+class AccessiblePopupMenu final : public IAccessible {
 public:
     AccessiblePopupMenu(const PopupMenuWin&);
     ~AccessiblePopupMenu();
index acdcef4..dbf99a4 100644 (file)
@@ -32,7 +32,7 @@
 
 namespace WebCore {
 
-class WCEnumFormatEtc : public IEnumFORMATETC
+class WCEnumFormatEtc final : public IEnumFORMATETC
 {
 public:
     WCEnumFormatEtc(const Vector<FORMATETC>& formats);
index 835ff36..d5e7d63 100644 (file)
@@ -41,7 +41,7 @@ struct StgMediumDeleter {
     }
 };
 
-class WCDataObject : public IDataObject {
+class WCDataObject final : public IDataObject {
 public:
     void CopyMedium(STGMEDIUM* pMedDest, STGMEDIUM* pMedSrc, FORMATETC* pFmtSrc);
 
index 2fe0f10..6d978e4 100644 (file)
@@ -31,7 +31,7 @@
 #include "COMVariantSetter.h"
 
 template<typename ContainerType>
-class COMEnumVariant : public IEnumVARIANT {
+class COMEnumVariant final : public IEnumVARIANT {
     WTF_MAKE_NONCOPYABLE(COMEnumVariant);
 public:
     static COMEnumVariant* adopt(ContainerType&);
index 7181f2b..b0d21f4 100644 (file)
@@ -35,7 +35,7 @@
 #include "COMVariantSetter.h"
 
 template<typename ValueType, typename KeyType = typename WTF::String, typename HashType = typename WTF::StringHash>
-class COMPropertyBag : public IPropertyBag, public IPropertyBag2 {
+class COMPropertyBag final : public IPropertyBag, public IPropertyBag2 {
     WTF_MAKE_NONCOPYABLE(COMPropertyBag);
 public:
     typedef HashMap<KeyType, ValueType, HashType> HashMapType;
index ee6523c..b1e3b9b 100644 (file)
@@ -1,3 +1,70 @@
+2018-12-12  Fujii Hironori  <Hironori.Fujii@sony.com>
+
+        [Win][Clang][WebKitLegacy] WebFrame.cpp: warning: delete called on non-final 'WebFrame' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
+        https://bugs.webkit.org/show_bug.cgi?id=192618
+
+        Reviewed by Alex Christensen.
+
+        Classes which implement COM interface usually doesn't need the
+        virtual destructor because it has Release() virtual method to
+        destruct itself.
+
+        Marked 'final' such classes to suppress clang-cl's compilation
+        warnings.
+
+        * COMEnumVariant.h:
+        * COMPropertyBag.h:
+        * DefaultDownloadDelegate.h:
+        * DefaultPolicyDelegate.h:
+        * MemoryStream.h:
+        * WebActionPropertyBag.h:
+        * WebApplicationCache.h:
+        * WebArchive.h:
+        * WebBackForwardList.h:
+        * WebCache.h:
+        * WebCoreStatistics.h:
+        * WebCoreSupport/WebEditorClient.cpp:
+        * WebCoreSupport/WebInspectorDelegate.h:
+        * WebDataSource.h:
+        * WebDatabaseManager.cpp:
+        * WebDatabaseManager.h:
+        * WebDownload.h:
+        * WebDropSource.h:
+        * WebElementPropertyBag.h:
+        * WebError.h:
+        * WebFrame.cpp:
+        * WebFrame.h:
+        * WebFramePolicyListener.h:
+        * WebGeolocationPolicyListener.h:
+        * WebGeolocationPosition.h:
+        * WebHTMLRepresentation.h:
+        * WebHistory.h:
+        * WebHistoryItem.h:
+        * WebInspector.h:
+        * WebJavaScriptCollector.h:
+        * WebKitClassFactory.h:
+        * WebKitMessageLoop.h:
+        * WebKitStatistics.h:
+        * WebMutableURLRequest.h:
+        * WebNavigationData.h:
+        * WebNotification.h:
+        * WebNotificationCenter.h:
+        * WebPreferences.h:
+        * WebResource.h:
+        * WebScriptWorld.h:
+        * WebSecurityOrigin.h:
+        * WebSerializedJSValue.h:
+        * WebTextRenderer.h:
+        * WebURLAuthenticationChallenge.h:
+        * WebURLAuthenticationChallengeSender.h:
+        * WebURLCredential.h:
+        * WebURLProtectionSpace.h:
+        * WebURLResponse.h:
+        * WebUserContentURLPattern.h:
+        * WebView.cpp:
+        * WebView.h:
+        * WebWorkersPrivate.h:
+
 2018-12-11  Fujii Hironori  <Hironori.Fujii@sony.com>
 
         [Win][Clang] Fix warning -Wmissing-field-initializers
index 729b6e6..8855b7c 100644 (file)
@@ -32,7 +32,7 @@
 #include <CFNetwork/CFURLDownloadPriv.h>
 #endif
 
-class DefaultDownloadDelegate : public IWebDownloadDelegate
+class DefaultDownloadDelegate final : public IWebDownloadDelegate
 {
 public:
     static DefaultDownloadDelegate* sharedInstance();
index ade3c52..a2b6664 100644 (file)
@@ -28,7 +28,7 @@
 
 #include "WebKit.h"
 
-class DefaultPolicyDelegate : public IWebPolicyDelegate {
+class DefaultPolicyDelegate final : public IWebPolicyDelegate {
 public:
     static DefaultPolicyDelegate* sharedInstance();
     static DefaultPolicyDelegate* createInstance();
index 97f1c97..19f8248 100644 (file)
@@ -32,7 +32,7 @@
 #include <WebCore/SharedBuffer.h>
 #include <WTF/RefPtr.h>
 
-class MemoryStream : public IStream
+class MemoryStream final : public IStream
 {
 public:
     static COMPtr<MemoryStream> createInstance(RefPtr<WebCore::SharedBuffer>&&);
index 0f9f015..0c5a1ae 100644 (file)
@@ -31,7 +31,7 @@
 #include <WebCore/HTMLFormElement.h>
 #include <WebCore/NavigationAction.h>
 
-class WebActionPropertyBag : public IPropertyBag {
+class WebActionPropertyBag final : public IPropertyBag {
 public:
     static WebActionPropertyBag* createInstance(const WebCore::NavigationAction&, RefPtr<WebCore::HTMLFormElement>&&, RefPtr<WebCore::Frame>&&);
 
index eadbf96..8e56d05 100644 (file)
@@ -32,7 +32,7 @@ namespace WebCore {
 class ApplicationCacheStorage;
 }
 
-class DECLSPEC_UUID("1119E970-4B13-4B9A-A049-41096104B689") WebApplicationCache : public IWebApplicationCache {
+class DECLSPEC_UUID("1119E970-4B13-4B9A-A049-41096104B689") WebApplicationCache final : public IWebApplicationCache {
 public:
     static WebApplicationCache* createInstance();
 
index e1acaff..2612267 100644 (file)
@@ -34,7 +34,7 @@ namespace WebCore {
     class LegacyWebArchive;
 }
 
-class WebArchive : public IWebArchive
+class WebArchive final : public IWebArchive
 {
 public:
     static WebArchive* createInstance();
index bfa2516..7bc7c41 100644 (file)
@@ -33,7 +33,7 @@
 
 class BackForwardList;
 
-class WebBackForwardList : public IWebBackForwardList, IWebBackForwardListPrivate
+class WebBackForwardList final : public IWebBackForwardList, IWebBackForwardListPrivate
 {
 public:
     static WebBackForwardList* createInstance(RefPtr<BackForwardList>&&);
index 4877dc1..393f83c 100644 (file)
@@ -28,7 +28,7 @@
 
 #include "WebKit.h"
 
-class WebCache : public IWebCache
+class WebCache final : public IWebCache
 {
 public:
     static WebCache* createInstance();
index 4a3f08a..0d6e888 100644 (file)
@@ -28,7 +28,7 @@
 
 #include "WebKit.h"
 
-class WebCoreStatistics : public IWebCoreStatistics {
+class WebCoreStatistics final : public IWebCoreStatistics {
 public:
     static WebCoreStatistics* createInstance();
 protected:
index b58de5b..2e7ea58 100644 (file)
@@ -63,7 +63,7 @@ public:
 
 // WebEditorUndoTarget -------------------------------------------------------------
 
-class WebEditorUndoTarget : public IWebUndoTarget
+class WebEditorUndoTarget final : public IWebUndoTarget
 {
 public:
     WebEditorUndoTarget();
@@ -508,7 +508,7 @@ void WebEditorClient::textDidChangeInTextArea(Element* e)
     }
 }
 
-class WebEditorUndoCommand : public IWebUndoCommand
+class WebEditorUndoCommand final : public IWebUndoCommand
 {
 public:
     WebEditorUndoCommand(UndoStep&, bool isUndo);
index 96fc90d..ab77af5 100644 (file)
@@ -32,7 +32,7 @@
 
 #include "WebKit.h"
 
-class WebInspectorDelegate : public IWebUIDelegate {
+class WebInspectorDelegate final : public IWebUIDelegate {
 public:
     static WebInspectorDelegate* createInstance();
 
index 6144b96..70a7f45 100644 (file)
@@ -35,7 +35,7 @@ class WebMutableURLRequest;
 
 extern const GUID IID_WebDataSource;
 
-class WebDataSource : public IWebDataSource, public IWebDataSourcePrivate
+class WebDataSource final : public IWebDataSource, public IWebDataSourcePrivate
 {
 public:
     static WebDataSource* createInstance(WebDocumentLoader*);
index a9693a1..3f6c38b 100644 (file)
@@ -57,7 +57,7 @@ static inline bool isEqual(LPCWSTR s1, LPCWSTR s2)
     return !wcscmp(s1, s2);
 }
 
-class DatabaseDetailsPropertyBag : public IPropertyBag {
+class DatabaseDetailsPropertyBag final : public IPropertyBag {
     WTF_MAKE_NONCOPYABLE(DatabaseDetailsPropertyBag);
 public:
     static DatabaseDetailsPropertyBag* createInstance(const DatabaseDetails&);
index 4929219..e0fe3e3 100644 (file)
@@ -35,7 +35,7 @@ namespace WebCore {
 struct SecurityOriginData;
 }
 
-class WebDatabaseManager : public IWebDatabaseManager2, private WebCore::DatabaseManagerClient {
+class WebDatabaseManager final : public IWebDatabaseManager2, private WebCore::DatabaseManagerClient {
 public:
     static WebDatabaseManager* createInstance();
 
index 4f6111e..bff80f7 100644 (file)
@@ -43,7 +43,7 @@ namespace WebCore {
     class ResourceResponse;
 }
 
-class WebDownload
+class WebDownload final
 : public IWebDownload
 , public IWebURLAuthenticationChallengeSender
 #if USE(CURL)
index f507fec..9506dd3 100644 (file)
@@ -38,7 +38,7 @@ namespace WebCore {
 
 WebCore::PlatformMouseEvent generateMouseEvent(WebView*, bool isDrag);
 
-class WebDropSource : public IDropSource
+class WebDropSource final : public IDropSource
 {
 public:
     virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);        
index 8c54ff6..2dfaa91 100644 (file)
@@ -32,7 +32,7 @@ namespace WebCore {
     class HitTestResult;
 }
 
-class WebElementPropertyBag : public IPropertyBag
+class WebElementPropertyBag final : public IPropertyBag
 {
 public:
     static WebElementPropertyBag* createInstance(const WebCore::HitTestResult&);
index 21f449a..f7c67eb 100644 (file)
@@ -30,7 +30,7 @@
 #include <WebCore/ResourceError.h>
 #include <wtf/RetainPtr.h>
 
-class WebError : public IWebError, IWebErrorPrivate {
+class WebError final : public IWebError, IWebErrorPrivate {
 public:
     static WebError* createInstance(const WebCore::ResourceError&, IPropertyBag* userInfo = 0);
     static WebError* createInstance();
index 8866515..c03242c 100644 (file)
@@ -758,7 +758,7 @@ HRESULT WebFrame::parentFrame(_COM_Outptr_opt_ IWebFrame** frame)
     return hr;
 }
 
-class EnumChildFrames : public IEnumVARIANT
+class EnumChildFrames final : public IEnumVARIANT
 {
 public:
     EnumChildFrames(Frame* f)
index c4d0836..1badd01 100644 (file)
@@ -75,7 +75,7 @@ interface IWebHistoryItemPrivate;
 WebFrame* kit(WebCore::Frame*);
 WEBKIT_API WebCore::Frame* core(WebFrame*);
 
-class DECLSPEC_UUID("{A3676398-4485-4a9d-87DC-CB5A40E6351D}") WebFrame : public IWebFrame2, IWebFramePrivate, IWebDocumentText
+class DECLSPEC_UUID("{A3676398-4485-4a9d-87DC-CB5A40E6351D}") WebFrame final : public IWebFrame2, IWebFramePrivate, IWebDocumentText
 {
 public:
     static WebFrame* createInstance();
index 02bc4ca..170de95 100644 (file)
@@ -35,7 +35,7 @@ namespace WebCore {
     class Frame;
 }
 
-class WebFramePolicyListener : public IWebPolicyDecisionListener, public IWebFormSubmissionListener {
+class WebFramePolicyListener final : public IWebPolicyDecisionListener, public IWebFormSubmissionListener {
 public:
     static WebFramePolicyListener* createInstance(RefPtr<WebCore::Frame>&&);
 protected:
index 2a499b1..5e7864b 100644 (file)
@@ -33,7 +33,7 @@ namespace WebCore {
     class Geolocation;
 }
 
-class WebGeolocationPolicyListener : public IWebGeolocationPolicyListener {
+class WebGeolocationPolicyListener final : public IWebGeolocationPolicyListener {
 public:
     static COMPtr<WebGeolocationPolicyListener> createInstance(RefPtr<WebCore::Geolocation>&&);
 
index 6cd15c8..0e4468e 100644 (file)
@@ -29,7 +29,7 @@
 #include <WebCore/COMPtr.h>
 #include <WebCore/GeolocationPosition.h>
 
-class WebGeolocationPosition : public IWebGeolocationPosition {
+class WebGeolocationPosition final : public IWebGeolocationPosition {
 public:
     static COMPtr<WebGeolocationPosition> createInstance();
 private:
index 869aa31..cb9e4d7 100644 (file)
@@ -30,7 +30,7 @@
 
 class WebFrame;
 
-class WebHTMLRepresentation : public IWebHTMLRepresentation, IWebDocumentRepresentation
+class WebHTMLRepresentation final : public IWebHTMLRepresentation, IWebDocumentRepresentation
 {
 public:
     static WebHTMLRepresentation* createInstance(WebFrame* frame);
index b9d170a..17f8092 100644 (file)
@@ -41,7 +41,7 @@ class PageGroup;
 class WebPreferences;
 class WebVisitedLinkStore;
 
-class WebHistory : public IWebHistory, public IWebHistoryPrivate {
+class WebHistory final : public IWebHistory, public IWebHistoryPrivate {
 public:
     static WebHistory* createInstance();
 private:
index b386570..920b34c 100644 (file)
@@ -38,7 +38,7 @@ namespace WebCore {
 
 //-----------------------------------------------------------------------------
 
-class WebHistoryItem : public IWebHistoryItem, IWebHistoryItemPrivate
+class WebHistoryItem final : public IWebHistoryItem, IWebHistoryItemPrivate
 {
 public:
     static WebHistoryItem* createInstance();
index 2794f71..cac6513 100644 (file)
@@ -36,7 +36,7 @@ class WebInspectorClient;
 class WebInspectorFrontendClient;
 class WebView;
 
-class WebInspector : public IWebInspector, public IWebInspectorPrivate {
+class WebInspector final : public IWebInspector, public IWebInspectorPrivate {
     WTF_MAKE_NONCOPYABLE(WebInspector);
 public:
     static WebInspector* createInstance(WebView* inspectedWebView, WebInspectorClient*);
index 012bf0d..300c856 100644 (file)
@@ -28,7 +28,7 @@
 
 #include "WebKit.h"
 
-class WebJavaScriptCollector : public IWebJavaScriptCollector
+class WebJavaScriptCollector final : public IWebJavaScriptCollector
 {
 public:
     static WebJavaScriptCollector* createInstance();
index 3c907e3..77230f6 100644 (file)
@@ -28,7 +28,7 @@
 
 #include <unknwn.h>
 
-class WebKitClassFactory : public IClassFactory
+class WebKitClassFactory final : public IClassFactory
 {
 public:
     WebKitClassFactory(CLSID targetClass);
index 1b0e17f..c69d3bf 100644 (file)
@@ -28,7 +28,7 @@
 
 #include "WebKit.h"
 
-class WebKitMessageLoop : public IWebKitMessageLoop {
+class WebKitMessageLoop final : public IWebKitMessageLoop {
 public:
     WebKitMessageLoop();
     ~WebKitMessageLoop();
index b2df206..889bb1a 100644 (file)
@@ -31,7 +31,7 @@
 
 #include "WebKit.h"
 
-class WebKitStatistics : public IWebKitStatistics {
+class WebKitStatistics final : public IWebKitStatistics {
 public:
     static WebKitStatistics* createInstance();
 protected:
index 041c909..94cd2b4 100644 (file)
@@ -44,7 +44,7 @@ inline WebURLRequestCachePolicy kit(WebCore::ResourceRequestCachePolicy policy)
     return static_cast<WebURLRequestCachePolicy>(policy);
 }
 
-class WebMutableURLRequest : public IWebMutableURLRequest, IWebMutableURLRequestPrivate
+class WebMutableURLRequest final : public IWebMutableURLRequest, IWebMutableURLRequestPrivate
 {
 public:
     static WebMutableURLRequest* createInstance();
index e368d83..4bc9956 100644 (file)
@@ -31,7 +31,7 @@
 #include <WebCore/BString.h>
 #include <WebCore/COMPtr.h>
 
-class WebNavigationData : public IWebNavigationData {
+class WebNavigationData final : public IWebNavigationData {
 public:
     static WebNavigationData* createInstance(const WTF::String& url, const WTF::String& title, IWebURLRequest*, IWebURLResponse*, bool hasSubstituteData, const WTF::String& clientRedirectSource);
 private:
index 843e3d9..930db8a 100644 (file)
@@ -28,7 +28,7 @@
 
 #include "WebKit.h"
 
-class WebNotification : public IWebNotification
+class WebNotification final : public IWebNotification
 {
 public:
     static WebNotification* createInstance(BSTR name = 0, IUnknown* anObject = 0, IPropertyBag* userInfo = 0);
index 0ea057e..389e98c 100644 (file)
@@ -30,7 +30,7 @@
 
 struct WebNotificationCenterPrivate;
 
-class WebNotificationCenter : public IWebNotificationCenter {
+class WebNotificationCenter final : public IWebNotificationCenter {
 public:
     static WebNotificationCenter* createInstance();
 
index 3ce4485..2906b36 100644 (file)
@@ -30,7 +30,7 @@
 #include <WebCore/BString.h>
 #include <wtf/RetainPtr.h>
 
-class WebPreferences : public IWebPreferences, public IWebPreferencesPrivate7 {
+class WebPreferences final : public IWebPreferences, public IWebPreferencesPrivate7 {
 public:
     static WebPreferences* createInstance();
 protected:
index 4df3e0c..055b5e8 100644 (file)
@@ -34,7 +34,7 @@
 #include <wtf/URL.h>
 #include <wtf/text/WTFString.h>
 
-class WebResource : public IWebResource {
+class WebResource final : public IWebResource {
 public:
     static WebResource* createInstance(RefPtr<WebCore::SharedBuffer>&&, const WebCore::ResourceResponse&);
 protected:
index 9caba2e..0dd63b7 100644 (file)
@@ -32,7 +32,7 @@ namespace WebCore {
     class DOMWrapperWorld;
 }
 
-class WebScriptWorld : public IWebScriptWorld {
+class WebScriptWorld final : public IWebScriptWorld {
     WTF_MAKE_NONCOPYABLE(WebScriptWorld);
 public:
     static WebScriptWorld* standardWorld();
index 05059c5..f798ce3 100644 (file)
@@ -31,7 +31,7 @@
 #include "WebKit.h"
 #include <WebCore/SecurityOrigin.h>
 
-class DECLSPEC_UUID("6EB8D98F-2723-4472-88D3-5936F9D6E631") WebSecurityOrigin : public IWebSecurityOrigin2 {
+class DECLSPEC_UUID("6EB8D98F-2723-4472-88D3-5936F9D6E631") WebSecurityOrigin final : public IWebSecurityOrigin2 {
 public:
     // WebSecurityOrigin
     static WebSecurityOrigin* createInstance(WebCore::SecurityOrigin* origin);
index 99a5c15..3c61321 100644 (file)
@@ -35,7 +35,7 @@ namespace WebCore {
     class SerializedScriptValue;
 }
 
-class WebSerializedJSValue : public IWebSerializedJSValue, public IWebSerializedJSValuePrivate {
+class WebSerializedJSValue final : public IWebSerializedJSValue, public IWebSerializedJSValuePrivate {
     WTF_MAKE_NONCOPYABLE(WebSerializedJSValue);
 public:
     static COMPtr<WebSerializedJSValue> createInstance();
index 68e5c52..34f6076 100644 (file)
@@ -31,7 +31,7 @@
 
 #include "WebKit.h"
 
-class WebTextRenderer : public IWebTextRenderer {
+class WebTextRenderer final : public IWebTextRenderer {
 public:
     static WebTextRenderer* createInstance();
 
index 5242ba7..9133bdb 100644 (file)
@@ -30,7 +30,7 @@
 #include <WebCore/AuthenticationChallenge.h>
 #include <WebCore/COMPtr.h>
 
-class DECLSPEC_UUID("FD3B2381-0BB6-4B59-AF09-0E599C8901CF") WebURLAuthenticationChallenge : public IWebURLAuthenticationChallenge {
+class DECLSPEC_UUID("FD3B2381-0BB6-4B59-AF09-0E599C8901CF") WebURLAuthenticationChallenge final : public IWebURLAuthenticationChallenge {
 public:
     static WebURLAuthenticationChallenge* createInstance(const WebCore::AuthenticationChallenge&);
     static WebURLAuthenticationChallenge* createInstance(const WebCore::AuthenticationChallenge&, IWebURLAuthenticationChallengeSender*);
index db30b65..944bfab 100644 (file)
@@ -35,7 +35,7 @@ namespace WebCore {
     class AuthenticationClient;
 }
 
-class DECLSPEC_UUID("5CACD637-F82F-491F-947A-5DCA38AA0FEA") WebURLAuthenticationChallengeSender
+class DECLSPEC_UUID("5CACD637-F82F-491F-947A-5DCA38AA0FEA") WebURLAuthenticationChallengeSender final
     : public IWebURLAuthenticationChallengeSender
 {
 public:
index 6ccb611..33bd051 100644 (file)
@@ -29,7 +29,7 @@
 #include "WebKit.h"
 #include <WebCore/Credential.h>
 
-class WebURLCredential : public IWebURLCredential
+class WebURLCredential final : public IWebURLCredential
 {
 public:
     static WebURLCredential* createInstance();
index 2dab3c1..e2ac83f 100644 (file)
@@ -29,7 +29,7 @@
 #include "WebKit.h"
 #include <WebCore/ProtectionSpace.h>
 
-class WebURLProtectionSpace : public IWebURLProtectionSpace
+class WebURLProtectionSpace final : public IWebURLProtectionSpace
 {
 public:
     static WebURLProtectionSpace* createInstance();
index 0991792..93410cd 100644 (file)
@@ -28,7 +28,7 @@
 #include "WebKit.h"
 #include <WebCore/ResourceResponse.h>
 
-class WebURLResponse : public IWebHTTPURLResponse, IWebURLResponsePrivate
+class WebURLResponse final : public IWebHTTPURLResponse, IWebURLResponsePrivate
 {
 public:
     static WebURLResponse* createInstance();
index f9f473e..85c531d 100644 (file)
@@ -33,7 +33,7 @@ namespace WebCore {
     class UserContentURLPattern;
 }
 
-class WebUserContentURLPattern : public IWebUserContentURLPattern {
+class WebUserContentURLPattern final : public IWebUserContentURLPattern {
     WTF_MAKE_NONCOPYABLE(WebUserContentURLPattern);
 public:
     static COMPtr<WebUserContentURLPattern> createInstance();
index 6ae21ec..e8bddeb 100644 (file)
@@ -282,7 +282,7 @@ static String localStorageDatabasePath(WebPreferences* preferences)
     return toString(localStorageDatabasePath);
 }
 
-class PreferencesChangedOrRemovedObserver : public IWebNotificationObserver {
+class PreferencesChangedOrRemovedObserver final : public IWebNotificationObserver {
 public:
     static PreferencesChangedOrRemovedObserver* sharedInstance();
 
@@ -7385,7 +7385,7 @@ void WebView::flushPendingGraphicsLayerChanges()
 }
 #endif
 
-class EnumTextMatches : public IEnumTextMatches
+class EnumTextMatches final : public IEnumTextMatches
 {
     long m_ref;
     UINT m_index;
index 1617f10..c3eb08c 100644 (file)
@@ -85,7 +85,7 @@ interface ID2D1HwndRenderTarget;
 interface ID2D1RenderTarget;
 #endif
 
-class WebView 
+class WebView final
     : public IWebView
     , public IWebViewPrivate5
     , public IWebIBActions
index 87c4c89..ae620c2 100644 (file)
@@ -33,7 +33,7 @@
 
 #include "WebKit.h"
 
-class WebWorkersPrivate : public IWebWorkersPrivate {
+class WebWorkersPrivate final : public IWebWorkersPrivate {
 public:
     static WebWorkersPrivate* createInstance();
 private:
index 7da31ab..d3d8194 100644 (file)
@@ -1,3 +1,18 @@
+2018-12-12  Fujii Hironori  <Hironori.Fujii@sony.com>
+
+        [Win][Clang][WebKitLegacy] WebFrame.cpp: warning: delete called on non-final 'WebFrame' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
+        https://bugs.webkit.org/show_bug.cgi?id=192618
+
+        Reviewed by Alex Christensen.
+
+        * DumpRenderTree/win/DRTDataObject.cpp:
+        * DumpRenderTree/win/DRTDataObject.h:
+        * DumpRenderTree/win/DRTDesktopNotificationPresenter.h:
+        * DumpRenderTree/win/DRTDropSource.h:
+        * DumpRenderTree/win/EditingDelegate.h:
+        * DumpRenderTree/win/PolicyDelegate.h:
+        * DumpRenderTree/win/UIDelegate.h:
+
 2018-12-12  Ryosuke Niwa  <rniwa@webkit.org>
 
         Make TextInputController.legacyAttributedString take DOM nodes and offsets
index 87461c1..ef2d2ef 100644 (file)
@@ -47,7 +47,7 @@ FORMATETC* cfUrlWFormat()
     return &urlFormat;
 }
 
-class WCEnumFormatEtc : public IEnumFORMATETC {
+class WCEnumFormatEtc final : public IEnumFORMATETC {
 public:
     explicit WCEnumFormatEtc(const Vector<FORMATETC>& formats);
     explicit WCEnumFormatEtc(const Vector<std::unique_ptr<FORMATETC>>& formats);
index 15c7f15..b952b08 100644 (file)
@@ -44,7 +44,7 @@ struct StgMediumDeleter {
     }
 };
 
-class DRTDataObject : public IDataObject {
+class DRTDataObject final : public IDataObject {
 public:
     void CopyMedium(STGMEDIUM* pMedDest, STGMEDIUM* pMedSrc, FORMATETC* pFmtSrc);
 
index eb2ce49..70bd470 100644 (file)
@@ -32,7 +32,7 @@
 #include <WebKitLegacy/WebKit.h>
 #include <windef.h>
 
-class DRTDesktopNotificationPresenter : public IWebDesktopNotificationsDelegate {
+class DRTDesktopNotificationPresenter final : public IWebDesktopNotificationsDelegate {
 public:
     DRTDesktopNotificationPresenter();
 
index 662c7d6..d9ee7d0 100644 (file)
@@ -30,7 +30,7 @@
 #include <ShlObj.h>
 #include <windows.h>
 
-class DRTDropSource : public IDropSource {
+class DRTDropSource final : public IDropSource {
 public:
     virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);        
     virtual ULONG STDMETHODCALLTYPE AddRef();
index 8110ffa..4f1767c 100644 (file)
@@ -31,7 +31,7 @@
 
 #include <WebKitLegacy/WebKit.h>
 
-class __declspec(uuid("265DCD4B-79C3-44a2-84BC-511C3EDABD6F")) EditingDelegate : public IWebEditingDelegate2, public IWebNotificationObserver {
+class __declspec(uuid("265DCD4B-79C3-44a2-84BC-511C3EDABD6F")) EditingDelegate final : public IWebEditingDelegate2, public IWebNotificationObserver {
 public:
     EditingDelegate();
 
index a27a1e3..e983865 100644 (file)
@@ -33,7 +33,7 @@
 
 class TestRunner;
 
-class PolicyDelegate : public IWebPolicyDelegate {
+class PolicyDelegate final : public IWebPolicyDelegate {
 public:
     PolicyDelegate();
 
index fa4edbb..7825890 100644 (file)
@@ -36,7 +36,7 @@
 class DRTUndoManager;
 class DRTDesktopNotificationPresenter;
 
-class UIDelegate : public IWebUIDelegate2, IWebUIDelegatePrivate3 {
+class UIDelegate final : public IWebUIDelegate2, IWebUIDelegatePrivate3 {
 public:
     UIDelegate();