Index: chrome/browser/extensions/api/gcm/gcm_api.cc |
diff --git a/chrome/browser/extensions/api/gcm/gcm_api.cc b/chrome/browser/extensions/api/gcm/gcm_api.cc |
index d4f1b78b48137fc69daa7db2bff82cf3ed5d4b3d..79af39233dc668efb4ccad5263d61cdf3b007200 100644 |
--- a/chrome/browser/extensions/api/gcm/gcm_api.cc |
+++ b/chrome/browser/extensions/api/gcm/gcm_api.cc |
@@ -10,6 +10,7 @@ |
#include "base/sha1.h" |
#include "base/strings/string_number_conversions.h" |
+#include "base/strings/string_util.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/services/gcm/gcm_profile_service.h" |
@@ -22,10 +23,9 @@ |
namespace { |
const size_t kMaximumMessageSize = 4096; // in bytes. |
+const char kCollapseKey[] = "collapse_key"; |
const char kGoogDotRestrictedPrefix[] = "goog."; |
-const size_t kGoogDotPrefixLength = arraysize(kGoogDotRestrictedPrefix) - 1; |
const char kGoogleRestrictedPrefix[] = "google"; |
-const size_t kGooglePrefixLength = arraysize(kGoogleRestrictedPrefix) - 1; |
// Error messages. |
const char kInvalidParameter[] = |
@@ -33,10 +33,10 @@ const char kInvalidParameter[] = |
const char kNotSignedIn[] = "Profile was not signed in."; |
const char kAsyncOperationPending[] = |
"Asynchronous operation is pending."; |
-const char kNetworkError[] = "Network error occured."; |
-const char kServerError[] = "Server error occured."; |
+const char kNetworkError[] = "Network error occurred."; |
+const char kServerError[] = "Server error occurred."; |
const char kTtlExceeded[] = "Time-to-live exceeded."; |
-const char kUnknownError[] = "Unknown error occured."; |
+const char kUnknownError[] = "Unknown error occurred."; |
std::string SHA1HashHexString(const std::string& str) { |
std::string hash = base::SHA1HashString(str); |
@@ -71,9 +71,15 @@ const char* GcmResultToError(gcm::GCMClient::Result result) { |
} |
bool IsMessageKeyValid(const std::string& key) { |
+ std::string lower = StringToLowerASCII(key); |
return !key.empty() && |
- key.compare(0, kGooglePrefixLength, kGoogleRestrictedPrefix) != 0 && |
- key.compare(0, kGoogDotPrefixLength, kGoogDotRestrictedPrefix) != 0; |
+ key.compare(0, arraysize(kCollapseKey) - 1, kCollapseKey) != 0 && |
+ lower.compare(0, |
+ arraysize(kGoogleRestrictedPrefix) - 1, |
+ kGoogleRestrictedPrefix) != 0 && |
+ lower.compare(0, |
+ arraysize(kGoogDotRestrictedPrefix), |
+ kGoogDotRestrictedPrefix) != 0; |
} |
} // namespace |