When looking at this bug, I found at least the following issues:

1) PasswordManagerHandler was not canceling requests if new requests were made (by double-clicking the "Manage Saved Passwords..." button with a slow database - simulated with long Sleep).
2) PasswordStore starts its handle numbering at 0 meaning that the very first request is non-true and could hit DCHECK(s).
3) PasswordManagerHandler doesn't free the results.

When talking with the DOMUI TL (jhawkins) and an author of PasswordStore (stuartmorgan), I learned that it was modeled after HistoryService, which had since been refactored into a reusable suite of classes in content/browser/cancelable_request.h

So the CL will include fixes for the 3 issues, as well as a refactor to use the shared code in cancelable_requst.h

BUG=71466
TEST=chrome://settings/personal, then click "Manage Saved Passwords".  Put
PlatformThread::Sleep(10000), then try double-clicking the button to see no error.

Review URL: http://codereview.chromium.org/6646051

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79625 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index 31cfa033..d5000e7 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -1422,6 +1422,8 @@
         'browser/password_manager/password_manager.h',
         'browser/password_manager/password_store.cc',
         'browser/password_manager/password_store.h',
+        'browser/password_manager/password_store_consumer.cc',
+        'browser/password_manager/password_store_consumer.h',
         'browser/password_manager/password_store_default.cc',
         'browser/password_manager/password_store_default.h',
         'browser/password_manager/password_store_mac.cc',