Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4946)

Unified Diff: chrome/browser/ui/webui/options/password_manager_handler.h

Issue 1193143003: Enable import/export of passwords into/from Password Manager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/options/password_manager_handler.h
diff --git a/chrome/browser/ui/webui/options/password_manager_handler.h b/chrome/browser/ui/webui/options/password_manager_handler.h
index 5fa0847d013b45cc22d82a245bd8d39247085a7a..4a559a9e2b22df89f8ed330bc1d95737ea3b6a2f 100644
--- a/chrome/browser/ui/webui/options/password_manager_handler.h
+++ b/chrome/browser/ui/webui/options/password_manager_handler.h
@@ -8,26 +8,40 @@
#include <string>
#include <vector>
+#include "base/gtest_prod_util.h"
Garrett Casto 2015/07/07 22:11:09 Looks like this isn't used.
#include "base/prefs/pref_member.h"
#include "chrome/browser/ui/passwords/password_manager_presenter.h"
#include "chrome/browser/ui/passwords/password_ui_view.h"
#include "chrome/browser/ui/webui/options/options_ui.h"
+#include "components/password_manager/core/browser/import/password_importer.h"
+#include "ui/shell_dialogs/select_file_dialog.h"
+
+class PasswordManagerHandlerTest;
namespace options {
// The WebUI based PasswordUIView. Displays passwords in the web ui.
class PasswordManagerHandler : public OptionsPageUIHandler,
- public PasswordUIView {
+ public PasswordUIView,
+ public ui::SelectFileDialog::Listener {
public:
PasswordManagerHandler();
+ explicit PasswordManagerHandler(PasswordManagerPresenter* presenter);
~PasswordManagerHandler() override;
+ friend class ::PasswordManagerHandlerTest;
Garrett Casto 2015/07/07 22:11:09 It doesn't actually matter where this is, but gene
+
// OptionsPageUIHandler implementation.
void GetLocalizedValues(base::DictionaryValue* localized_strings) override;
void InitializeHandler() override;
void InitializePage() override;
void RegisterMessages() override;
+ // ui::SelectFileDialog::Listener implementation
+ void FileSelected(const base::FilePath& path,
+ int index,
+ void* params) override;
+
// PasswordUIView implementation.
Profile* GetProfile() override;
void ShowPassword(
@@ -60,11 +74,34 @@ class PasswordManagerHandler : public OptionsPageUIHandler,
// |index| The index of the entry.
void HandleRequestShowPassword(const base::ListValue* args);
+ // Import from CSV/JSON file. The steps are:
+ // 1. user click import button -> HandlePasswordImport() ->
+ // start file selector
+ // 2. user selects file -> ImportPasswordFileSeleted() -> read to memory
+ // 3. read completes -> ImportPasswordFileRead() -> store to PasswordStore
+ void HandlePasswordImport(const base::ListValue* args);
+ void ImportPasswordFileSelected(const base::FilePath& path);
+ void ImportPasswordFileRead(password_manager::PasswordImporter::Result result,
+ const std::vector<autofill::PasswordForm>& forms);
+
+ // Export to CSV/JSON file. The steps are:
+ // 1. user click export button -> HandlePasswordExport() ->
+ // check OS password if necessary -> start file selector
+ // 2. user selects file -> ExportPasswordFileSeleted() ->
+ // write to memory buffer -> start write operation
+ // 3. Writing completes -> ExportPaswordFileWritten()
+ void HandlePasswordExport(const base::ListValue* args);
+ void ExportPasswordFileSelected(const base::FilePath& path);
+ void ExportPasswordFileWritten();
+
// User pref for storing accept languages.
std::string languages_;
// The PasswordManagerPresenter object owned by the this view.
- PasswordManagerPresenter password_manager_presenter_;
+ scoped_ptr<PasswordManagerPresenter> password_manager_presenter_;
+
+ // Handle for file picker
+ scoped_refptr<ui::SelectFileDialog> selected_file_dialog_;
DISALLOW_COPY_AND_ASSIGN(PasswordManagerHandler);
};

Powered by Google App Engine
This is Rietveld 408576698