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

Unified Diff: chrome/browser/desktop_notification_handler.cc

Issue 7125006: Get rid of Chrome notifications dependency, and instead go through ContentBrowserClient to show U... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix browsertest Created 9 years, 6 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/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);
-}

Powered by Google App Engine
This is Rietveld 408576698