Move IdentityProvider usage from GCMDriverDesktop to GCMProfileService

This is the 1st step towards removing sign-in enforcement for GCM.

We also remove the logic to pass account IDs to check-in request
since it seems to work fine without them and TokenService::GetAccounts
returns the empty list.

BUG=384041
TEST=existing and new tests
[email protected], [email protected], [email protected]
[email protected], [email protected]

Review URL: https://codereview.chromium.org/330733002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277789 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
index ca82c42..7f492c57 100644
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -91,7 +91,6 @@
 #include "content/public/browser/storage_partition.h"
 #include "extensions/common/constants.h"
 #include "extensions/common/extension_l10n_util.h"
-#include "google_apis/gaia/identity_provider.h"
 #include "net/socket/client_socket_pool_manager.h"
 #include "net/url_request/url_request_context_getter.h"
 #include "ui/base/l10n/l10n_util.h"
@@ -116,13 +115,6 @@
 #include "components/storage_monitor/storage_monitor.h"
 #endif
 
-#if defined(OS_CHROMEOS)
-#include "chrome/browser/chromeos/settings/device_identity_provider.h"
-#include "chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h"
-#elif !defined(OS_ANDROID)
-#include "google_apis/gaia/dummy_identity_provider.h"
-#endif
-
 #if defined(USE_AURA)
 #include "ui/aura/env.h"
 #endif
@@ -1026,14 +1018,13 @@
   CHECK(PathService::Get(chrome::DIR_GLOBAL_GCM_STORE, &store_path));
   gcm_driver_ = gcm::CreateGCMDriverDesktop(
       make_scoped_ptr(new gcm::GCMClientFactory),
-#if defined(OS_CHROMEOS)
-      scoped_ptr<IdentityProvider>(new chromeos::DeviceIdentityProvider(
-          chromeos::DeviceOAuth2TokenServiceFactory::Get())),
-#else
-      scoped_ptr<IdentityProvider>(new DummyIdentityProvider),
-#endif  // defined(OS_CHROMEOS)
       store_path,
       system_request_context());
+  // Sign-in is not required for device-level GCM usage. So we just call
+  // OnSignedIn to assume always signed-in. Note that GCM will not be started
+  // at this point since no one has asked for it yet.
+  // TODO(jianli): To be removed when sign-in enforcement is dropped.
+  gcm_driver_->OnSignedIn();
 #endif  // defined(OS_ANDROID)
 }