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

Unified Diff: chrome/browser/push_messaging/push_messaging_service_impl.cc

Issue 1210283005: Introduce the PushSubscription.curve25519dh attribute (2/3) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: android fix 2 Created 5 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/push_messaging/push_messaging_service_impl.cc
diff --git a/chrome/browser/push_messaging/push_messaging_service_impl.cc b/chrome/browser/push_messaging/push_messaging_service_impl.cc
index 7b3a1e602c673d3b5613c2b3fd92306261062198..48bc0d813ced6d859e455ec399fe6cbe089e9c0f 100644
--- a/chrome/browser/push_messaging/push_messaging_service_impl.cc
+++ b/chrome/browser/push_messaging/push_messaging_service_impl.cc
@@ -315,6 +315,17 @@ GURL PushMessagingServiceImpl::GetPushEndpoint() {
return GURL(std::string(kPushMessagingEndpoint));
}
+// GetPublicEncryptionKey method -----------------------------------------------
+
+void PushMessagingServiceImpl::GetPublicEncryptionKey(
+ const GURL& origin,
+ int64_t service_worker_registration_id,
+ const PushMessagingService::PublicKeyCallback& callback) {
+ // TODO(peter): Get the public key from the GCM Driver. Right now we have to
+ // return success=true here, otherwise subscriptions would fail.
+ callback.Run(true /* success */, std::vector<uint8_t>());
+}
+
// Subscribe and GetPermissionStatus methods -----------------------------------
void PushMessagingServiceImpl::SubscribeFromDocument(
@@ -331,8 +342,8 @@ void PushMessagingServiceImpl::SubscribeFromDocument(
if (push_subscription_count_ + pending_push_subscription_count_ >=
kMaxRegistrations) {
- SubscribeEnd(callback, std::string(),
- content::PUSH_REGISTRATION_STATUS_LIMIT_REACHED);
+ SubscribeEndWithError(callback,
+ content::PUSH_REGISTRATION_STATUS_LIMIT_REACHED);
return;
}
@@ -348,9 +359,8 @@ void PushMessagingServiceImpl::SubscribeFromDocument(
content::CONSOLE_MESSAGE_LEVEL_ERROR,
kSilentPushUnsupportedMessage);
- SubscribeEnd(callback,
- std::string(),
- content::PUSH_REGISTRATION_STATUS_PERMISSION_DENIED);
+ SubscribeEndWithError(callback,
+ content::PUSH_REGISTRATION_STATUS_PERMISSION_DENIED);
return;
}
@@ -377,8 +387,8 @@ void PushMessagingServiceImpl::SubscribeFromWorker(
if (profile_->GetPrefs()->GetInteger(
prefs::kPushMessagingRegistrationCount) >= kMaxRegistrations) {
- SubscribeEnd(register_callback, std::string(),
- content::PUSH_REGISTRATION_STATUS_LIMIT_REACHED);
+ SubscribeEndWithError(register_callback,
+ content::PUSH_REGISTRATION_STATUS_LIMIT_REACHED);
return;
}
@@ -388,8 +398,8 @@ void PushMessagingServiceImpl::SubscribeFromWorker(
embedding_origin,
user_visible);
if (permission_status != blink::WebPushPermissionStatusGranted) {
- SubscribeEnd(register_callback, std::string(),
- content::PUSH_REGISTRATION_STATUS_PERMISSION_DENIED);
+ SubscribeEndWithError(register_callback,
+ content::PUSH_REGISTRATION_STATUS_PERMISSION_DENIED);
return;
}
@@ -420,8 +430,16 @@ bool PushMessagingServiceImpl::SupportNonVisibleMessages() {
void PushMessagingServiceImpl::SubscribeEnd(
const content::PushMessagingService::RegisterCallback& callback,
const std::string& subscription_id,
+ const std::vector<uint8_t>& curve25519dh,
content::PushRegistrationStatus status) {
- callback.Run(subscription_id, status);
+ callback.Run(subscription_id, curve25519dh, status);
+}
+
+void PushMessagingServiceImpl::SubscribeEndWithError(
+ const content::PushMessagingService::RegisterCallback& callback,
+ content::PushRegistrationStatus status) {
+ SubscribeEnd(callback, std::string() /* subscription_id */,
+ std::vector<uint8_t>() /* curve25519dh */, status);
}
void PushMessagingServiceImpl::DidSubscribe(
@@ -431,10 +449,15 @@ void PushMessagingServiceImpl::DidSubscribe(
gcm::GCMClient::Result result) {
content::PushRegistrationStatus status =
content::PUSH_REGISTRATION_STATUS_SERVICE_ERROR;
+ std::vector<uint8_t> curve25519dh;
+
switch (result) {
case gcm::GCMClient::SUCCESS:
status = content::PUSH_REGISTRATION_STATUS_SUCCESS_FROM_PUSH_SERVICE;
app_identifier.PersistToPrefs(profile_);
+
+ // TODO(peter): Hook up getting the keys from the GCM Driver.
+
IncreasePushSubscriptionCount(1, false /* is_pending */);
break;
case gcm::GCMClient::INVALID_PARAMETER:
@@ -449,7 +472,8 @@ void PushMessagingServiceImpl::DidSubscribe(
status = content::PUSH_REGISTRATION_STATUS_NETWORK_ERROR;
break;
}
- SubscribeEnd(callback, subscription_id, status);
+
+ SubscribeEnd(callback, subscription_id, curve25519dh, status);
DecreasePushSubscriptionCount(1, true /* was_pending */);
}
@@ -459,9 +483,8 @@ void PushMessagingServiceImpl::DidRequestPermission(
const content::PushMessagingService::RegisterCallback& register_callback,
content::PermissionStatus permission_status) {
if (permission_status != content::PERMISSION_STATUS_GRANTED) {
- SubscribeEnd(register_callback,
- std::string(),
- content::PUSH_REGISTRATION_STATUS_PERMISSION_DENIED);
+ SubscribeEndWithError(register_callback,
+ content::PUSH_REGISTRATION_STATUS_PERMISSION_DENIED);
return;
}

Powered by Google App Engine
This is Rietveld 408576698