Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(127)

Unified Diff: chrome/browser/services/gcm/push_messaging_service_impl.cc

Issue 404353003: Define PushMessagingApplicationId and replace ad-hoc code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/services/gcm/push_messaging_service_impl.cc
diff --git a/chrome/browser/services/gcm/push_messaging_service_impl.cc b/chrome/browser/services/gcm/push_messaging_service_impl.cc
index 1ee383de4a2fb08eb139cdcf240e28b63c3fae51..c52b5d2af3353c0a6afab6991ae184a2886993f2 100644
--- a/chrome/browser/services/gcm/push_messaging_service_impl.cc
+++ b/chrome/browser/services/gcm/push_messaging_service_impl.cc
@@ -20,13 +20,13 @@
#include "chrome/common/pref_names.h"
#include "components/gcm_driver/gcm_driver.h"
#include "components/pref_registry/pref_registry_syncable.h"
+#include "content/public/browser/push_messaging_application_id.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
namespace gcm {
namespace {
-const char kAppIdPrefix[] = "push:";
const int kMaxRegistrations = 1000000;
} // namespace
@@ -63,7 +63,8 @@ void PushMessagingServiceImpl::InitializeForProfile(Profile* profile) {
static_cast<PushMessagingServiceImpl*>(
gcm_service->push_messaging_service());
// Register ourselves as an app handler.
- gcm_service->driver()->AddAppHandler(kAppIdPrefix, push_service);
+ gcm_service->driver()->AddAppHandler(
+ content::kPushMessagingApplicationIdPrefix, push_service);
}
PushMessagingServiceImpl::PushMessagingServiceImpl(
@@ -80,8 +81,7 @@ PushMessagingServiceImpl::~PushMessagingServiceImpl() {
}
bool PushMessagingServiceImpl::CanHandle(const std::string& app_id) const {
- // TODO(mvanouwerkerk): Finalize and centralize format of Push API app_id.
- return StartsWithASCII(app_id, kAppIdPrefix, true);
+ return content::PushMessagingApplicationId::Parse(app_id).is_valid();
}
void PushMessagingServiceImpl::ShutdownHandler() {
@@ -104,8 +104,11 @@ void PushMessagingServiceImpl::OnMessage(
// "delay_while_idle": true,
// }
// TODO(johnme): Make sure this is clearly documented for developers.
+ content::PushMessagingApplicationId application_id =
+ content::PushMessagingApplicationId::Parse(app_id);
+ DCHECK(application_id.is_valid());
GCMClient::MessageData::const_iterator it = message.data.find("data");
- if (it != message.data.end()) {
+ if (application_id.is_valid() && it != message.data.end()) {
const std::string& data ALLOW_UNUSED = it->second;
// TODO(mvanouwerkerk): Fire push event with data on the Service Worker
// corresponding to app_id (and remove ALLOW_UNUSED above).
@@ -152,8 +155,10 @@ void PushMessagingServiceImpl::Register(
// If this is registering for the first time then the driver does not have
// this as an app handler and registration would fail.
- if (gcm_profile_service_->driver()->GetAppHandler(kAppIdPrefix) != this)
- gcm_profile_service_->driver()->AddAppHandler(kAppIdPrefix, this);
+ if (gcm_profile_service_->driver()->GetAppHandler(
+ content::kPushMessagingApplicationIdPrefix) != this)
+ gcm_profile_service_->driver()->AddAppHandler(
+ content::kPushMessagingApplicationIdPrefix, this);
content::RenderFrameHost* render_frame_host =
content::RenderFrameHost::FromID(renderer_id, render_frame_id);

Powered by Google App Engine
This is Rietveld 408576698