summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync/sync_setup_flow.cc
diff options
context:
space:
mode:
authorakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-07 22:16:00 +0000
committerakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-07 22:16:00 +0000
commit4d4e4af1cc0f3cfc483e2d90c00f99dccf27071d (patch)
treec73a18d8b253069f2f09bf07afae3f9360911e30 /chrome/browser/sync/sync_setup_flow.cc
parent9d7a5dded02f75bbf4dce8857d871d8d18d9c9ac (diff)
downloadchromium_src-4d4e4af1cc0f3cfc483e2d90c00f99dccf27071d.zip
chromium_src-4d4e4af1cc0f3cfc483e2d90c00f99dccf27071d.tar.gz
chromium_src-4d4e4af1cc0f3cfc483e2d90c00f99dccf27071d.tar.bz2
Integrated customize sync dialog with sync setup wizard on OS X.
Changed ShowHtmlDialog() on OS X to return the created window. BUG=34209 TEST=manual Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=43796 Review URL: http://codereview.chromium.org/1535018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43886 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync/sync_setup_flow.cc')
-rw-r--r--chrome/browser/sync/sync_setup_flow.cc31
1 files changed, 16 insertions, 15 deletions
diff --git a/chrome/browser/sync/sync_setup_flow.cc b/chrome/browser/sync/sync_setup_flow.cc
index 1ccc8a3..595b3a3 100644
--- a/chrome/browser/sync/sync_setup_flow.cc
+++ b/chrome/browser/sync/sync_setup_flow.cc
@@ -55,9 +55,11 @@ static std::string GetJsonResponse(const Value* content) {
}
void FlowHandler::RegisterMessages() {
-#if defined(OS_WIN) || defined(OS_LINUX)
dom_ui_->RegisterMessageCallback("ShowCustomize",
NewCallback(this, &FlowHandler::HandleUserClickedCustomize));
+ // On OS X, the customize dialog is modal to the HTML window so we
+ // don't need to hook up the two functions below.
+#if defined(OS_WIN) || defined(OS_LINUX)
dom_ui_->RegisterMessageCallback("ClickCustomizeOk",
NewCallback(this, &FlowHandler::ClickCustomizeOk));
dom_ui_->RegisterMessageCallback("ClickCustomizeCancel",
@@ -177,7 +179,8 @@ SyncSetupFlow::SyncSetupFlow(SyncSetupWizard::State start_state,
login_start_time_(base::TimeTicks::Now()),
flow_handler_(new FlowHandler()),
owns_flow_handler_(true),
- service_(service) {
+ service_(service),
+ html_dialog_window_(NULL) {
flow_handler_->set_flow(this);
}
@@ -261,11 +264,7 @@ void SyncSetupFlow::GetArgsForGaiaLogin(const ProfileSyncService* service,
args->SetString(L"captchaUrl", error.captcha().image_url.spec());
-#if defined(OS_WIN) || defined(OS_LINUX)
args->SetBoolean(L"showCustomize", true);
-#else
- args->SetBoolean(L"showCustomize", false);
-#endif
}
void SyncSetupFlow::GetDOMMessageHandlers(
@@ -338,21 +337,23 @@ SyncSetupFlow* SyncSetupFlow::Run(ProfileSyncService* service,
SyncSetupFlow* flow = new SyncSetupFlow(start, end, json_args,
container, service);
+#if defined(OS_MACOSX)
+ // TODO(akalin): Figure out a cleaner way to do this than to have this
+ // gross per-OS behavior, i.e. have a cross-platform ShowHtmlDialog()
+ // function that is not tied to a browser instance. Note that if we do
+ // that, we'll have to fix sync_setup_wizard_unittest.cc as it relies on
+ // being able to intercept ShowHtmlDialog() calls.
+ flow->html_dialog_window_ =
+ html_dialog_window_controller::ShowHtmlDialog(
+ flow, service->profile());
+#else
Browser* b = BrowserList::GetLastActive();
if (b) {
b->BrowserShowHtmlDialog(flow, NULL);
} else {
- // TODO(akalin): Figure out a cleaner way to do this than to have this
- // gross per-OS behavior, i.e. have a cross-platform ShowHtmlDialog()
- // function that is not tied to a browser instance. Note that if we do
- // that, we'll have to fix sync_setup_wizard_unittest.cc as it relies on
- // being able to intercept ShowHtmlDialog() calls.
-#if defined(OS_MACOSX)
- html_dialog_window_controller::ShowHtmlDialog(flow, service->profile());
-#else
delete flow;
return NULL;
-#endif
}
+#endif // defined(OS_MACOSX)
return flow;
}