| Index: chrome/browser/chrome_content_browser_client.cc
|
| diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
|
| index f3e134c5c13e205461d3768cfea2535abc50d3c2..a393ea3627499ca1e043f111cef1f49a94ceee83 100644
|
| --- a/chrome/browser/chrome_content_browser_client.cc
|
| +++ b/chrome/browser/chrome_content_browser_client.cc
|
| @@ -1922,7 +1922,8 @@ void ChromeContentBrowserClient::ShowDesktopNotification(
|
| #endif
|
| }
|
|
|
| -void ChromeContentBrowserClient::RequestGeolocationPermission(
|
| +void ChromeContentBrowserClient::RequestPermission(
|
| + content::PermissionType permission,
|
| content::WebContents* web_contents,
|
| int bridge_id,
|
| const GURL& requesting_frame,
|
| @@ -1935,14 +1936,43 @@ void ChromeContentBrowserClient::RequestGeolocationPermission(
|
| render_view_id,
|
| bridge_id,
|
| requesting_frame);
|
| - GeolocationPermissionContextFactory::GetForProfile(
|
| - Profile::FromBrowserContext(web_contents->GetBrowserContext()))->
|
| - RequestPermission(web_contents, request_id,
|
| - requesting_frame.GetOrigin(), user_gesture,
|
| - result_callback);
|
| +
|
| + switch (permission) {
|
| + case content::PERMISSION_MIDI_SYSEX:
|
| + MidiPermissionContextFactory::GetForProfile(
|
| + Profile::FromBrowserContext(web_contents->GetBrowserContext()))
|
| + ->RequestPermission(web_contents, request_id, requesting_frame,
|
| + user_gesture, result_callback);
|
| + break;
|
| + case content::PERMISSION_NOTIFICATIONS:
|
| + // TODO(miguelg) implement notifications once the platform refactor
|
| + // is finished.
|
| + LOG(WARNING) << "Permission request not implemented for " << permission;
|
| + break;
|
| + case content::PERMISSION_GEOLOCATION:
|
| + GeolocationPermissionContextFactory::GetForProfile(
|
| + Profile::FromBrowserContext(web_contents->GetBrowserContext()))
|
| + ->RequestPermission(web_contents, request_id,
|
| + requesting_frame.GetOrigin(), user_gesture,
|
| + result_callback);
|
| + break;
|
| +#if defined(OS_ANDROID)
|
| + case content::PERMISSION_PROTECTED_MEDIA:
|
| + ProtectedMediaIdentifierPermissionContextFactory::GetForProfile(
|
| + Profile::FromBrowserContext(web_contents->GetBrowserContext()))
|
| + ->RequestProtectedMediaIdentifierPermission(web_contents,
|
| + requesting_frame,
|
| + result_callback);
|
| + break;
|
| +#endif
|
| + default:
|
| + LOG(WARNING) << "Permission not available " << permission;
|
| + }
|
| +
|
| }
|
|
|
| -void ChromeContentBrowserClient::CancelGeolocationPermissionRequest(
|
| +void ChromeContentBrowserClient::CancelPermissionRequest(
|
| + content::PermissionType permission,
|
| content::WebContents* web_contents,
|
| int bridge_id,
|
| const GURL& requesting_frame) {
|
| @@ -1953,28 +1983,39 @@ void ChromeContentBrowserClient::CancelGeolocationPermissionRequest(
|
| render_view_id,
|
| bridge_id,
|
| requesting_frame);
|
| - GeolocationPermissionContextFactory::GetForProfile(
|
| - Profile::FromBrowserContext(web_contents->GetBrowserContext()))->
|
| - CancelPermissionRequest(web_contents, request_id);
|
| + switch (permission) {
|
| + case content::PERMISSION_MIDI_SYSEX:
|
| + MidiPermissionContextFactory::GetForProfile(
|
| + Profile::FromBrowserContext(web_contents->GetBrowserContext()))
|
| + ->CancelPermissionRequest(web_contents, request_id);
|
| + break;
|
| + case content::PERMISSION_NOTIFICATIONS:
|
| + // TODO(miguelg) implement notifications once the platform refactor
|
| + // is finished.
|
| + LOG(WARNING) << "Cancel Permission request not implemented for "
|
| + << permission;
|
| + break;
|
| + case content::PERMISSION_GEOLOCATION:
|
| + GeolocationPermissionContextFactory::GetForProfile(
|
| + Profile::FromBrowserContext(
|
| + web_contents->GetBrowserContext()))
|
| + ->CancelPermissionRequest(web_contents, request_id);
|
| + break;
|
| + #if defined(OS_ANDROID)
|
| + case content::PERMISSION_PROTECTED_MEDIA:
|
| + ProtectedMediaIdentifierPermissionContextFactory::GetForProfile(
|
| + Profile::FromBrowserContext(web_contents->GetBrowserContext()))
|
| + ->CancelProtectedMediaIdentifierPermissionRequests(
|
| + render_process_id,
|
| + render_view_id,
|
| + requesting_frame);
|
| + break;
|
| + #endif
|
| + default:
|
| + LOG(WARNING) << "Permission not available " << permission;
|
| + }
|
| }
|
|
|
| -void ChromeContentBrowserClient::RequestMidiSysExPermission(
|
| - content::WebContents* web_contents,
|
| - int bridge_id,
|
| - const GURL& requesting_frame,
|
| - bool user_gesture,
|
| - base::Callback<void(bool)> result_callback,
|
| - base::Closure* cancel_callback) {
|
| - MidiPermissionContext* context =
|
| - MidiPermissionContextFactory::GetForProfile(
|
| - Profile::FromBrowserContext(web_contents->GetBrowserContext()));
|
| - int renderer_id = web_contents->GetRenderProcessHost()->GetID();
|
| - int render_view_id = web_contents->GetRenderViewHost()->GetRoutingID();
|
| - const PermissionRequestID id(renderer_id, render_view_id, bridge_id, GURL());
|
| -
|
| - context->RequestPermission(web_contents, id, requesting_frame,
|
| - user_gesture, result_callback);
|
| -}
|
|
|
| void ChromeContentBrowserClient::DidUseGeolocationPermission(
|
| content::WebContents* web_contents,
|
| @@ -1986,25 +2027,6 @@ void ChromeContentBrowserClient::DidUseGeolocationPermission(
|
| frame_url, main_frame_url, CONTENT_SETTINGS_TYPE_GEOLOCATION);
|
| }
|
|
|
| -void ChromeContentBrowserClient::RequestProtectedMediaIdentifierPermission(
|
| - content::WebContents* web_contents,
|
| - const GURL& origin,
|
| - base::Callback<void(bool)> result_callback,
|
| - base::Closure* cancel_callback) {
|
| -#if defined(OS_ANDROID)
|
| - ProtectedMediaIdentifierPermissionContext* context =
|
| - ProtectedMediaIdentifierPermissionContextFactory::GetForProfile(
|
| - Profile::FromBrowserContext(web_contents->GetBrowserContext()));
|
| - context->RequestProtectedMediaIdentifierPermission(web_contents,
|
| - origin,
|
| - result_callback,
|
| - cancel_callback);
|
| -#else
|
| - NOTIMPLEMENTED();
|
| - result_callback.Run(false);
|
| -#endif // defined(OS_ANDROID)
|
| -}
|
| -
|
| bool ChromeContentBrowserClient::CanCreateWindow(
|
| const GURL& opener_url,
|
| const GURL& opener_top_level_frame_url,
|
|
|