Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc

Issue 2713083003: Use ContentSetting in chrome/ instead of PermissionStatus (Closed)
Patch Set: maybe fix android compile + address comments + basic tests Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #include "chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_d elegate.h" 5 #include "chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_d elegate.h"
6 6
7 #include "chrome/browser/content_settings/tab_specific_content_settings.h" 7 #include "chrome/browser/content_settings/tab_specific_content_settings.h"
8 #include "chrome/browser/permissions/permission_manager.h" 8 #include "chrome/browser/permissions/permission_manager.h"
9 #include "chrome/browser/permissions/permission_request_id.h" 9 #include "chrome/browser/permissions/permission_request_id.h"
10 #include "chrome/browser/plugins/chrome_plugin_service_filter.h" 10 #include "chrome/browser/plugins/chrome_plugin_service_filter.h"
11 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/common/features.h" 12 #include "chrome/common/features.h"
13 #include "chrome/common/render_messages.h" 13 #include "chrome/common/render_messages.h"
14 #include "components/content_settings/core/common/content_settings_types.h" 14 #include "components/content_settings/core/common/content_settings_types.h"
15 #include "content/public/browser/render_frame_host.h" 15 #include "content/public/browser/render_frame_host.h"
16 #include "content/public/browser/render_process_host.h" 16 #include "content/public/browser/render_process_host.h"
17 #include "content/public/browser/render_view_host.h" 17 #include "content/public/browser/render_view_host.h"
18 #include "content/public/browser/user_metrics.h" 18 #include "content/public/browser/user_metrics.h"
19 #include "extensions/browser/guest_view/web_view/web_view_constants.h" 19 #include "extensions/browser/guest_view/web_view/web_view_constants.h"
20 #include "extensions/browser/guest_view/web_view/web_view_guest.h" 20 #include "extensions/browser/guest_view/web_view/web_view_guest.h"
21 #include "ppapi/features/features.h" 21 #include "ppapi/features/features.h"
22 22
23 namespace extensions { 23 namespace extensions {
24 24
25 namespace { 25 namespace {
26 26
27 void CallbackWrapper(const base::Callback<void(bool)>& callback, 27 void CallbackWrapper(const base::Callback<void(bool)>& callback,
28 blink::mojom::PermissionStatus status) { 28 ContentSetting status) {
29 callback.Run(status == blink::mojom::PermissionStatus::GRANTED); 29 callback.Run(status == CONTENT_SETTING_ALLOW);
30 } 30 }
31 31
32 } // anonymous namespace 32 } // anonymous namespace
33 33
34 ChromeWebViewPermissionHelperDelegate::ChromeWebViewPermissionHelperDelegate( 34 ChromeWebViewPermissionHelperDelegate::ChromeWebViewPermissionHelperDelegate(
35 WebViewPermissionHelper* web_view_permission_helper) 35 WebViewPermissionHelper* web_view_permission_helper)
36 : WebViewPermissionHelperDelegate(web_view_permission_helper), 36 : WebViewPermissionHelperDelegate(web_view_permission_helper),
37 weak_factory_(this) { 37 weak_factory_(this) {
38 } 38 }
39 39
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 WEB_VIEW_PERMISSION_TYPE_GEOLOCATION, 190 WEB_VIEW_PERMISSION_TYPE_GEOLOCATION,
191 request_info, 191 request_info,
192 permission_callback, 192 permission_callback,
193 false /* allowed_by_default */); 193 false /* allowed_by_default */);
194 bridge_id_to_request_id_map_[bridge_id] = request_id; 194 bridge_id_to_request_id_map_[bridge_id] = request_id;
195 } 195 }
196 196
197 void ChromeWebViewPermissionHelperDelegate::OnGeolocationPermissionResponse( 197 void ChromeWebViewPermissionHelperDelegate::OnGeolocationPermissionResponse(
198 int bridge_id, 198 int bridge_id,
199 bool user_gesture, 199 bool user_gesture,
200 const base::Callback<void(blink::mojom::PermissionStatus)>& callback, 200 const base::Callback<void(ContentSetting)>& callback,
201 bool allow, 201 bool allow,
202 const std::string& user_input) { 202 const std::string& user_input) {
203 // The <webview> embedder has allowed the permission. We now need to make sure 203 // The <webview> embedder has allowed the permission. We now need to make sure
204 // that the embedder has geolocation permission. 204 // that the embedder has geolocation permission.
205 RemoveBridgeID(bridge_id); 205 RemoveBridgeID(bridge_id);
206 206
207 if (!allow || !web_view_guest()->attached()) { 207 if (!allow || !web_view_guest()->attached()) {
208 callback.Run(blink::mojom::PermissionStatus::DENIED); 208 callback.Run(CONTENT_SETTING_BLOCK);
209 return; 209 return;
210 } 210 }
211 211
212 content::WebContents* web_contents = 212 content::WebContents* web_contents =
213 web_view_guest()->embedder_web_contents(); 213 web_view_guest()->embedder_web_contents();
214 int render_process_id = web_contents->GetRenderProcessHost()->GetID(); 214 int render_process_id = web_contents->GetRenderProcessHost()->GetID();
215 int render_frame_id = web_contents->GetMainFrame()->GetRoutingID(); 215 int render_frame_id = web_contents->GetMainFrame()->GetRoutingID();
216 216
217 const PermissionRequestID request_id( 217 const PermissionRequestID request_id(
218 render_process_id, 218 render_process_id,
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 IPC::Message* reply_msg, 330 IPC::Message* reply_msg,
331 bool allowed) { 331 bool allowed) {
332 TabSpecificContentSettings::FileSystemAccessed( 332 TabSpecificContentSettings::FileSystemAccessed(
333 render_process_id, render_frame_id, url, !allowed); 333 render_process_id, render_frame_id, url, !allowed);
334 ChromeViewHostMsg_RequestFileSystemAccessSync::WriteReplyParams(reply_msg, 334 ChromeViewHostMsg_RequestFileSystemAccessSync::WriteReplyParams(reply_msg,
335 allowed); 335 allowed);
336 Send(reply_msg); 336 Send(reply_msg);
337 } 337 }
338 338
339 } // namespace extensions 339 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698