summaryrefslogtreecommitdiffstats
path: root/chrome/browser/services/gcm/push_messaging_service_impl.cc
diff options
context:
space:
mode:
authormvanouwerkerk@chromium.org <mvanouwerkerk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-02 12:53:02 +0000
committermvanouwerkerk@chromium.org <mvanouwerkerk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-02 12:53:02 +0000
commit4592086c33ec25a9498002d226ad9f7d1b1f5290 (patch)
tree8f8b6749d8fe1b7e2a837c4cbe868a22b95f0343 /chrome/browser/services/gcm/push_messaging_service_impl.cc
parentf5920b1b78b3adee59895ac93afc90a39570bdf1 (diff)
downloadchromium_src-4592086c33ec25a9498002d226ad9f7d1b1f5290.zip
chromium_src-4592086c33ec25a9498002d226ad9f7d1b1f5290.tar.gz
chromium_src-4592086c33ec25a9498002d226ad9f7d1b1f5290.tar.bz2
Push API: move dispatcher to RenderFrame
BUG=304341,350378 Review URL: https://codereview.chromium.org/349653003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@281010 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/services/gcm/push_messaging_service_impl.cc')
-rw-r--r--chrome/browser/services/gcm/push_messaging_service_impl.cc20
1 files changed, 14 insertions, 6 deletions
diff --git a/chrome/browser/services/gcm/push_messaging_service_impl.cc b/chrome/browser/services/gcm/push_messaging_service_impl.cc
index b0bd5d4..351b97a 100644
--- a/chrome/browser/services/gcm/push_messaging_service_impl.cc
+++ b/chrome/browser/services/gcm/push_messaging_service_impl.cc
@@ -16,11 +16,11 @@
#include "chrome/browser/services/gcm/gcm_profile_service_factory.h"
#include "chrome/browser/services/gcm/push_messaging_permission_context.h"
#include "chrome/browser/services/gcm/push_messaging_permission_context_factory.h"
-#include "chrome/browser/tab_contents/tab_util.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "components/gcm_driver/gcm_driver.h"
#include "components/pref_registry/pref_registry_syncable.h"
+#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
namespace gcm {
@@ -133,7 +133,7 @@ void PushMessagingServiceImpl::Register(
const std::string& app_id,
const std::string& sender_id,
int renderer_id,
- int render_view_id,
+ int render_frame_id,
const content::PushMessagingService::RegisterCallback& callback) {
if (!gcm_profile_service_->driver()) {
NOTREACHED() << "There is no GCMDriver. Has GCMProfileService shut down?";
@@ -150,10 +150,17 @@ void PushMessagingServiceImpl::Register(
if (gcm_profile_service_->driver()->GetAppHandler(kAppIdPrefix) != this)
gcm_profile_service_->driver()->AddAppHandler(kAppIdPrefix, this);
+ content::RenderFrameHost* render_frame_host =
+ content::RenderFrameHost::FromID(renderer_id, render_frame_id);
+
+ // The frame doesn't exist any more, or we received a bad frame id.
+ if (!render_frame_host)
+ return;
+
content::WebContents* web_contents =
- tab_util::GetWebContentsByID(renderer_id, render_view_id);
+ content::WebContents::FromRenderFrameHost(render_frame_host);
- // The page doesn't exist any more.
+ // The page doesn't exist any more or we got a bad render frame host.
if (!web_contents)
return;
@@ -161,9 +168,10 @@ void PushMessagingServiceImpl::Register(
// implemented.
int bridge_id = -1;
- const PermissionRequestID id(renderer_id, render_view_id, bridge_id, GURL());
+ const PermissionRequestID id(
+ renderer_id, web_contents->GetRoutingID(), bridge_id, GURL());
- GURL embedder = web_contents->GetURL();
+ GURL embedder = web_contents->GetLastCommittedURL();
gcm::PushMessagingPermissionContext* permission_context =
gcm::PushMessagingPermissionContextFactory::GetForProfile(profile_);