summaryrefslogtreecommitdiffstats
path: root/chrome/browser/login_model.h
diff options
context:
space:
mode:
authorjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-16 01:07:08 +0000
committerjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-16 01:07:08 +0000
commit135fd3b65dac543c78543f85f83b4d0ea83d5184 (patch)
tree154c664fec0b39e5f263cc7a8616c4cdcb983d1d /chrome/browser/login_model.h
parent20cb5f48d36abeb25bbf6cdd6a5f6debe014e8b1 (diff)
downloadchromium_src-135fd3b65dac543c78543f85f83b4d0ea83d5184.zip
chromium_src-135fd3b65dac543c78543f85f83b4d0ea83d5184.tar.gz
chromium_src-135fd3b65dac543c78543f85f83b4d0ea83d5184.tar.bz2
Give classes with virtual methods virtual protected d'tors instead of non-virtual public implicit d'tors.
Was originally: Replace public nonvirtual destructors in classes with virtual members with protected nonvirtual destructors where possible, and with public virtual destructors where destruction of a derived class occurs. (chrome/browser/[a-m]* only) (Part 4 of http://www.gotw.ca/publications/mill18.htm has a rationale for why public nonvirtual destructors in classes with virtual members is dangerous.) BUG=none TEST=base_unittests & app_unittests Review URL: http://codereview.chromium.org/201100 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34634 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/login_model.h')
-rw-r--r--chrome/browser/login_model.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/chrome/browser/login_model.h b/chrome/browser/login_model.h
index cbd2fef..22c50c5 100644
--- a/chrome/browser/login_model.h
+++ b/chrome/browser/login_model.h
@@ -15,6 +15,9 @@ class LoginModelObserver {
// as a match for the pending login prompt.
virtual void OnAutofillDataAvailable(const std::wstring& username,
const std::wstring& password) = 0;
+
+ protected:
+ virtual ~LoginModelObserver() {}
};
class LoginModel {
@@ -23,6 +26,9 @@ class LoginModel {
// observer can be null, signifying there is no longer any observer
// interested in the data.
virtual void SetObserver(LoginModelObserver* observer) = 0;
+
+ protected:
+ virtual ~LoginModel() {}
};
#endif // CHROME_BROWSER_LOGIN_MODEL_H_