| Index: chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc
|
| diff --git a/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc b/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc
|
| index f33f9dbb7a4e405bd671a0ed150238156160c639..71c33fa6dcb2f9524f5c19a5fe88fc9c27266d29 100644
|
| --- a/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc
|
| +++ b/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc
|
| @@ -10,6 +10,9 @@
|
| #include "chrome/browser/plugins/chrome_plugin_service_filter.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/common/render_messages.h"
|
| +#include "components/content_settings/core/common/permission_request_id.h"
|
| +#include "content/public/browser/render_process_host.h"
|
| +#include "content/public/browser/render_view_host.h"
|
| #include "content/public/browser/user_metrics.h"
|
| #include "extensions/browser/guest_view/web_view/web_view_constants.h"
|
| #include "extensions/browser/guest_view/web_view/web_view_guest.h"
|
| @@ -216,20 +219,31 @@ void ChromeWebViewPermissionHelperDelegate::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 ChromeWebViewPermissionHelperDelegate::CancelGeolocationPermissionRequest(
|
|
|