Index: chrome/browser/guest_view/web_view/web_view_permission_helper.cc |
diff --git a/chrome/browser/guest_view/web_view/web_view_permission_helper.cc b/chrome/browser/guest_view/web_view/web_view_permission_helper.cc |
index c5b0aaa326cce93a1d75ffc1751922fa52876f38..ff02900abc8c89fc2fac6d00bf0dbd9a962f2104 100644 |
--- a/chrome/browser/guest_view/web_view/web_view_permission_helper.cc |
+++ b/chrome/browser/guest_view/web_view/web_view_permission_helper.cc |
@@ -4,6 +4,7 @@ |
#include "chrome/browser/guest_view/web_view/web_view_permission_helper.h" |
+#include "chrome/browser/content_settings/permission_request_id.h" |
#include "chrome/browser/content_settings/tab_specific_content_settings.h" |
#include "chrome/browser/geolocation/geolocation_permission_context.h" |
#include "chrome/browser/geolocation/geolocation_permission_context_factory.h" |
@@ -16,6 +17,7 @@ |
#include "content/public/browser/render_process_host.h" |
#include "content/public/browser/render_view_host.h" |
#include "content/public/browser/user_metrics.h" |
+#include "content/public/browser/web_contents.h" |
using content::BrowserPluginGuestDelegate; |
using content::RenderViewHost; |
@@ -387,20 +389,29 @@ void WebViewPermissionHelper::OnGeolocationPermissionResponse( |
return; |
} |
+ content::WebContents* web_contents = web_view_guest_->embedder_web_contents(); |
+ int render_process_id = web_contents->GetRenderProcessHost()->GetID(); |
+ int render_view_id = web_contents->GetRenderViewHost()->GetRoutingID(); |
+ |
+ const PermissionRequestID request_id( |
+ render_process_id, |
+ render_view_id, |
+ // The geolocation permission request here is not initiated |
+ // through WebGeolocationPermissionRequest. We are only interested |
+ // in the fact whether the embedder/app has geolocation |
+ // permission. Therefore we use an invalid |bridge_id|. |
+ -1, |
+ GURL()); |
Profile* profile = Profile::FromBrowserContext( |
web_view_guest_->browser_context()); |
GeolocationPermissionContextFactory::GetForProfile(profile)-> |
- RequestGeolocationPermission( |
- web_view_guest_->embedder_web_contents(), |
- // The geolocation permission request here is not initiated |
- // through WebGeolocationPermissionRequest. We are only interested |
- // in the fact whether the embedder/app has geolocation |
- // permission. Therefore we use an invalid |bridge_id|. |
- -1, |
- web_view_guest_->embedder_web_contents()->GetLastCommittedURL(), |
+ RequestPermission( |
+ web_contents, |
+ request_id, |
+ web_view_guest_->embedder_web_contents() |
+ ->GetLastCommittedURL().GetOrigin(), |
user_gesture, |
- callback, |
- NULL); |
+ callback); |
} |
void WebViewPermissionHelper::CancelGeolocationPermissionRequest( |