Index: chrome/browser/extensions/app_notify_channel_ui_impl.cc |
diff --git a/chrome/browser/extensions/app_notify_channel_ui_impl.cc b/chrome/browser/extensions/app_notify_channel_ui_impl.cc |
deleted file mode 100644 |
index b01ec681b935ec71c4d442e5002905332d5cd308..0000000000000000000000000000000000000000 |
--- a/chrome/browser/extensions/app_notify_channel_ui_impl.cc |
+++ /dev/null |
@@ -1,229 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/extensions/app_notify_channel_ui_impl.h" |
- |
-#include "base/utf_string_conversions.h" |
-#include "chrome/browser/api/infobars/confirm_infobar_delegate.h" |
-#include "chrome/browser/api/infobars/infobar_service.h" |
-#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/signin/signin_manager.h" |
-#include "chrome/browser/signin/signin_manager_factory.h" |
-#include "chrome/browser/sync/profile_sync_service.h" |
-#include "chrome/browser/sync/profile_sync_service_factory.h" |
-#include "chrome/browser/ui/browser.h" |
-#include "chrome/browser/ui/browser_finder.h" |
-#include "chrome/browser/ui/chrome_pages.h" |
-#include "chrome/browser/ui/webui/signin/login_ui_service.h" |
-#include "chrome/browser/ui/webui/signin/login_ui_service_factory.h" |
-#include "chrome/common/url_constants.h" |
-#include "content/public/browser/notification_details.h" |
-#include "content/public/browser/notification_observer.h" |
-#include "content/public/browser/notification_registrar.h" |
-#include "content/public/browser/notification_service.h" |
-#include "content/public/browser/notification_source.h" |
-#include "content/public/browser/notification_types.h" |
-#include "grit/generated_resources.h" |
-#include "ui/base/l10n/l10n_util.h" |
- |
-namespace extensions { |
- |
-namespace { |
- |
-class AppNotifyChannelUIInfoBarDelegate : public ConfirmInfoBarDelegate { |
- public: |
- // Creates an app notify channel UI delegate and adds it to |infobar_service|. |
- static void Create(InfoBarService* infobar_service, |
- AppNotifyChannelUIImpl* creator, |
- const std::string& app_name); |
- |
- // ConfirmInfoBarDelegate. |
- virtual string16 GetMessageText() const OVERRIDE; |
- virtual string16 GetButtonLabel(InfoBarButton button) const OVERRIDE; |
- virtual bool Accept() OVERRIDE; |
- virtual bool Cancel() OVERRIDE; |
- virtual void InfoBarDismissed() OVERRIDE; |
- |
- private: |
- AppNotifyChannelUIInfoBarDelegate(AppNotifyChannelUIImpl* creator, |
- InfoBarService* infobar_service, |
- const std::string& app_name); |
- virtual ~AppNotifyChannelUIInfoBarDelegate(); |
- |
- AppNotifyChannelUIImpl* creator_; |
- std::string app_name_; |
- |
- DISALLOW_COPY_AND_ASSIGN(AppNotifyChannelUIInfoBarDelegate); |
-}; |
- |
-// static |
-void AppNotifyChannelUIInfoBarDelegate::Create(InfoBarService* infobar_service, |
- AppNotifyChannelUIImpl* creator, |
- const std::string& app_name) { |
- infobar_service->AddInfoBar(scoped_ptr<InfoBarDelegate>( |
- new AppNotifyChannelUIInfoBarDelegate(creator, infobar_service, |
- app_name))); |
-} |
- |
-string16 AppNotifyChannelUIInfoBarDelegate::GetMessageText() const { |
- return l10n_util::GetStringFUTF16(IDS_APP_NOTIFICATION_NEED_SIGNIN, |
- UTF8ToUTF16(app_name_)); |
-} |
- |
-string16 AppNotifyChannelUIInfoBarDelegate::GetButtonLabel( |
- InfoBarButton button) const { |
- if (button == BUTTON_OK) { |
- return l10n_util::GetStringUTF16(IDS_APP_NOTIFICATION_NEED_SIGNIN_ACCEPT); |
- } else if (button == BUTTON_CANCEL) { |
- return l10n_util::GetStringUTF16(IDS_APP_NOTIFICATION_NEED_SIGNIN_CANCEL); |
- } else { |
- NOTREACHED(); |
- } |
- return string16(); |
-} |
- |
-bool AppNotifyChannelUIInfoBarDelegate::Accept() { |
- creator_->OnInfoBarResult(true); |
- return true; |
-} |
- |
-bool AppNotifyChannelUIInfoBarDelegate::Cancel() { |
- creator_->OnInfoBarResult(false); |
- return true; |
-} |
- |
-void AppNotifyChannelUIInfoBarDelegate::InfoBarDismissed() { |
- Cancel(); |
-} |
- |
-AppNotifyChannelUIInfoBarDelegate::AppNotifyChannelUIInfoBarDelegate( |
- AppNotifyChannelUIImpl* creator, |
- InfoBarService* infobar_service, |
- const std::string& app_name) |
- : ConfirmInfoBarDelegate(infobar_service), |
- creator_(creator), |
- app_name_(app_name) { |
-} |
- |
-AppNotifyChannelUIInfoBarDelegate::~AppNotifyChannelUIInfoBarDelegate() { |
-} |
- |
-} // namespace |
- |
- |
-AppNotifyChannelUIImpl::AppNotifyChannelUIImpl( |
- Profile* profile, |
- content::WebContents* web_contents, |
- const std::string& app_name, |
- AppNotifyChannelUI::UIType ui_type) |
- : profile_(profile->GetOriginalProfile()), |
- web_contents_(web_contents), |
- app_name_(app_name), |
- ui_type_(ui_type), |
- delegate_(NULL), |
- observing_sync_(false), |
- wizard_shown_to_user_(false) { |
-} |
- |
-AppNotifyChannelUIImpl::~AppNotifyChannelUIImpl() { |
- // We should have either not started observing sync, or already called |
- // StopObservingSync by this point. |
- CHECK(!observing_sync_); |
-} |
- |
-// static |
-AppNotifyChannelUI* AppNotifyChannelUI::Create(Profile* profile, |
- content::WebContents* web_contents, |
- const std::string& app_name, |
- AppNotifyChannelUI::UIType ui_type) { |
- return new AppNotifyChannelUIImpl(profile, web_contents, app_name, ui_type); |
-} |
- |
-void AppNotifyChannelUIImpl::PromptSyncSetup( |
- AppNotifyChannelUI::Delegate* delegate) { |
- CHECK(delegate_ == NULL); |
- delegate_ = delegate; |
- |
- if (!ProfileSyncServiceFactory::GetInstance()->HasProfileSyncService( |
- profile_)) { |
- delegate_->OnSyncSetupResult(false); |
- return; |
- } |
- |
- if (ui_type_ == NO_INFOBAR) { |
- OnInfoBarResult(true); |
- return; |
- } |
- |
- AppNotifyChannelUIInfoBarDelegate::Create( |
- InfoBarService::FromWebContents(web_contents_), this, app_name_); |
-} |
- |
-void AppNotifyChannelUIImpl::OnInfoBarResult(bool accepted) { |
- if (!accepted) { |
- delegate_->OnSyncSetupResult(false); |
- return; |
- } |
- |
- StartObservingSync(); |
- // Bring up the login page. |
- LoginUIService* login_ui_service = |
- LoginUIServiceFactory::GetForProfile(profile_); |
- LoginUIService::LoginUI* login_ui = login_ui_service->current_login_ui(); |
- if (login_ui) { |
- // Some sort of login UI is already visible. |
- SigninManager* signin = SigninManagerFactory::GetForProfile(profile_); |
- if (signin->GetAuthenticatedUsername().empty()) { |
- // User is not logged in yet, so just bring up the login UI (could be |
- // the promo UI). |
- login_ui->FocusUI(); |
- return; |
- } else { |
- // User is already logged in, so close whatever sync config UI the |
- // user is looking at and display new login UI. |
- login_ui->CloseUI(); |
- DCHECK(!login_ui_service->current_login_ui()); |
- } |
- } |
- // Any existing UI is now closed - display new login UI. |
- Browser* browser = chrome::FindBrowserWithWebContents(web_contents_); |
- chrome::ShowSettingsSubPage(browser, chrome::kSyncSetupForceLoginSubPage); |
-} |
- |
-void AppNotifyChannelUIImpl::OnStateChanged() { |
- ProfileSyncService* sync_service = |
- ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile_); |
- LoginUIService* login_service = |
- LoginUIServiceFactory::GetForProfile(profile_); |
- |
- bool wizard_visible = (login_service->current_login_ui() != NULL); |
- // ProfileSyncService raises OnStateChanged many times. Even multiple |
- // times before the wizard actually becomes visible for the first time. |
- // So we have to wait for the wizard to become visible once and then we |
- // wait for it to get dismissed. |
- bool finished = wizard_shown_to_user_ && !wizard_visible; |
- if (wizard_visible) |
- wizard_shown_to_user_ = true; |
- |
- if (finished) { |
- StopObservingSync(); |
- delegate_->OnSyncSetupResult(sync_service->HasSyncSetupCompleted()); |
- } |
-} |
- |
-void AppNotifyChannelUIImpl::StartObservingSync() { |
- CHECK(!observing_sync_); |
- observing_sync_ = true; |
- ProfileSyncServiceFactory::GetInstance()->GetForProfile( |
- profile_)->AddObserver(this); |
-} |
- |
-void AppNotifyChannelUIImpl::StopObservingSync() { |
- CHECK(observing_sync_); |
- observing_sync_ = false; |
- ProfileSyncServiceFactory::GetInstance()->GetForProfile( |
- profile_)->RemoveObserver(this); |
-} |
- |
-} // namespace extensions |