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

Unified Diff: chrome/browser/geolocation/chrome_geolocation_permission_context.cc

Issue 11269002: Introduce GeolocationPermissionRequestID, a wrapper struct to contain the (render process ID, rende… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 2 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/geolocation/chrome_geolocation_permission_context.cc
===================================================================
--- chrome/browser/geolocation/chrome_geolocation_permission_context.cc (revision 163741)
+++ chrome/browser/geolocation/chrome_geolocation_permission_context.cc (working copy)
@@ -39,31 +39,30 @@
}
void ChromeGeolocationPermissionContext::RequestGeolocationPermission(
- int render_process_id, int render_view_id, int bridge_id,
- const GURL& requesting_frame, base::Callback<void(bool)> callback) {
+ const content::GeolocationPermissionRequestID& id,
+ const GURL& requesting_frame,
+ base::Callback<void(bool)> callback) {
if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
base::Bind(
&ChromeGeolocationPermissionContext::RequestGeolocationPermission,
- this, render_process_id, render_view_id, bridge_id,
- requesting_frame, callback));
+ this, id, requesting_frame, callback));
return;
}
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
WebContents* web_contents =
- tab_util::GetWebContentsByID(render_process_id, render_view_id);
+ tab_util::GetWebContentsByID(id.render_process_id, id.render_view_id);
if (chrome::GetViewType(web_contents) != chrome::VIEW_TYPE_TAB_CONTENTS) {
// The tab may have gone away, or the request may not be from a tab at all.
// TODO(mpcomplete): the request could be from a background page or
// extension popup (tab_contents will have a different ViewType). But why do
// we care? Shouldn't we still put an infobar up in the current tab?
LOG(WARNING) << "Attempt to use geolocation tabless renderer: "
- << render_process_id << "," << render_view_id << ","
- << bridge_id << " (can't prompt user without a visible tab)";
- NotifyPermissionSet(render_process_id, render_view_id, bridge_id,
- requesting_frame, callback, false);
+ << id.ToString()
+ << " (can't prompt user without a visible tab)";
+ NotifyPermissionSet(id, requesting_frame, callback, false);
return;
}
@@ -72,26 +71,23 @@
LOG(WARNING) << "Attempt to use geolocation from an invalid URL: "
<< requesting_frame << "," << embedder
<< " (geolocation is not supported in popups)";
- NotifyPermissionSet(render_process_id, render_view_id, bridge_id,
- requesting_frame, callback, false);
+ NotifyPermissionSet(id, requesting_frame, callback, false);
return;
}
- DecidePermission(render_process_id, render_view_id, bridge_id,
- requesting_frame, embedder, callback);
+ DecidePermission(id, requesting_frame, embedder, callback);
}
void ChromeGeolocationPermissionContext::CancelGeolocationPermissionRequest(
- int render_process_id,
- int render_view_id,
- int bridge_id,
+ const content::GeolocationPermissionRequestID& id,
const GURL& requesting_frame) {
- CancelPendingInfoBarRequest(render_process_id, render_view_id, bridge_id);
+ CancelPendingInfoBarRequest(id);
}
void ChromeGeolocationPermissionContext::DecidePermission(
- int render_process_id, int render_view_id, int bridge_id,
- const GURL& requesting_frame, const GURL& embedder,
+ const content::GeolocationPermissionRequestID& id,
+ const GURL& requesting_frame,
+ const GURL& embedder,
base::Callback<void(bool)> callback) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
@@ -106,10 +102,9 @@
if (extension &&
extension->HasAPIPermission(extensions::APIPermission::kGeolocation)) {
// Make sure the extension is in the calling process.
- if (extension_service->process_map()->Contains(
- extension->id(), render_process_id)) {
- PermissionDecided(render_process_id, render_view_id, bridge_id,
- requesting_frame, embedder, callback, true);
+ if (extension_service->process_map()->Contains(extension->id(),
+ id.render_process_id)) {
+ PermissionDecided(id, requesting_frame, embedder, callback, true);
return;
}
}
@@ -117,47 +112,35 @@
ContentSetting content_setting =
profile_->GetHostContentSettingsMap()->GetContentSetting(
- requesting_frame,
- embedder,
- CONTENT_SETTINGS_TYPE_GEOLOCATION,
+ requesting_frame, embedder, CONTENT_SETTINGS_TYPE_GEOLOCATION,
std::string());
switch (content_setting) {
case CONTENT_SETTING_BLOCK:
- PermissionDecided(render_process_id, render_view_id, bridge_id,
- requesting_frame, embedder, callback, false);
+ PermissionDecided(id, requesting_frame, embedder, callback, false);
break;
case CONTENT_SETTING_ALLOW:
- PermissionDecided(render_process_id, render_view_id, bridge_id,
- requesting_frame, embedder, callback, true);
+ PermissionDecided(id, requesting_frame, embedder, callback, true);
break;
default:
// setting == ask. Prompt the user.
QueueController()->CreateInfoBarRequest(
- render_process_id, render_view_id, bridge_id, requesting_frame,
- embedder, base::Bind(
+ id, requesting_frame, embedder, base::Bind(
&ChromeGeolocationPermissionContext::NotifyPermissionSet,
- base::Unretained(this),
- render_process_id, render_view_id, bridge_id, requesting_frame,
- callback));
+ base::Unretained(this), id, requesting_frame, callback));
}
}
void ChromeGeolocationPermissionContext::PermissionDecided(
- int render_process_id,
- int render_view_id,
- int bridge_id,
+ const content::GeolocationPermissionRequestID& id,
const GURL& requesting_frame,
const GURL& embedder,
base::Callback<void(bool)> callback,
bool allowed) {
- NotifyPermissionSet(render_process_id, render_view_id, bridge_id,
- requesting_frame, callback, allowed);
+ NotifyPermissionSet(id, requesting_frame, callback, allowed);
}
void ChromeGeolocationPermissionContext::NotifyPermissionSet(
- int render_process_id,
- int render_view_id,
- int bridge_id,
+ const content::GeolocationPermissionRequestID& id,
const GURL& requesting_frame,
base::Callback<void(bool)> callback,
bool allowed) {
@@ -165,7 +148,7 @@
// WebContents may have gone away (or not exists for extension).
TabSpecificContentSettings* content_settings =
- TabSpecificContentSettings::Get(render_process_id, render_view_id);
+ TabSpecificContentSettings::Get(id.render_process_id, id.render_view_id);
if (content_settings) {
content_settings->OnGeolocationPermissionSet(requesting_frame.GetOrigin(),
allowed);
@@ -189,20 +172,15 @@
}
void ChromeGeolocationPermissionContext::CancelPendingInfoBarRequest(
- int render_process_id,
- int render_view_id,
- int bridge_id) {
+ const content::GeolocationPermissionRequestID& id) {
if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
base::Bind(
&ChromeGeolocationPermissionContext::CancelPendingInfoBarRequest,
- this, render_process_id, render_view_id, bridge_id));
+ this, id));
return;
}
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- QueueController()->CancelInfoBarRequest(
- render_process_id,
- render_view_id,
- bridge_id);
+ QueueController()->CancelInfoBarRequest(id);
}

Powered by Google App Engine
This is Rietveld 408576698