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

Unified Diff: trunk/src/chrome/browser/first_run/first_run_internal.h

Issue 15968002: Revert 201837 "OOP import on Windows." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 7 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: trunk/src/chrome/browser/first_run/first_run_internal.h
===================================================================
--- trunk/src/chrome/browser/first_run/first_run_internal.h (revision 201967)
+++ trunk/src/chrome/browser/first_run/first_run_internal.h (working copy)
@@ -11,6 +11,8 @@
#include "base/compiler_specific.h"
#include "base/gtest_prod_util.h"
#include "base/memory/ref_counted.h"
+#include "base/message_loop.h"
+#include "chrome/browser/importer/importer_progress_observer.h"
#include "ui/gfx/native_widget_types.h"
class CommandLine;
@@ -42,6 +44,41 @@
// This variable should only be accessed through IsChromeFirstRun().
extern FirstRunState first_run_;
+// This class acts as an observer for the ImporterProgressObserver::ImportEnded
+// callback. When the import process is started, certain errors may cause
+// ImportEnded() to be called synchronously, but the typical case is that
+// ImportEnded() is called asynchronously. Thus we have to handle both cases.
+// TODO(gab): Move this to the unnamed namespace of first_run.cc as part of the
+// refactoring for OOP import (http://crbug.com/219419).
+class ImportEndedObserver : public importer::ImporterProgressObserver {
+ public:
+ ImportEndedObserver() : ended_(false),
+ should_quit_message_loop_(false) {}
+ virtual ~ImportEndedObserver() {}
+
+ // importer::ImporterProgressObserver:
+ virtual void ImportStarted() OVERRIDE {}
+ virtual void ImportItemStarted(importer::ImportItem item) OVERRIDE {}
+ virtual void ImportItemEnded(importer::ImportItem item) OVERRIDE {}
+ virtual void ImportEnded() OVERRIDE;
+
+ void set_should_quit_message_loop() {
+ should_quit_message_loop_ = true;
+ }
+
+ bool ended() const {
+ return ended_;
+ }
+
+ private:
+ // Set if the import has ended.
+ bool ended_;
+
+ // Set by the client (via set_should_quit_message_loop) if, when the import
+ // ends, this class should quit the message loop.
+ bool should_quit_message_loop_;
+};
+
// Loads master preferences from the master preference file into the installer
// master preferences. Passes the master preference file path out in
// master_prefs_path. Returns the pointer to installer::MasterPreferences object
@@ -74,6 +111,28 @@
// a linux specific implementation.
bool IsOrganicFirstRun();
+// Imports settings. This may be done in a separate process depending on the
+// platform, but it will always block until done. The return value indicates
+// success.
+// This functions has a common implementation for OS_POSIX, and a
+// windows specific implementation.
+bool ImportSettings(Profile* profile,
+ ImporterHost* importer_host,
+ scoped_refptr<ImporterList> importer_list,
+ int items_to_import);
+
+// Sets import preferences and launch the import process.
+void SetImportPreferencesAndLaunchImport(
+ MasterPrefs* out_prefs,
+ installer::MasterPreferences* install_prefs);
+
+int ImportBookmarkFromFileIfNeeded(Profile* profile,
+ const CommandLine& cmdline);
+
+#if !defined(OS_WIN)
+bool ImportBookmarks(const base::FilePath& import_bookmarks_path);
+#endif
+
// Shows the EULA dialog if required. Returns true if the EULA is accepted,
// returns false if the EULA has not been accepted, in which case the browser
// should exit.
« no previous file with comments | « trunk/src/chrome/browser/first_run/first_run_browsertest.cc ('k') | trunk/src/chrome/browser/first_run/first_run_linux.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698