diff options
author | ziadh@chromium.org <ziadh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-24 02:47:40 +0000 |
---|---|---|
committer | ziadh@chromium.org <ziadh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-24 02:47:40 +0000 |
commit | 46ebf0640d32b313618fe443a34e959059b2c3f9 (patch) | |
tree | 84b616ce5385bce6c8d4b966e74daf7648fdc8c5 /chrome/browser | |
parent | 7c543fd101874d1453dfcf9727dd0d39d296ef50 (diff) | |
download | chromium_src-46ebf0640d32b313618fe443a34e959059b2c3f9.zip chromium_src-46ebf0640d32b313618fe443a34e959059b2c3f9.tar.gz chromium_src-46ebf0640d32b313618fe443a34e959059b2c3f9.tar.bz2 |
Add undeclared virtual destructors.
Preventative maintainance for abstract classes that do not declare virtual destructors. Base classes that do not declare their destructors as virtual could potentially lead to memory leaks.
r=jar
Review URL: http://codereview.chromium.org/2856051
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53570 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
32 files changed, 145 insertions, 25 deletions
diff --git a/chrome/browser/aeropeek_manager.h b/chrome/browser/aeropeek_manager.h index 80d60db..4495a95 100644 --- a/chrome/browser/aeropeek_manager.h +++ b/chrome/browser/aeropeek_manager.h @@ -45,6 +45,9 @@ class AeroPeekWindowDelegate { virtual void GetContentInsets(gfx::Insets* insets) = 0; virtual bool GetTabThumbnail(int tab_id, SkBitmap* thumbnail) = 0; virtual bool GetTabPreview(int tab_id, SkBitmap* preview) = 0; + + protected: + virtual ~AeroPeekWindowDelegate() {} }; // A class that implements AeroPeek of Windows 7: @@ -91,7 +94,7 @@ class AeroPeekManager : public TabStripModelObserver, public AeroPeekWindowDelegate { public: explicit AeroPeekManager(HWND application_window); - ~AeroPeekManager(); + virtual ~AeroPeekManager(); // Sets the margins of the "user-perceived content area". // (See comments of |content_insets_|). diff --git a/chrome/browser/browser_window.h b/chrome/browser/browser_window.h index d4e679e..d1ce48b 100644 --- a/chrome/browser/browser_window.h +++ b/chrome/browser/browser_window.h @@ -320,7 +320,7 @@ class BrowserWindow { friend class BrowserView; virtual void DestroyBrowser() = 0; - ~BrowserWindow() {} + virtual ~BrowserWindow() {} }; #if defined(OS_WIN) || defined(TOOLKIT_VIEWS) @@ -349,6 +349,9 @@ class BrowserWindowTesting { // Returns the ToolbarView. virtual ToolbarView* GetToolbarView() const = 0; #endif + + protected: + virtual ~BrowserWindowTesting() {} }; #endif // CHROME_BROWSER_BROWSER_WINDOW_H_ diff --git a/chrome/browser/child_process_launcher.h b/chrome/browser/child_process_launcher.h index ce1c04d..d37b52d 100644 --- a/chrome/browser/child_process_launcher.h +++ b/chrome/browser/child_process_launcher.h @@ -21,6 +21,9 @@ class ChildProcessLauncher { // Will be called on the thread that the ChildProcessLauncher was // constructed on. virtual void OnProcessLaunched() = 0; + + protected: + virtual ~Client() {} }; // Launches the process asynchronously, calling the client when the result is diff --git a/chrome/browser/chromeos/cros_settings.h b/chrome/browser/chromeos/cros_settings.h index cfe4ec8..cb459ec 100644 --- a/chrome/browser/chromeos/cros_settings.h +++ b/chrome/browser/chromeos/cros_settings.h @@ -43,6 +43,9 @@ class CrosSettings { bool GetInteger(const std::wstring& path, int* out_value) const; bool GetReal(const std::wstring& path, double* out_value) const; bool GetString(const std::wstring& path, std::string* out_value) const; + + protected: + virtual ~CrosSettings() {} }; } // namespace chromeos diff --git a/chrome/browser/cocoa/location_bar/autocomplete_text_field.h b/chrome/browser/cocoa/location_bar/autocomplete_text_field.h index 0340874..aad52a6 100644 --- a/chrome/browser/cocoa/location_bar/autocomplete_text_field.h +++ b/chrome/browser/cocoa/location_bar/autocomplete_text_field.h @@ -89,6 +89,9 @@ class AutocompleteTextFieldObserver { // Called whenever the autocomplete text field is losing focus. virtual void OnKillFocus() = 0; + + protected: + virtual ~AutocompleteTextFieldObserver() {} }; @interface AutocompleteTextField : StyledTextField<NSTextViewDelegate, diff --git a/chrome/browser/cocoa/table_row_nsimage_cache.h b/chrome/browser/cocoa/table_row_nsimage_cache.h index 6409123..a8c0052 100644 --- a/chrome/browser/cocoa/table_row_nsimage_cache.h +++ b/chrome/browser/cocoa/table_row_nsimage_cache.h @@ -15,15 +15,18 @@ // caches the results. class TableRowNSImageCache { public: - // Interface this cache expects for its table model. - class Table { - public: - // Returns the number of rows in the table. - virtual int RowCount() const = 0; - - // Returns the icon of the |row|th row. - virtual SkBitmap GetIcon(int row) const = 0; - }; + // Interface this cache expects for its table model. + class Table { + public: + // Returns the number of rows in the table. + virtual int RowCount() const = 0; + + // Returns the icon of the |row|th row. + virtual SkBitmap GetIcon(int row) const = 0; + + protected: + virtual ~Table() {} + }; // |model| must outlive the cache. explicit TableRowNSImageCache(Table* model); diff --git a/chrome/browser/content_setting_image_model.h b/chrome/browser/content_setting_image_model.h index f5d5a66..efc9b8e 100644 --- a/chrome/browser/content_setting_image_model.h +++ b/chrome/browser/content_setting_image_model.h @@ -15,6 +15,8 @@ class TabContents; // that are displayed in the location bar. class ContentSettingImageModel { public: + virtual ~ContentSettingImageModel() {} + // Factory function. static ContentSettingImageModel* CreateContentSettingImageModel( ContentSettingsType content_settings_type); diff --git a/chrome/browser/crash_handler_host_linux.h b/chrome/browser/crash_handler_host_linux.h index 3f1ea2e..8a76297 100644 --- a/chrome/browser/crash_handler_host_linux.h +++ b/chrome/browser/crash_handler_host_linux.h @@ -38,7 +38,7 @@ class CrashHandlerHostLinux : public MessageLoopForIO::Watcher, protected: CrashHandlerHostLinux(); - ~CrashHandlerHostLinux(); + virtual ~CrashHandlerHostLinux(); // This is here on purpose to make CrashHandlerHostLinux abstract. virtual void SetProcessType() = 0; @@ -60,7 +60,7 @@ class PluginCrashHandlerHostLinux : public CrashHandlerHostLinux { PluginCrashHandlerHostLinux() { SetProcessType(); } - ~PluginCrashHandlerHostLinux() {} + virtual ~PluginCrashHandlerHostLinux() {} virtual void SetProcessType() { process_type_ = "plugin"; @@ -75,7 +75,7 @@ class RendererCrashHandlerHostLinux : public CrashHandlerHostLinux { RendererCrashHandlerHostLinux() { SetProcessType(); } - ~RendererCrashHandlerHostLinux() {} + virtual ~RendererCrashHandlerHostLinux() {} virtual void SetProcessType() { process_type_ = "renderer"; diff --git a/chrome/browser/extensions/extension_clipboard_api.h b/chrome/browser/extensions/extension_clipboard_api.h index 4789221..d47d50e 100644 --- a/chrome/browser/extensions/extension_clipboard_api.h +++ b/chrome/browser/extensions/extension_clipboard_api.h @@ -14,6 +14,9 @@ class ClipboardFunction : public SyncExtensionFunction { public: virtual bool RunImpl(); virtual bool RunImpl(RenderViewHost* render_view_host) = 0; + + protected: + virtual ~ClipboardFunction() {} }; class ExecuteCopyClipboardFunction : public ClipboardFunction { diff --git a/chrome/browser/extensions/extension_infobar_delegate.h b/chrome/browser/extensions/extension_infobar_delegate.h index 01174ef..2d20d82 100644 --- a/chrome/browser/extensions/extension_infobar_delegate.h +++ b/chrome/browser/extensions/extension_infobar_delegate.h @@ -21,6 +21,9 @@ class ExtensionInfoBarDelegate : public InfoBarDelegate, class DelegateObserver { public: virtual void OnDelegateDeleted() = 0; + + protected: + virtual ~DelegateObserver() {} }; ExtensionInfoBarDelegate(Browser* browser, TabContents* contents, diff --git a/chrome/browser/extensions/pack_extension_job.h b/chrome/browser/extensions/pack_extension_job.h index 2ad95a6..f0d10e1 100644 --- a/chrome/browser/extensions/pack_extension_job.h +++ b/chrome/browser/extensions/pack_extension_job.h @@ -23,6 +23,9 @@ class PackExtensionJob : public base::RefCountedThreadSafe<PackExtensionJob> { virtual void OnPackSuccess(const FilePath& crx_file, const FilePath& key_file) = 0; virtual void OnPackFailure(const std::wstring& message) = 0; + + protected: + virtual ~Client() {} }; PackExtensionJob(Client* client, diff --git a/chrome/browser/gtk/bookmark_bar_instructions_gtk.h b/chrome/browser/gtk/bookmark_bar_instructions_gtk.h index ce711e0..fd19eb2 100644 --- a/chrome/browser/gtk/bookmark_bar_instructions_gtk.h +++ b/chrome/browser/gtk/bookmark_bar_instructions_gtk.h @@ -21,6 +21,9 @@ class BookmarkBarInstructionsGtk : public NotificationObserver { class Delegate { public: virtual void ShowImportDialog() = 0; + + protected: + virtual ~Delegate() {} }; explicit BookmarkBarInstructionsGtk(Delegate* delegate, Profile* profile); diff --git a/chrome/browser/gtk/options/options_layout_gtk.h b/chrome/browser/gtk/options/options_layout_gtk.h index 96bbc8ba..0cc8b7f 100644 --- a/chrome/browser/gtk/options/options_layout_gtk.h +++ b/chrome/browser/gtk/options/options_layout_gtk.h @@ -12,6 +12,8 @@ class OptionsLayoutBuilderGtk { public: + virtual ~OptionsLayoutBuilderGtk() {} + GtkWidget* get_page_widget() { return page_; } @@ -38,7 +40,6 @@ class OptionsLayoutBuilderGtk { protected: // The parent widget GtkWidget* page_; - }; #endif // CHROME_BROWSER_GTK_OPTIONS_OPTIONS_LAYOUT_GTK_H_ diff --git a/chrome/browser/notifications/balloon_host.h b/chrome/browser/notifications/balloon_host.h index 07ddf3d..7b21d27 100644 --- a/chrome/browser/notifications/balloon_host.h +++ b/chrome/browser/notifications/balloon_host.h @@ -113,6 +113,7 @@ class BalloonHost : public RenderViewHostDelegate, virtual RendererPreferences GetRendererPrefs(Profile* profile) const; protected: + virtual ~BalloonHost() {} // Must override in platform specific implementations. virtual void InitRenderWidgetHostView() = 0; virtual RenderWidgetHostView* render_widget_host_view() const = 0; diff --git a/chrome/browser/notifications/notification_delegate.h b/chrome/browser/notifications/notification_delegate.h index 6d69335..2aa8ee8 100644 --- a/chrome/browser/notifications/notification_delegate.h +++ b/chrome/browser/notifications/notification_delegate.h @@ -15,7 +15,6 @@ class NotificationDelegate : public base::RefCountedThreadSafe<NotificationDelegate> { public: - // To be called when the desktop notification is actually shown. virtual void Display() = 0; @@ -29,6 +28,12 @@ class NotificationDelegate // Returns unique id of the notification. virtual std::string id() const = 0; + + protected: + virtual ~NotificationDelegate() {} + + private: + friend class base::RefCountedThreadSafe<NotificationDelegate>; }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_DELEGATE_H_ diff --git a/chrome/browser/page_info_model.h b/chrome/browser/page_info_model.h index a3bee79..63cb79d 100644 --- a/chrome/browser/page_info_model.h +++ b/chrome/browser/page_info_model.h @@ -21,8 +21,11 @@ class Profile; class PageInfoModel { public: class PageInfoModelObserver { - public: - virtual void ModelChanged() = 0; + public: + virtual void ModelChanged() = 0; + + protected: + virtual ~PageInfoModelObserver() {} }; struct SectionInfo { diff --git a/chrome/browser/parsers/metadata_parser.h b/chrome/browser/parsers/metadata_parser.h index 65210fa..65c57d0 100644 --- a/chrome/browser/parsers/metadata_parser.h +++ b/chrome/browser/parsers/metadata_parser.h @@ -13,6 +13,8 @@ class MetadataPropertyIterator { public: MetadataPropertyIterator() {} + virtual ~MetadataPropertyIterator() {} + // Gets the next Property in the iterator. Returns false if at the end // of the list. @@ -29,6 +31,8 @@ class MetadataPropertyIterator { class MetadataParser { public: explicit MetadataParser(const FilePath& path) {} + virtual ~MetadataParser() {} + static const char* kPropertyType; static const char* kPropertyFilesize; diff --git a/chrome/browser/parsers/metadata_parser_factory.h b/chrome/browser/parsers/metadata_parser_factory.h index 2636804..553a785 100644 --- a/chrome/browser/parsers/metadata_parser_factory.h +++ b/chrome/browser/parsers/metadata_parser_factory.h @@ -12,6 +12,7 @@ class MetadataParserFactory { public: MetadataParserFactory() {} + virtual ~MetadataParserFactory() {} // Used to check to see if the parser can parse the given file. This // should not do any additional reading of the file. diff --git a/chrome/browser/renderer_host/render_view_host_delegate.h b/chrome/browser/renderer_host/render_view_host_delegate.h index a56fc57..ed08340 100644 --- a/chrome/browser/renderer_host/render_view_host_delegate.h +++ b/chrome/browser/renderer_host/render_view_host_delegate.h @@ -174,6 +174,9 @@ class RenderViewHostDelegate { // The contents' preferred size changed. virtual void UpdatePreferredSize(const gfx::Size& pref_size) = 0; + + protected: + virtual ~View() {} }; // RendererManagerment ------------------------------------------------------- @@ -199,6 +202,9 @@ class RenderViewHostDelegate { // Called the ResourceDispatcherHost's associate CrossSiteRequestHandler // when a cross-site navigation has been canceled. virtual void OnCrossSiteNavigationCanceled() = 0; + + protected: + virtual ~RendererManagement() {} }; // BrowserIntegration -------------------------------------------------------- @@ -254,6 +260,9 @@ class RenderViewHostDelegate { const std::string& original_lang, const std::string& translated_lang, TranslateErrors::Type error_type) = 0; + + protected: + virtual ~BrowserIntegration() {} }; // Resource ------------------------------------------------------------------ @@ -310,6 +319,9 @@ class RenderViewHostDelegate { // Notification that a document has been loaded in a frame. virtual void DocumentLoadedInFrame() = 0; + + protected: + virtual ~Resource() {} }; // ContentSettings------------------------------------------------------------ @@ -357,6 +369,9 @@ class RenderViewHostDelegate { // page. virtual void OnGeolocationPermissionSet(const GURL& requesting_frame, bool allowed) = 0; + + protected: + virtual ~ContentSettings() {} }; // Save ---------------------------------------------------------------------- @@ -382,6 +397,9 @@ class RenderViewHostDelegate { virtual void OnReceivedSerializedHtmlData(const GURL& frame_url, const std::string& data, int32 status) = 0; + + protected: + virtual ~Save() {} }; // Printing ------------------------------------------------------------------ @@ -397,6 +415,9 @@ class RenderViewHostDelegate { // EMF memory mapped data. virtual void DidPrintPage( const ViewHostMsg_DidPrintPage_Params& params) = 0; + + protected: + virtual ~Printing() {} }; // FavIcon ------------------------------------------------------------------- @@ -420,6 +441,9 @@ class RenderViewHostDelegate { virtual void UpdateFavIconURL(RenderViewHost* render_view_host, int32 page_id, const GURL& icon_url) = 0; + + protected: + virtual ~FavIcon() {} }; // Autocomplete -------------------------------------------------------------- @@ -446,6 +470,9 @@ class RenderViewHostDelegate { // Autocomplete suggestion from the database. virtual void RemoveAutocompleteEntry(const string16& field_name, const string16& value) = 0; + + protected: + virtual ~Autocomplete() {} }; // AutoFill ------------------------------------------------------------------ @@ -482,6 +509,9 @@ class RenderViewHostDelegate { // Called when the user selects the 'AutoFill Options...' suggestions in the // AutoFill popup. virtual void ShowAutoFillDialog() = 0; + + protected: + virtual ~AutoFill() {} }; // BookmarkDrag -------------------------------------------------------------- @@ -493,6 +523,9 @@ class RenderViewHostDelegate { virtual void OnDragOver(const BookmarkDragData& data) = 0; virtual void OnDragLeave(const BookmarkDragData& data) = 0; virtual void OnDrop(const BookmarkDragData& data) = 0; + + protected: + virtual ~BookmarkDrag() {} }; // SSL ----------------------------------------------------------------------- @@ -504,6 +537,9 @@ class RenderViewHostDelegate { // returning them to |handler|. virtual void ShowClientCertificateRequestDialog( scoped_refptr<SSLClientAuthHandler> handler) = 0; + + protected: + virtual ~SSL() {} }; // --------------------------------------------------------------------------- @@ -555,7 +591,7 @@ class RenderViewHostDelegate { // The RenderView is going to be deleted. This is called when each // RenderView is going to be destroyed - virtual void RenderViewDeleted(RenderViewHost* render_view_host) { } + virtual void RenderViewDeleted(RenderViewHost* render_view_host) {} // The RenderView was navigated to a different page. virtual void DidNavigate(RenderViewHost* render_view_host, @@ -724,6 +760,9 @@ class RenderViewHostDelegate { // The content being displayed is a PDF. virtual void SetDisplayingPDFContent() {} + + protected: + virtual ~RenderViewHostDelegate() {} }; #endif // CHROME_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_DELEGATE_H_ diff --git a/chrome/browser/renderer_host/render_widget_host_painting_observer.h b/chrome/browser/renderer_host/render_widget_host_painting_observer.h index 70d96fd..529d35f 100644 --- a/chrome/browser/renderer_host/render_widget_host_painting_observer.h +++ b/chrome/browser/renderer_host/render_widget_host_painting_observer.h @@ -33,6 +33,9 @@ class RenderWidgetHostPaintingObserver { RenderWidgetHost* widget, int tag, const gfx::Size& size) = 0; + + protected: + virtual ~RenderWidgetHostPaintingObserver() {} }; #endif // CHROME_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_PAINTING_OBSERVER_H_ diff --git a/chrome/browser/search_engines/template_url_model.h b/chrome/browser/search_engines/template_url_model.h index 95a4a8d..885b382 100644 --- a/chrome/browser/search_engines/template_url_model.h +++ b/chrome/browser/search_engines/template_url_model.h @@ -49,6 +49,9 @@ class TemplateURLModelObserver { public: // Notification that the template url model has changed in some way. virtual void OnTemplateURLModelChanged() = 0; + + protected: + virtual ~TemplateURLModelObserver() {} }; class TemplateURLModel : public WebDataServiceConsumer, @@ -67,8 +70,7 @@ class TemplateURLModel : public WebDataServiceConsumer, explicit TemplateURLModel(Profile* profile); // The following is for testing. TemplateURLModel(const Initializer* initializers, const int count); - - ~TemplateURLModel(); + virtual ~TemplateURLModel(); // Generates a suitable keyword for the specified url. Returns an empty // string if a keyword couldn't be generated. If |autodetected| is true, we diff --git a/chrome/browser/spellcheck_host_observer.h b/chrome/browser/spellcheck_host_observer.h index 222cd91..ff74802 100644 --- a/chrome/browser/spellcheck_host_observer.h +++ b/chrome/browser/spellcheck_host_observer.h @@ -10,6 +10,9 @@ class SpellCheckHostObserver { public: // Invoked on the UI thread when SpellCheckHost is initialized. virtual void SpellCheckHostInitialized() = 0; + + protected: + virtual ~SpellCheckHostObserver() {} }; #endif // CHROME_BROWSER_SPELLCHECK_HOST_OBSERVER_H_ diff --git a/chrome/browser/sync/util/channel.h b/chrome/browser/sync/util/channel.h index ba516b6..0b98347 100644 --- a/chrome/browser/sync/util/channel.h +++ b/chrome/browser/sync/util/channel.h @@ -64,6 +64,9 @@ template <typename EventType> class ChannelEventHandler : public EventHandler { public: virtual void HandleChannelEvent(const EventType& event) = 0; + + protected: + virtual ~ChannelEventHandler() {} }; // This class manages a connection to a channel. When it is destroyed, it diff --git a/chrome/browser/tab_contents/constrained_window.h b/chrome/browser/tab_contents/constrained_window.h index 3dc6592..7de2ade 100644 --- a/chrome/browser/tab_contents/constrained_window.h +++ b/chrome/browser/tab_contents/constrained_window.h @@ -53,6 +53,9 @@ class ConstrainedWindow { // Sets focus on the Constrained Window. virtual void FocusConstrainedWindow() {} + + protected: + virtual ~ConstrainedWindow() {} }; #endif // CHROME_BROWSER_TAB_CONTENTS_CONSTRAINED_WINDOW_H_ diff --git a/chrome/browser/tab_contents/render_view_host_manager.h b/chrome/browser/tab_contents/render_view_host_manager.h index 0fa0f26..5a6e0f7 100644 --- a/chrome/browser/tab_contents/render_view_host_manager.h +++ b/chrome/browser/tab_contents/render_view_host_manager.h @@ -67,6 +67,9 @@ class RenderViewHostManager // Focuses the location bar. virtual void SetFocusToLocationBar(bool select_all) = 0; + + protected: + virtual ~Delegate() {} }; // Both delegate pointers must be non-NULL and are not owned by this class. @@ -76,7 +79,7 @@ class RenderViewHostManager // You must call Init() before using this class. RenderViewHostManager(RenderViewHostDelegate* render_view_delegate, Delegate* delegate); - ~RenderViewHostManager(); + virtual ~RenderViewHostManager(); // For arguments, see TabContents constructor. void Init(Profile* profile, diff --git a/chrome/browser/tab_contents/tab_contents_delegate.h b/chrome/browser/tab_contents/tab_contents_delegate.h index 7854003..fdd0964 100644 --- a/chrome/browser/tab_contents/tab_contents_delegate.h +++ b/chrome/browser/tab_contents/tab_contents_delegate.h @@ -276,7 +276,7 @@ class TabContentsDelegate : public AutomationResourceRoutingDelegate { virtual void ContentTypeChanged(TabContents* source); protected: - ~TabContentsDelegate(); + virtual ~TabContentsDelegate(); }; #endif // CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_DELEGATE_H_ diff --git a/chrome/browser/tabs/tab_strip_model.h b/chrome/browser/tabs/tab_strip_model.h index d8eba2e..99036cc 100644 --- a/chrome/browser/tabs/tab_strip_model.h +++ b/chrome/browser/tabs/tab_strip_model.h @@ -129,6 +129,9 @@ class TabStripModelObserver { // Sent when the tabstrip model is about to be deleted and any reference held // must be dropped. virtual void TabStripModelDeleted(); + + protected: + virtual ~TabStripModelObserver() {} }; /////////////////////////////////////////////////////////////////////////////// @@ -236,6 +239,9 @@ class TabStripModelDelegate { // Toggles the use of the vertical tabstrip. virtual void ToggleUseVerticalTabs() = 0; + + protected: + virtual ~TabStripModelDelegate() {} }; //////////////////////////////////////////////////////////////////////////////// diff --git a/chrome/browser/views/bookmark_bar_instructions_view.h b/chrome/browser/views/bookmark_bar_instructions_view.h index c598f101..1e82e5e 100644 --- a/chrome/browser/views/bookmark_bar_instructions_view.h +++ b/chrome/browser/views/bookmark_bar_instructions_view.h @@ -26,6 +26,9 @@ class BookmarkBarInstructionsView : public views::View, class Delegate { public: virtual void ShowImportDialog() = 0; + + protected: + virtual ~Delegate() {} }; explicit BookmarkBarInstructionsView(Delegate* delegate); diff --git a/chrome/browser/views/bookmark_context_menu.h b/chrome/browser/views/bookmark_context_menu.h index d141277..ea863c4 100644 --- a/chrome/browser/views/bookmark_context_menu.h +++ b/chrome/browser/views/bookmark_context_menu.h @@ -17,6 +17,9 @@ class BookmarkContextMenuObserver { // Invoked after the items have been removed from the model. virtual void DidRemoveBookmarks() = 0; + + protected: + virtual ~BookmarkContextMenuObserver() {} }; class BookmarkContextMenu : public BookmarkContextMenuControllerViewsDelegate, diff --git a/chrome/browser/views/bookmark_menu_controller_views.h b/chrome/browser/views/bookmark_menu_controller_views.h index 511483a..f858bfd 100644 --- a/chrome/browser/views/bookmark_menu_controller_views.h +++ b/chrome/browser/views/bookmark_menu_controller_views.h @@ -43,6 +43,9 @@ class BookmarkMenuController : public BaseBookmarkModelObserver, class Observer { public: virtual void BookmarkMenuDeleted(BookmarkMenuController* controller) = 0; + + protected: + virtual ~Observer() {} }; // Creates a BookmarkMenuController showing the children of |node| starting @@ -121,7 +124,7 @@ class BookmarkMenuController : public BaseBookmarkModelObserver, typedef std::map<const BookmarkNode*, int> NodeToMenuIDMap; // BookmarkMenuController deletes itself as necessary. - ~BookmarkMenuController(); + virtual ~BookmarkMenuController(); // Creates a menu and adds it to node_to_menu_id_map_. This uses // BuildMenu to recursively populate the menu. diff --git a/chrome/browser/views/tab_contents/native_tab_contents_container.h b/chrome/browser/views/tab_contents/native_tab_contents_container.h index 9c540b9..714be9a 100644 --- a/chrome/browser/views/tab_contents/native_tab_contents_container.h +++ b/chrome/browser/views/tab_contents/native_tab_contents_container.h @@ -40,6 +40,8 @@ class NativeTabContentsContainer { // Retrieves the views::View that hosts the TabContents. virtual views::View* GetView() = 0; + protected: + virtual ~NativeTabContentsContainer() {} }; #endif // CHROME_BROWSER_VIEWS_TAB_CONTENTS_NATIVE_TAB_CONTENTS_CONTAINER_H_ diff --git a/chrome/browser/views/tabs/base_tab.h b/chrome/browser/views/tabs/base_tab.h index 0cc56c4..78c2d94 100644 --- a/chrome/browser/views/tabs/base_tab.h +++ b/chrome/browser/views/tabs/base_tab.h @@ -33,7 +33,7 @@ class BaseTab : public AnimationDelegate, public views::View { public: explicit BaseTab(TabController* controller); - ~BaseTab(); + virtual ~BaseTab(); // Sets the data this tabs displays. Invokes DataChanged for subclasses to // update themselves appropriately. |