Index: chrome/browser/desktop_notification_handler.cc |
=================================================================== |
--- chrome/browser/desktop_notification_handler.cc (revision 88079) |
+++ chrome/browser/desktop_notification_handler.cc (working copy) |
@@ -1,92 +0,0 @@ |
-// Copyright (c) 2011 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 "chrome/browser/desktop_notification_handler.h" |
- |
-#include "chrome/browser/notifications/desktop_notification_service.h" |
-#include "chrome/browser/notifications/desktop_notification_service_factory.h" |
-#include "chrome/browser/profiles/profile.h" |
-#include "chrome/common/url_constants.h" |
-#include "content/browser/renderer_host/render_process_host.h" |
-#include "content/browser/renderer_host/render_view_host.h" |
-#include "content/browser/renderer_host/render_view_host_delegate.h" |
-#include "content/common/desktop_notification_messages.h" |
- |
-// static |
-DesktopNotificationHandler* |
-DesktopNotificationHandler::Create(RenderViewHost* render_view_host) { |
- return new DesktopNotificationHandler(render_view_host); |
-} |
- |
-DesktopNotificationHandler::~DesktopNotificationHandler() { |
-} |
- |
-DesktopNotificationHandler::DesktopNotificationHandler( |
- RenderViewHost* render_view_host) |
- : RenderViewHostObserver(render_view_host) { |
-} |
- |
-bool DesktopNotificationHandler::OnMessageReceived( |
- const IPC::Message& message) { |
- bool handled = true; |
- |
- IPC_BEGIN_MESSAGE_MAP(DesktopNotificationHandler, message) |
- IPC_MESSAGE_HANDLER(DesktopNotificationHostMsg_Show, OnShow) |
- IPC_MESSAGE_HANDLER(DesktopNotificationHostMsg_Cancel, OnCancel) |
- IPC_MESSAGE_HANDLER(DesktopNotificationHostMsg_RequestPermission, |
- OnRequestPermission) |
- IPC_MESSAGE_UNHANDLED(handled = false) |
- IPC_END_MESSAGE_MAP() |
- |
- return handled; |
-} |
- |
-void DesktopNotificationHandler::OnShow( |
- const DesktopNotificationHostMsg_Show_Params& params) { |
- // Disallow HTML notifications from unwanted schemes. javascript: |
- // in particular allows unwanted cross-domain access. |
- GURL url = params.contents_url; |
- if (params.is_html && |
- !url.SchemeIs(chrome::kHttpScheme) && |
- !url.SchemeIs(chrome::kHttpsScheme) && |
- !url.SchemeIs(chrome::kExtensionScheme) && |
- !url.SchemeIs(chrome::kDataScheme)) { |
- return; |
- } |
- |
- RenderProcessHost* process = render_view_host()->process(); |
- DesktopNotificationService* service = |
- DesktopNotificationServiceFactory::GetForProfile(process->profile()); |
- |
- service->ShowDesktopNotification( |
- params, |
- process->id(), |
- routing_id(), |
- DesktopNotificationService::PageNotification); |
-} |
- |
-void DesktopNotificationHandler::OnCancel(int notification_id) { |
- RenderProcessHost* process = render_view_host()->process(); |
- DesktopNotificationService* service = |
- DesktopNotificationServiceFactory::GetForProfile(process->profile()); |
- |
- service->CancelDesktopNotification( |
- process->id(), |
- routing_id(), |
- notification_id); |
-} |
- |
-void DesktopNotificationHandler::OnRequestPermission( |
- const GURL& source_origin, int callback_context) { |
- if (render_view_host()->delegate()->RequestDesktopNotificationPermission( |
- source_origin, callback_context)) { |
- return; |
- } |
- |
- RenderProcessHost* process = render_view_host()->process(); |
- DesktopNotificationService* service = |
- DesktopNotificationServiceFactory::GetForProfile(process->profile()); |
- service->RequestPermission( |
- source_origin, process->id(), routing_id(), callback_context, NULL); |
-} |