| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef EXTENSIONS_BROWSER_GUEST_VIEW_WEB_VIEW_WEB_VIEW_PERMISSION_HELPER_H_ | 5 #ifndef EXTENSIONS_BROWSER_GUEST_VIEW_WEB_VIEW_WEB_VIEW_PERMISSION_HELPER_H_ |
| 6 #define EXTENSIONS_BROWSER_GUEST_VIEW_WEB_VIEW_WEB_VIEW_PERMISSION_HELPER_H_ | 6 #define EXTENSIONS_BROWSER_GUEST_VIEW_WEB_VIEW_WEB_VIEW_PERMISSION_HELPER_H_ |
| 7 | 7 |
| 8 #include "base/macros.h" | 8 #include "base/macros.h" |
| 9 #include "base/memory/weak_ptr.h" | 9 #include "base/memory/weak_ptr.h" |
| 10 #include "base/metrics/user_metrics_action.h" | 10 #include "base/metrics/user_metrics_action.h" |
| 11 #include "components/guest_view/common/guest_view_constants.h" | 11 #include "components/guest_view/common/guest_view_constants.h" |
| 12 #include "content/public/browser/web_contents.h" | 12 #include "content/public/browser/web_contents.h" |
| 13 #include "content/public/browser/web_contents_observer.h" | 13 #include "content/public/browser/web_contents_observer.h" |
| 14 #include "content/public/common/media_stream_request.h" | 14 #include "content/public/common/media_stream_request.h" |
| 15 #include "extensions/browser/guest_view/web_view/web_view_permission_types.h" | 15 #include "extensions/browser/guest_view/web_view/web_view_permission_types.h" |
| 16 #include "ppapi/features/features.h" |
| 16 | 17 |
| 17 using base::UserMetricsAction; | 18 using base::UserMetricsAction; |
| 18 | 19 |
| 19 namespace extensions { | 20 namespace extensions { |
| 20 | 21 |
| 21 class WebViewGuest; | 22 class WebViewGuest; |
| 22 class WebViewPermissionHelperDelegate; | 23 class WebViewPermissionHelperDelegate; |
| 23 | 24 |
| 24 // WebViewPermissionHelper manages <webview> permission requests. This helper | 25 // WebViewPermissionHelper manages <webview> permission requests. This helper |
| 25 // class is owned by WebViewGuest. Its purpose is to request permission for | 26 // class is owned by WebViewGuest. Its purpose is to request permission for |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 void CancelPendingPermissionRequest(int request_id); | 135 void CancelPendingPermissionRequest(int request_id); |
| 135 | 136 |
| 136 WebViewGuest* web_view_guest() { return web_view_guest_; } | 137 WebViewGuest* web_view_guest() { return web_view_guest_; } |
| 137 | 138 |
| 138 private: | 139 private: |
| 139 void OnMediaPermissionResponse(const content::MediaStreamRequest& request, | 140 void OnMediaPermissionResponse(const content::MediaStreamRequest& request, |
| 140 const content::MediaResponseCallback& callback, | 141 const content::MediaResponseCallback& callback, |
| 141 bool allow, | 142 bool allow, |
| 142 const std::string& user_input); | 143 const std::string& user_input); |
| 143 | 144 |
| 144 #if defined(ENABLE_PLUGINS) | 145 #if BUILDFLAG(ENABLE_PLUGINS) |
| 145 // content::WebContentsObserver implementation. | 146 // content::WebContentsObserver implementation. |
| 146 bool OnMessageReceived(const IPC::Message& message, | 147 bool OnMessageReceived(const IPC::Message& message, |
| 147 content::RenderFrameHost* render_frame_host) override; | 148 content::RenderFrameHost* render_frame_host) override; |
| 148 bool OnMessageReceived(const IPC::Message& message) override; | 149 bool OnMessageReceived(const IPC::Message& message) override; |
| 149 #endif // defined(ENABLE_PLUGINS) | 150 #endif // BUILDFLAG(ENABLE_PLUGINS) |
| 150 | 151 |
| 151 // A counter to generate a unique request id for a permission request. | 152 // A counter to generate a unique request id for a permission request. |
| 152 // We only need the ids to be unique for a given WebViewGuest. | 153 // We only need the ids to be unique for a given WebViewGuest. |
| 153 int next_permission_request_id_; | 154 int next_permission_request_id_; |
| 154 | 155 |
| 155 WebViewPermissionHelper::RequestMap pending_permission_requests_; | 156 WebViewPermissionHelper::RequestMap pending_permission_requests_; |
| 156 | 157 |
| 157 std::unique_ptr<WebViewPermissionHelperDelegate> | 158 std::unique_ptr<WebViewPermissionHelperDelegate> |
| 158 web_view_permission_helper_delegate_; | 159 web_view_permission_helper_delegate_; |
| 159 | 160 |
| 160 WebViewGuest* const web_view_guest_; | 161 WebViewGuest* const web_view_guest_; |
| 161 | 162 |
| 162 base::WeakPtrFactory<WebViewPermissionHelper> weak_factory_; | 163 base::WeakPtrFactory<WebViewPermissionHelper> weak_factory_; |
| 163 | 164 |
| 164 DISALLOW_COPY_AND_ASSIGN(WebViewPermissionHelper); | 165 DISALLOW_COPY_AND_ASSIGN(WebViewPermissionHelper); |
| 165 }; | 166 }; |
| 166 | 167 |
| 167 } // namespace extensions | 168 } // namespace extensions |
| 168 | 169 |
| 169 #endif // EXTENSIONS_BROWSER_GUEST_VIEW_WEB_VIEW_WEB_VIEW_PERMISSION_HELPER_H_ | 170 #endif // EXTENSIONS_BROWSER_GUEST_VIEW_WEB_VIEW_WEB_VIEW_PERMISSION_HELPER_H_ |
| OLD | NEW |