| Index: chrome/browser/extensions/extension_webstore_private_api.cc
|
| diff --git a/chrome/browser/extensions/extension_webstore_private_api.cc b/chrome/browser/extensions/extension_webstore_private_api.cc
|
| index 19c4597de8877cd83c5a4d5aa4b4abd3bf9ecc3c..c9f8d1c01ac55d80b697a59e5cd292a771241dac 100644
|
| --- a/chrome/browser/extensions/extension_webstore_private_api.cc
|
| +++ b/chrome/browser/extensions/extension_webstore_private_api.cc
|
| @@ -20,6 +20,7 @@
|
| #include "chrome/browser/sync/profile_sync_service.h"
|
| #include "chrome/common/chrome_notification_types.h"
|
| #include "chrome/common/chrome_switches.h"
|
| +#include "chrome/common/pref_names.h"
|
| #include "chrome/common/extensions/extension_constants.h"
|
| #include "chrome/common/extensions/extension_error_utils.h"
|
| #include "chrome/common/extensions/extension_l10n_util.h"
|
| @@ -54,7 +55,6 @@ const char kUserGestureRequiredError[] =
|
| "This function must be called during a user gesture";
|
|
|
| ProfileSyncService* test_sync_service = NULL;
|
| -BrowserSignin* test_signin = NULL;
|
| bool ignore_user_gesture_for_tests = false;
|
|
|
| // A flag used for BeginInstallWithManifest::SetAutoConfirmForTests.
|
| @@ -74,13 +74,6 @@ ProfileSyncService* GetSyncService(Profile* profile) {
|
| return profile->GetProfileSyncService();
|
| }
|
|
|
| -BrowserSignin* GetBrowserSignin(Profile* profile) {
|
| - if (test_signin)
|
| - return test_signin;
|
| - else
|
| - return profile->GetBrowserSignin();
|
| -}
|
| -
|
| bool IsWebStoreURL(Profile* profile, const GURL& url) {
|
| ExtensionService* service = profile->GetExtensionService();
|
| const Extension* store = service->GetWebStoreApp();
|
| @@ -95,7 +88,8 @@ bool IsWebStoreURL(Profile* profile, const GURL& url) {
|
| // the appropriate values in the passed-in |profile|.
|
| DictionaryValue* CreateLoginResult(Profile* profile) {
|
| DictionaryValue* dictionary = new DictionaryValue();
|
| - std::string username = GetBrowserSignin(profile)->GetSignedInUsername();
|
| + std::string username = profile->GetPrefs()->GetString(
|
| + prefs::kGoogleServicesUsername);
|
| dictionary->SetString(kLoginKey, username);
|
| if (!username.empty()) {
|
| CommandLine* cmdline = CommandLine::ForCurrentProcess();
|
| @@ -119,11 +113,6 @@ void WebstorePrivateApi::SetTestingProfileSyncService(
|
| }
|
|
|
| // static
|
| -void WebstorePrivateApi::SetTestingBrowserSignin(BrowserSignin* signin) {
|
| - test_signin = signin;
|
| -}
|
| -
|
| -// static
|
| void BeginInstallFunction::SetIgnoreUserGestureForTests(bool ignore) {
|
| ignore_user_gesture_for_tests = ignore;
|
| }
|
| @@ -460,119 +449,3 @@ bool SetStoreLoginFunction::RunImpl() {
|
| prefs->SetWebStoreLogin(login);
|
| return true;
|
| }
|
| -
|
| -PromptBrowserLoginFunction::PromptBrowserLoginFunction()
|
| - : waiting_for_token_(false) {}
|
| -
|
| -PromptBrowserLoginFunction::~PromptBrowserLoginFunction() {
|
| -}
|
| -
|
| -bool PromptBrowserLoginFunction::RunImpl() {
|
| - if (!IsWebStoreURL(profile_, source_url()))
|
| - return false;
|
| -
|
| - std::string preferred_email;
|
| - if (args_->GetSize() > 0) {
|
| - EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &preferred_email));
|
| - }
|
| -
|
| - Profile* profile = profile_->GetOriginalProfile();
|
| -
|
| - // Login can currently only be invoked tab-modal. Since this is
|
| - // coming from the webstore, we should always have a tab, but check
|
| - // just in case.
|
| - TabContents* tab = dispatcher()->delegate()->GetAssociatedTabContents();
|
| - if (!tab)
|
| - return false;
|
| -
|
| - // We return the result asynchronously, so we addref to keep ourself alive.
|
| - // Matched with a Release in OnLoginSuccess() and OnLoginFailure().
|
| - AddRef();
|
| -
|
| - // Start listening for notifications about the token.
|
| - TokenService* token_service = profile->GetTokenService();
|
| - registrar_.Add(this,
|
| - chrome::NOTIFICATION_TOKEN_AVAILABLE,
|
| - Source<TokenService>(token_service));
|
| - registrar_.Add(this,
|
| - chrome::NOTIFICATION_TOKEN_REQUEST_FAILED,
|
| - Source<TokenService>(token_service));
|
| -
|
| - GetBrowserSignin(profile)->RequestSignin(tab,
|
| - ASCIIToUTF16(preferred_email),
|
| - GetLoginMessage(),
|
| - this);
|
| -
|
| - // The response will be sent asynchronously in OnLoginSuccess/OnLoginFailure.
|
| - return true;
|
| -}
|
| -
|
| -string16 PromptBrowserLoginFunction::GetLoginMessage() {
|
| - using l10n_util::GetStringUTF16;
|
| - using l10n_util::GetStringFUTF16;
|
| -
|
| - // TODO(johnnyg): This would be cleaner as an HTML template.
|
| - // http://crbug.com/60216
|
| - string16 message;
|
| - message = ASCIIToUTF16("<p>")
|
| - + GetStringUTF16(IDS_WEB_STORE_LOGIN_INTRODUCTION_1)
|
| - + ASCIIToUTF16("</p>");
|
| - message = message + ASCIIToUTF16("<p>")
|
| - + GetStringFUTF16(IDS_WEB_STORE_LOGIN_INTRODUCTION_2,
|
| - GetStringUTF16(IDS_PRODUCT_NAME))
|
| - + ASCIIToUTF16("</p>");
|
| - return message;
|
| -}
|
| -
|
| -void PromptBrowserLoginFunction::OnLoginSuccess() {
|
| - // Ensure that apps are synced.
|
| - // - If the user has already setup sync, we add Apps to the current types.
|
| - // - If not, we create a new set which is just Apps.
|
| - ProfileSyncService* service = GetSyncService(profile_->GetOriginalProfile());
|
| - syncable::ModelTypeSet types;
|
| - if (service->HasSyncSetupCompleted())
|
| - service->GetPreferredDataTypes(&types);
|
| - types.insert(syncable::APPS);
|
| - service->ChangePreferredDataTypes(types);
|
| - service->SetSyncSetupCompleted();
|
| -
|
| - // We'll finish up in Observe() when the token is ready.
|
| - waiting_for_token_ = true;
|
| -}
|
| -
|
| -void PromptBrowserLoginFunction::OnLoginFailure(
|
| - const GoogleServiceAuthError& error) {
|
| - SendResponse(false);
|
| - // Matches the AddRef in RunImpl().
|
| - Release();
|
| -}
|
| -
|
| -void PromptBrowserLoginFunction::Observe(int type,
|
| - const NotificationSource& source,
|
| - const NotificationDetails& details) {
|
| - // Make sure this notification is for the service we are interested in.
|
| - std::string service;
|
| - if (type == chrome::NOTIFICATION_TOKEN_AVAILABLE) {
|
| - TokenService::TokenAvailableDetails* available =
|
| - Details<TokenService::TokenAvailableDetails>(details).ptr();
|
| - service = available->service();
|
| - } else if (type == chrome::NOTIFICATION_TOKEN_REQUEST_FAILED) {
|
| - TokenService::TokenRequestFailedDetails* failed =
|
| - Details<TokenService::TokenRequestFailedDetails>(details).ptr();
|
| - service = failed->service();
|
| - } else {
|
| - NOTREACHED();
|
| - }
|
| -
|
| - if (service != GaiaConstants::kGaiaService) {
|
| - return;
|
| - }
|
| -
|
| - DCHECK(waiting_for_token_);
|
| -
|
| - result_.reset(CreateLoginResult(profile_->GetOriginalProfile()));
|
| - SendResponse(true);
|
| -
|
| - // Matches the AddRef in RunImpl().
|
| - Release();
|
| -}
|
|
|