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
+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
friend class AccessiblePopupMenu;
};
-class AccessiblePopupMenu : public IAccessible {
+class AccessiblePopupMenu final : public IAccessible {
public:
AccessiblePopupMenu(const PopupMenuWin&);
~AccessiblePopupMenu();
namespace WebCore {
-class WCEnumFormatEtc : public IEnumFORMATETC
+class WCEnumFormatEtc final : public IEnumFORMATETC
{
public:
WCEnumFormatEtc(const Vector<FORMATETC>& formats);
}
};
-class WCDataObject : public IDataObject {
+class WCDataObject final : public IDataObject {
public:
void CopyMedium(STGMEDIUM* pMedDest, STGMEDIUM* pMedSrc, FORMATETC* pFmtSrc);
#include "COMVariantSetter.h"
template<typename ContainerType>
-class COMEnumVariant : public IEnumVARIANT {
+class COMEnumVariant final : public IEnumVARIANT {
WTF_MAKE_NONCOPYABLE(COMEnumVariant);
public:
static COMEnumVariant* adopt(ContainerType&);
#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;
+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
#include <CFNetwork/CFURLDownloadPriv.h>
#endif
-class DefaultDownloadDelegate : public IWebDownloadDelegate
+class DefaultDownloadDelegate final : public IWebDownloadDelegate
{
public:
static DefaultDownloadDelegate* sharedInstance();
#include "WebKit.h"
-class DefaultPolicyDelegate : public IWebPolicyDelegate {
+class DefaultPolicyDelegate final : public IWebPolicyDelegate {
public:
static DefaultPolicyDelegate* sharedInstance();
static DefaultPolicyDelegate* createInstance();
#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>&&);
#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>&&);
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();
class LegacyWebArchive;
}
-class WebArchive : public IWebArchive
+class WebArchive final : public IWebArchive
{
public:
static WebArchive* createInstance();
class BackForwardList;
-class WebBackForwardList : public IWebBackForwardList, IWebBackForwardListPrivate
+class WebBackForwardList final : public IWebBackForwardList, IWebBackForwardListPrivate
{
public:
static WebBackForwardList* createInstance(RefPtr<BackForwardList>&&);
#include "WebKit.h"
-class WebCache : public IWebCache
+class WebCache final : public IWebCache
{
public:
static WebCache* createInstance();
#include "WebKit.h"
-class WebCoreStatistics : public IWebCoreStatistics {
+class WebCoreStatistics final : public IWebCoreStatistics {
public:
static WebCoreStatistics* createInstance();
protected:
// WebEditorUndoTarget -------------------------------------------------------------
-class WebEditorUndoTarget : public IWebUndoTarget
+class WebEditorUndoTarget final : public IWebUndoTarget
{
public:
WebEditorUndoTarget();
}
}
-class WebEditorUndoCommand : public IWebUndoCommand
+class WebEditorUndoCommand final : public IWebUndoCommand
{
public:
WebEditorUndoCommand(UndoStep&, bool isUndo);
#include "WebKit.h"
-class WebInspectorDelegate : public IWebUIDelegate {
+class WebInspectorDelegate final : public IWebUIDelegate {
public:
static WebInspectorDelegate* createInstance();
extern const GUID IID_WebDataSource;
-class WebDataSource : public IWebDataSource, public IWebDataSourcePrivate
+class WebDataSource final : public IWebDataSource, public IWebDataSourcePrivate
{
public:
static WebDataSource* createInstance(WebDocumentLoader*);
return !wcscmp(s1, s2);
}
-class DatabaseDetailsPropertyBag : public IPropertyBag {
+class DatabaseDetailsPropertyBag final : public IPropertyBag {
WTF_MAKE_NONCOPYABLE(DatabaseDetailsPropertyBag);
public:
static DatabaseDetailsPropertyBag* createInstance(const DatabaseDetails&);
struct SecurityOriginData;
}
-class WebDatabaseManager : public IWebDatabaseManager2, private WebCore::DatabaseManagerClient {
+class WebDatabaseManager final : public IWebDatabaseManager2, private WebCore::DatabaseManagerClient {
public:
static WebDatabaseManager* createInstance();
class ResourceResponse;
}
-class WebDownload
+class WebDownload final
: public IWebDownload
, public IWebURLAuthenticationChallengeSender
#if USE(CURL)
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);
class HitTestResult;
}
-class WebElementPropertyBag : public IPropertyBag
+class WebElementPropertyBag final : public IPropertyBag
{
public:
static WebElementPropertyBag* createInstance(const WebCore::HitTestResult&);
#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();
return hr;
}
-class EnumChildFrames : public IEnumVARIANT
+class EnumChildFrames final : public IEnumVARIANT
{
public:
EnumChildFrames(Frame* f)
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();
class Frame;
}
-class WebFramePolicyListener : public IWebPolicyDecisionListener, public IWebFormSubmissionListener {
+class WebFramePolicyListener final : public IWebPolicyDecisionListener, public IWebFormSubmissionListener {
public:
static WebFramePolicyListener* createInstance(RefPtr<WebCore::Frame>&&);
protected:
class Geolocation;
}
-class WebGeolocationPolicyListener : public IWebGeolocationPolicyListener {
+class WebGeolocationPolicyListener final : public IWebGeolocationPolicyListener {
public:
static COMPtr<WebGeolocationPolicyListener> createInstance(RefPtr<WebCore::Geolocation>&&);
#include <WebCore/COMPtr.h>
#include <WebCore/GeolocationPosition.h>
-class WebGeolocationPosition : public IWebGeolocationPosition {
+class WebGeolocationPosition final : public IWebGeolocationPosition {
public:
static COMPtr<WebGeolocationPosition> createInstance();
private:
class WebFrame;
-class WebHTMLRepresentation : public IWebHTMLRepresentation, IWebDocumentRepresentation
+class WebHTMLRepresentation final : public IWebHTMLRepresentation, IWebDocumentRepresentation
{
public:
static WebHTMLRepresentation* createInstance(WebFrame* frame);
class WebPreferences;
class WebVisitedLinkStore;
-class WebHistory : public IWebHistory, public IWebHistoryPrivate {
+class WebHistory final : public IWebHistory, public IWebHistoryPrivate {
public:
static WebHistory* createInstance();
private:
//-----------------------------------------------------------------------------
-class WebHistoryItem : public IWebHistoryItem, IWebHistoryItemPrivate
+class WebHistoryItem final : public IWebHistoryItem, IWebHistoryItemPrivate
{
public:
static WebHistoryItem* createInstance();
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*);
#include "WebKit.h"
-class WebJavaScriptCollector : public IWebJavaScriptCollector
+class WebJavaScriptCollector final : public IWebJavaScriptCollector
{
public:
static WebJavaScriptCollector* createInstance();
#include <unknwn.h>
-class WebKitClassFactory : public IClassFactory
+class WebKitClassFactory final : public IClassFactory
{
public:
WebKitClassFactory(CLSID targetClass);
#include "WebKit.h"
-class WebKitMessageLoop : public IWebKitMessageLoop {
+class WebKitMessageLoop final : public IWebKitMessageLoop {
public:
WebKitMessageLoop();
~WebKitMessageLoop();
#include "WebKit.h"
-class WebKitStatistics : public IWebKitStatistics {
+class WebKitStatistics final : public IWebKitStatistics {
public:
static WebKitStatistics* createInstance();
protected:
return static_cast<WebURLRequestCachePolicy>(policy);
}
-class WebMutableURLRequest : public IWebMutableURLRequest, IWebMutableURLRequestPrivate
+class WebMutableURLRequest final : public IWebMutableURLRequest, IWebMutableURLRequestPrivate
{
public:
static WebMutableURLRequest* createInstance();
#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:
#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);
struct WebNotificationCenterPrivate;
-class WebNotificationCenter : public IWebNotificationCenter {
+class WebNotificationCenter final : public IWebNotificationCenter {
public:
static WebNotificationCenter* createInstance();
#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:
#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:
class DOMWrapperWorld;
}
-class WebScriptWorld : public IWebScriptWorld {
+class WebScriptWorld final : public IWebScriptWorld {
WTF_MAKE_NONCOPYABLE(WebScriptWorld);
public:
static WebScriptWorld* standardWorld();
#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);
class SerializedScriptValue;
}
-class WebSerializedJSValue : public IWebSerializedJSValue, public IWebSerializedJSValuePrivate {
+class WebSerializedJSValue final : public IWebSerializedJSValue, public IWebSerializedJSValuePrivate {
WTF_MAKE_NONCOPYABLE(WebSerializedJSValue);
public:
static COMPtr<WebSerializedJSValue> createInstance();
#include "WebKit.h"
-class WebTextRenderer : public IWebTextRenderer {
+class WebTextRenderer final : public IWebTextRenderer {
public:
static WebTextRenderer* createInstance();
#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*);
class AuthenticationClient;
}
-class DECLSPEC_UUID("5CACD637-F82F-491F-947A-5DCA38AA0FEA") WebURLAuthenticationChallengeSender
+class DECLSPEC_UUID("5CACD637-F82F-491F-947A-5DCA38AA0FEA") WebURLAuthenticationChallengeSender final
: public IWebURLAuthenticationChallengeSender
{
public:
#include "WebKit.h"
#include <WebCore/Credential.h>
-class WebURLCredential : public IWebURLCredential
+class WebURLCredential final : public IWebURLCredential
{
public:
static WebURLCredential* createInstance();
#include "WebKit.h"
#include <WebCore/ProtectionSpace.h>
-class WebURLProtectionSpace : public IWebURLProtectionSpace
+class WebURLProtectionSpace final : public IWebURLProtectionSpace
{
public:
static WebURLProtectionSpace* createInstance();
#include "WebKit.h"
#include <WebCore/ResourceResponse.h>
-class WebURLResponse : public IWebHTTPURLResponse, IWebURLResponsePrivate
+class WebURLResponse final : public IWebHTTPURLResponse, IWebURLResponsePrivate
{
public:
static WebURLResponse* createInstance();
class UserContentURLPattern;
}
-class WebUserContentURLPattern : public IWebUserContentURLPattern {
+class WebUserContentURLPattern final : public IWebUserContentURLPattern {
WTF_MAKE_NONCOPYABLE(WebUserContentURLPattern);
public:
static COMPtr<WebUserContentURLPattern> createInstance();
return toString(localStorageDatabasePath);
}
-class PreferencesChangedOrRemovedObserver : public IWebNotificationObserver {
+class PreferencesChangedOrRemovedObserver final : public IWebNotificationObserver {
public:
static PreferencesChangedOrRemovedObserver* sharedInstance();
}
#endif
-class EnumTextMatches : public IEnumTextMatches
+class EnumTextMatches final : public IEnumTextMatches
{
long m_ref;
UINT m_index;
interface ID2D1RenderTarget;
#endif
-class WebView
+class WebView final
: public IWebView
, public IWebViewPrivate5
, public IWebIBActions
#include "WebKit.h"
-class WebWorkersPrivate : public IWebWorkersPrivate {
+class WebWorkersPrivate final : public IWebWorkersPrivate {
public:
static WebWorkersPrivate* createInstance();
private:
+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
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);
}
};
-class DRTDataObject : public IDataObject {
+class DRTDataObject final : public IDataObject {
public:
void CopyMedium(STGMEDIUM* pMedDest, STGMEDIUM* pMedSrc, FORMATETC* pFmtSrc);
#include <WebKitLegacy/WebKit.h>
#include <windef.h>
-class DRTDesktopNotificationPresenter : public IWebDesktopNotificationsDelegate {
+class DRTDesktopNotificationPresenter final : public IWebDesktopNotificationsDelegate {
public:
DRTDesktopNotificationPresenter();
#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();
#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();
class TestRunner;
-class PolicyDelegate : public IWebPolicyDelegate {
+class PolicyDelegate final : public IWebPolicyDelegate {
public:
PolicyDelegate();
class DRTUndoManager;
class DRTDesktopNotificationPresenter;
-class UIDelegate : public IWebUIDelegate2, IWebUIDelegatePrivate3 {
+class UIDelegate final : public IWebUIDelegate2, IWebUIDelegatePrivate3 {
public:
UIDelegate();