Index: android_webview/browser/aw_permission_manager.cc |
diff --git a/android_webview/browser/aw_permission_manager.cc b/android_webview/browser/aw_permission_manager.cc |
index e6eafa0552eab261fa04272956fcd4b1d1e6d3de..15eea7df98189961bfa8aeeb017ffa9eb022f9b6 100644 |
--- a/android_webview/browser/aw_permission_manager.cc |
+++ b/android_webview/browser/aw_permission_manager.cc |
@@ -489,12 +489,15 @@ void AwPermissionManager::ResetPermission(PermissionType permission, |
result_cache_->ClearResult(permission, requesting_origin, embedding_origin); |
} |
-PermissionStatus AwPermissionManager::GetPermissionStatus( |
+PermissionStatus AwPermissionManager::GetPermissionStatusForFrame( |
PermissionType permission, |
- const GURL& requesting_origin, |
- const GURL& embedding_origin) { |
+ content::RenderFrameHost* render_frame_host, |
+ const GURL& requesting_origin) { |
// Method is called outside the Permissions API only for this permission. |
if (permission == PermissionType::PROTECTED_MEDIA_IDENTIFIER) { |
+ content::WebContents* web_contents = |
+ content::WebContents::FromRenderFrameHost(render_frame_host); |
+ GURL embedding_origin = web_contents->GetLastCommittedURL().GetOrigin(); |
return result_cache_->GetResult(permission, requesting_origin, |
embedding_origin); |
} else if (permission == PermissionType::MIDI) { |
@@ -504,6 +507,15 @@ PermissionStatus AwPermissionManager::GetPermissionStatus( |
return PermissionStatus::DENIED; |
} |
+PermissionStatus AwPermissionManager::GetPermissionStatusForWorker( |
+ PermissionType permission, |
+ const GURL& requesting_origin) { |
+ // Only PROTECTED_MEDIA_IDENTIFIER and MIDI are ever granted by |
+ // GetPermissionStatusForFrame and these can't be used from workers so just |
+ // deny all permissions. |
+ return PermissionStatus::DENIED; |
+} |
+ |
int AwPermissionManager::SubscribePermissionStatusChange( |
PermissionType permission, |
const GURL& requesting_origin, |