| 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
|
|
|