Index: android_webview/browser/aw_content_browser_client.cc |
diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc |
index 0bddaf6468400279be9ef8948f357138ea191d81..fb89fc6fce098e947d1dae3dc437f1bf1ab53a86 100644 |
--- a/android_webview/browser/aw_content_browser_client.cc |
+++ b/android_webview/browser/aw_content_browser_client.cc |
@@ -139,7 +139,14 @@ class AwAccessTokenStore : public content::AccessTokenStore { |
DISALLOW_COPY_AND_ASSIGN(AwAccessTokenStore); |
}; |
-} // namespace |
+void CallbackPermisisonStatusWrapper( |
+ const base::Callback<void(content::PermissionStatus)>& callback, |
+ bool allowed) { |
+ callback.Run(allowed ? content::PERMISSION_STATUS_GRANTED |
+ : content::PERMISSION_STATUS_DENIED); |
+} |
+ |
+} // anonymous namespace |
std::string AwContentBrowserClient::GetAcceptLangsImpl() { |
// Start with the currnet locale. |
@@ -380,7 +387,7 @@ void AwContentBrowserClient::RequestPermission( |
int bridge_id, |
const GURL& requesting_frame, |
bool user_gesture, |
- const base::Callback<void(bool)>& result_callback) { |
+ const base::Callback<void(content::PermissionStatus)>& callback) { |
int render_process_id = web_contents->GetRenderProcessHost()->GetID(); |
int render_view_id = web_contents->GetRenderViewHost()->GetRoutingID(); |
GURL origin = requesting_frame.GetOrigin(); |
@@ -391,19 +398,20 @@ void AwContentBrowserClient::RequestPermission( |
case content::PERMISSION_GEOLOCATION: |
if (!delegate) { |
DVLOG(0) << "Dropping GeolocationPermission request"; |
- result_callback.Run(false); |
+ callback.Run(content::PERMISSION_STATUS_DENIED); |
return; |
} |
- delegate->RequestGeolocationPermission(origin, result_callback); |
+ delegate->RequestGeolocationPermission( |
+ origin, base::Bind(&CallbackPermisisonStatusWrapper, callback)); |
break; |
case content::PERMISSION_PROTECTED_MEDIA_IDENTIFIER: |
if (!delegate) { |
DVLOG(0) << "Dropping ProtectedMediaIdentifierPermission request"; |
- result_callback.Run(false); |
+ callback.Run(content::PERMISSION_STATUS_DENIED); |
return; |
} |
- delegate->RequestProtectedMediaIdentifierPermission(origin, |
- result_callback); |
+ delegate->RequestProtectedMediaIdentifierPermission( |
+ origin, base::Bind(&CallbackPermisisonStatusWrapper, callback)); |
break; |
case content::PERMISSION_MIDI_SYSEX: |
case content::PERMISSION_NOTIFICATIONS: |