Index: chrome/browser/services/gcm/gcm_profile_service.cc |
diff --git a/chrome/browser/services/gcm/gcm_profile_service.cc b/chrome/browser/services/gcm/gcm_profile_service.cc |
index 0b898ab6881e848b08d5e77a9f68b40da2ae1a4f..7ae5c0d5c775c49ba2d349ea9552ac87a55dc23a 100644 |
--- a/chrome/browser/services/gcm/gcm_profile_service.cc |
+++ b/chrome/browser/services/gcm/gcm_profile_service.cc |
@@ -142,10 +142,31 @@ void GCMProfileService::RegisterProfilePrefs( |
} |
#if defined(OS_ANDROID) |
+static GCMProfileService* debug_instance = nullptr; |
+ |
GCMProfileService::GCMProfileService(Profile* profile) |
: profile_(profile), |
push_messaging_service_(this, profile) { |
- DCHECK(!profile->IsOffTheRecord()); |
+ CHECK(!profile->IsOffTheRecord()); |
+ |
+ // TODO(johnme): Remove debug_instance and this logging code once |
+ // crbug.com/437827 is fixed. |
+ if (debug_instance != nullptr) { |
+ LOG(FATAL) << "An instance of GCMProfileService already exists!" |
+ << " Old profile: " << debug_instance->profile_ << " " |
+ << debug_instance->profile_->GetDebugName() << " " |
+ << debug_instance->profile_->GetProfileType() << " " |
+ << debug_instance->profile_->IsSupervised() << " " |
+ << debug_instance->profile_->IsNewProfile() << " " |
+ << debug_instance->profile_->GetStartTime().ToInternalValue() |
+ << ", new profile: " << profile << " " |
+ << profile->GetDebugName() << " " |
+ << profile->GetProfileType() << " " |
+ << profile->IsSupervised() << " " |
+ << profile->IsNewProfile() << " " |
+ << profile->GetStartTime().ToInternalValue(); |
+ } |
+ debug_instance = this; |
driver_.reset(new GCMDriverAndroid); |
} |
@@ -173,6 +194,9 @@ GCMProfileService::GCMProfileService() |
} |
GCMProfileService::~GCMProfileService() { |
+#if defined(OS_ANDROID) |
+ debug_instance = nullptr; |
+#endif |
} |
void GCMProfileService::Shutdown() { |