OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/webui/sync_setup_handler.h" | 5 #include "chrome/browser/ui/webui/sync_setup_handler.h" |
6 | 6 |
7 #include "base/json/json_reader.h" | 7 #include "base/json/json_reader.h" |
8 #include "base/json/json_writer.h" | 8 #include "base/json/json_writer.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
294 NewCallback(this, &SyncSetupHandler::HandleShowErrorUI)); | 294 NewCallback(this, &SyncSetupHandler::HandleShowErrorUI)); |
295 web_ui_->RegisterMessageCallback("SyncSetupShowSetupUI", | 295 web_ui_->RegisterMessageCallback("SyncSetupShowSetupUI", |
296 NewCallback(this, &SyncSetupHandler::HandleShowSetupUI)); | 296 NewCallback(this, &SyncSetupHandler::HandleShowSetupUI)); |
297 } | 297 } |
298 | 298 |
299 // Ideal(?) solution here would be to mimic the ClientLogin overlay. Since | 299 // Ideal(?) solution here would be to mimic the ClientLogin overlay. Since |
300 // this UI must render an external URL, that overlay cannot be used directly. | 300 // this UI must render an external URL, that overlay cannot be used directly. |
301 // The current implementation is functional, but fails asthetically. | 301 // The current implementation is functional, but fails asthetically. |
302 // TODO(rickcam): Bug 90711: Update UI for OAuth sign-in flow | 302 // TODO(rickcam): Bug 90711: Update UI for OAuth sign-in flow |
303 void SyncSetupHandler::ShowOAuthLogin() { | 303 void SyncSetupHandler::ShowOAuthLogin() { |
304 web_ui_->GetProfile()->GetProfileSyncService()->signin()->StartOAuthSignIn(); | 304 Profile* profile = Profile::FromWebUI(web_ui_); |
| 305 profile->GetProfileSyncService()->signin()->StartOAuthSignIn(); |
305 } | 306 } |
306 | 307 |
307 void SyncSetupHandler::ShowGaiaLogin(const DictionaryValue& args) { | 308 void SyncSetupHandler::ShowGaiaLogin(const DictionaryValue& args) { |
308 StringValue page("login"); | 309 StringValue page("login"); |
309 web_ui_->CallJavascriptFunction( | 310 web_ui_->CallJavascriptFunction( |
310 "SyncSetupOverlay.showSyncSetupPage", page, args); | 311 "SyncSetupOverlay.showSyncSetupPage", page, args); |
311 } | 312 } |
312 | 313 |
313 void SyncSetupHandler::ShowGaiaSuccessAndClose() { | 314 void SyncSetupHandler::ShowGaiaSuccessAndClose() { |
314 web_ui_->CallJavascriptFunction("SyncSetupOverlay.showSuccessAndClose"); | 315 web_ui_->CallJavascriptFunction("SyncSetupOverlay.showSuccessAndClose"); |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
425 flow_->OnPassphraseCancel(); | 426 flow_->OnPassphraseCancel(); |
426 } | 427 } |
427 | 428 |
428 void SyncSetupHandler::HandleAttachHandler(const ListValue* args) { | 429 void SyncSetupHandler::HandleAttachHandler(const ListValue* args) { |
429 OpenSyncSetup(); | 430 OpenSyncSetup(); |
430 } | 431 } |
431 | 432 |
432 void SyncSetupHandler::HandleShowErrorUI(const ListValue* args) { | 433 void SyncSetupHandler::HandleShowErrorUI(const ListValue* args) { |
433 DCHECK(!flow_); | 434 DCHECK(!flow_); |
434 | 435 |
435 ProfileSyncService* service = | 436 Profile* profile = Profile::FromWebUI(web_ui_); |
436 web_ui_->GetProfile()->GetProfileSyncService(); | 437 ProfileSyncService* service = profile->GetProfileSyncService(); |
437 DCHECK(service); | 438 DCHECK(service); |
438 | 439 |
439 service->get_wizard().Step(SyncSetupWizard::NONFATAL_ERROR); | 440 service->get_wizard().Step(SyncSetupWizard::NONFATAL_ERROR); |
440 | 441 |
441 // Show the Sync Setup page. | 442 // Show the Sync Setup page. |
442 if (service->get_wizard().IsVisible()) { | 443 if (service->get_wizard().IsVisible()) { |
443 service->get_wizard().Focus(); | 444 service->get_wizard().Focus(); |
444 } else { | 445 } else { |
445 StringValue page("syncSetup"); | 446 StringValue page("syncSetup"); |
446 web_ui_->CallJavascriptFunction("OptionsPage.navigateToPage", page); | 447 web_ui_->CallJavascriptFunction("OptionsPage.navigateToPage", page); |
447 } | 448 } |
448 } | 449 } |
449 | 450 |
450 void SyncSetupHandler::HandleShowSetupUI(const ListValue* args) { | 451 void SyncSetupHandler::HandleShowSetupUI(const ListValue* args) { |
451 DCHECK(!flow_); | 452 DCHECK(!flow_); |
452 ShowSetupUI(); | 453 ShowSetupUI(); |
453 } | 454 } |
454 | 455 |
455 void SyncSetupHandler::CloseSyncSetup() { | 456 void SyncSetupHandler::CloseSyncSetup() { |
456 if (flow_) { | 457 if (flow_) { |
457 flow_->OnDialogClosed(std::string()); | 458 flow_->OnDialogClosed(std::string()); |
458 flow_ = NULL; | 459 flow_ = NULL; |
459 } | 460 } |
460 } | 461 } |
461 | 462 |
462 void SyncSetupHandler::OpenSyncSetup() { | 463 void SyncSetupHandler::OpenSyncSetup() { |
463 DCHECK(web_ui_); | 464 DCHECK(web_ui_); |
464 DCHECK(!flow_); | 465 DCHECK(!flow_); |
465 | 466 |
466 ProfileSyncService* service = web_ui_->GetProfile()->GetProfileSyncService(); | 467 Profile* profile = Profile::FromWebUI(web_ui_); |
| 468 ProfileSyncService* service = profile->GetProfileSyncService(); |
467 if (!service) { | 469 if (!service) { |
468 // If there's no sync service, the user tried to manually invoke a syncSetup | 470 // If there's no sync service, the user tried to manually invoke a syncSetup |
469 // URL, but sync features are disabled. We need to close the overlay for | 471 // URL, but sync features are disabled. We need to close the overlay for |
470 // this (rare) case. | 472 // this (rare) case. |
471 web_ui_->CallJavascriptFunction("OptionsPage.closeOverlay"); | 473 web_ui_->CallJavascriptFunction("OptionsPage.closeOverlay"); |
472 return; | 474 return; |
473 } | 475 } |
474 | 476 |
475 // If the wizard is not visible, step into the appropriate UI state. | 477 // If the wizard is not visible, step into the appropriate UI state. |
476 if (!service->get_wizard().IsVisible()) | 478 if (!service->get_wizard().IsVisible()) |
477 ShowSetupUI(); | 479 ShowSetupUI(); |
478 | 480 |
479 // The SyncSetupFlow will set itself as the |flow_|. | 481 // The SyncSetupFlow will set itself as the |flow_|. |
480 if (!service->get_wizard().AttachSyncSetupHandler(this)) { | 482 if (!service->get_wizard().AttachSyncSetupHandler(this)) { |
481 // If attach fails, a wizard is already activated and attached to a flow | 483 // If attach fails, a wizard is already activated and attached to a flow |
482 // handler. | 484 // handler. |
483 web_ui_->CallJavascriptFunction("OptionsPage.closeOverlay"); | 485 web_ui_->CallJavascriptFunction("OptionsPage.closeOverlay"); |
484 service->get_wizard().Focus(); | 486 service->get_wizard().Focus(); |
485 } | 487 } |
486 } | 488 } |
OLD | NEW |