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

Unified Diff: content/renderer/push_messaging/push_messaging_dispatcher.cc

Issue 2690203003: Convert push_messaging IPC msgs into mojo interfaces (Closed)
Patch Set: code rebase Created 3 years, 10 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
« no previous file with comments | « content/renderer/push_messaging/push_messaging_dispatcher.h ('k') | content/renderer/render_frame_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/push_messaging/push_messaging_dispatcher.cc
diff --git a/content/renderer/push_messaging/push_messaging_dispatcher.cc b/content/renderer/push_messaging/push_messaging_dispatcher.cc
deleted file mode 100644
index cc4fda70d7dd1a52bfac48d0ea096c7285f0a65e..0000000000000000000000000000000000000000
--- a/content/renderer/push_messaging/push_messaging_dispatcher.cc
+++ /dev/null
@@ -1,150 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/renderer/push_messaging/push_messaging_dispatcher.h"
-
-#include <memory>
-#include <utility>
-
-#include "base/memory/ptr_util.h"
-#include "base/strings/utf_string_conversions.h"
-#include "content/child/push_messaging/push_provider.h"
-#include "content/child/service_worker/web_service_worker_registration_impl.h"
-#include "content/common/push_messaging_messages.h"
-#include "content/renderer/manifest/manifest_manager.h"
-#include "content/renderer/render_frame_impl.h"
-#include "ipc/ipc_message.h"
-#include "third_party/WebKit/public/platform/WebString.h"
-#include "third_party/WebKit/public/platform/modules/push_messaging/WebPushError.h"
-#include "third_party/WebKit/public/platform/modules/push_messaging/WebPushSubscription.h"
-#include "third_party/WebKit/public/platform/modules/push_messaging/WebPushSubscriptionOptions.h"
-#include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerRegistration.h"
-#include "third_party/WebKit/public/web/WebConsoleMessage.h"
-#include "third_party/WebKit/public/web/WebLocalFrame.h"
-#include "url/gurl.h"
-
-namespace content {
-
-PushMessagingDispatcher::PushMessagingDispatcher(RenderFrame* render_frame)
- : RenderFrameObserver(render_frame) {}
-
-PushMessagingDispatcher::~PushMessagingDispatcher() {}
-
-bool PushMessagingDispatcher::OnMessageReceived(const IPC::Message& message) {
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(PushMessagingDispatcher, message)
- IPC_MESSAGE_HANDLER(PushMessagingMsg_SubscribeFromDocumentSuccess,
- OnSubscribeFromDocumentSuccess)
- IPC_MESSAGE_HANDLER(PushMessagingMsg_SubscribeFromDocumentError,
- OnSubscribeFromDocumentError)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- return handled;
-}
-
-void PushMessagingDispatcher::OnDestruct() {
- delete this;
-}
-
-void PushMessagingDispatcher::subscribe(
- blink::WebServiceWorkerRegistration* service_worker_registration,
- const blink::WebPushSubscriptionOptions& options,
- std::unique_ptr<blink::WebPushSubscriptionCallbacks> callbacks) {
- DCHECK(service_worker_registration);
- DCHECK(callbacks);
- // If a developer provided an application server key in |options|, skip
- // fetching the manifest.
- if (options.applicationServerKey.isEmpty()) {
- RenderFrameImpl::FromRoutingID(routing_id())
- ->manifest_manager()
- ->GetManifest(base::Bind(
- &PushMessagingDispatcher::DidGetManifest, base::Unretained(this),
- service_worker_registration, options, base::Passed(&callbacks)));
- } else {
- PushSubscriptionOptions content_options;
- content_options.user_visible_only = options.userVisibleOnly;
- // Just treat the server key as a string of bytes and pass it to the push
- // service.
- content_options.sender_info = options.applicationServerKey.latin1();
- DoSubscribe(service_worker_registration, content_options,
- std::move(callbacks));
- }
-}
-
-void PushMessagingDispatcher::DidGetManifest(
- blink::WebServiceWorkerRegistration* service_worker_registration,
- const blink::WebPushSubscriptionOptions& options,
- std::unique_ptr<blink::WebPushSubscriptionCallbacks> callbacks,
- const GURL& manifest_url,
- const Manifest& manifest,
- const ManifestDebugInfo&) {
- // Get the sender_info from the manifest since it wasn't provided by
- // the caller.
- if (manifest.IsEmpty()) {
- int request_id = subscription_callbacks_.Add(std::move(callbacks));
- OnSubscribeFromDocumentError(
- request_id, PUSH_REGISTRATION_STATUS_MANIFEST_EMPTY_OR_MISSING);
- return;
- }
-
- PushSubscriptionOptions content_options;
- content_options.user_visible_only = options.userVisibleOnly;
- if (!manifest.gcm_sender_id.is_null()) {
- content_options.sender_info =
- base::UTF16ToUTF8(manifest.gcm_sender_id.string());
- }
-
- DoSubscribe(service_worker_registration, content_options,
- std::move(callbacks));
-}
-
-void PushMessagingDispatcher::DoSubscribe(
- blink::WebServiceWorkerRegistration* service_worker_registration,
- const PushSubscriptionOptions& options,
- std::unique_ptr<blink::WebPushSubscriptionCallbacks> callbacks) {
- int request_id = subscription_callbacks_.Add(std::move(callbacks));
- int64_t service_worker_registration_id =
- static_cast<WebServiceWorkerRegistrationImpl*>(
- service_worker_registration)
- ->registrationId();
-
- if (options.sender_info.empty()) {
- OnSubscribeFromDocumentError(request_id,
- PUSH_REGISTRATION_STATUS_NO_SENDER_ID);
- return;
- }
- Send(new PushMessagingHostMsg_Subscribe(
- routing_id(), request_id, service_worker_registration_id, options));
-}
-
-void PushMessagingDispatcher::OnSubscribeFromDocumentSuccess(
- int32_t request_id,
- const GURL& endpoint,
- const PushSubscriptionOptions& options,
- const std::vector<uint8_t>& p256dh,
- const std::vector<uint8_t>& auth) {
- blink::WebPushSubscriptionCallbacks* callbacks =
- subscription_callbacks_.Lookup(request_id);
- DCHECK(callbacks);
-
- callbacks->onSuccess(base::MakeUnique<blink::WebPushSubscription>(
- endpoint, options.user_visible_only,
- blink::WebString::fromLatin1(options.sender_info), p256dh, auth));
-
- subscription_callbacks_.Remove(request_id);
-}
-
-void PushMessagingDispatcher::OnSubscribeFromDocumentError(
- int32_t request_id,
- PushRegistrationStatus status) {
- blink::WebPushSubscriptionCallbacks* callbacks =
- subscription_callbacks_.Lookup(request_id);
- DCHECK(callbacks);
-
- callbacks->onError(PushRegistrationStatusToWebPushError(status));
-
- subscription_callbacks_.Remove(request_id);
-}
-
-} // namespace content
« no previous file with comments | « content/renderer/push_messaging/push_messaging_dispatcher.h ('k') | content/renderer/render_frame_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698